CPU-Auslastung für Concolenanwendung



  • Hallo, ich habe eine Frage.

    Die Lage:
    -----------
    Ich habe eine Programm unter VC++ 6.0 das in der Konsole (WinXP) läuft und mir
    viele Werte berechnet (manche sagen auch dazu Simulation aber so weit ist es noch nicht).
    Wenn ich mir beim laufenden Programm die CPU-Auslastung anschaue (über den Task-Manager), dann kommt der so maximal auf 50% CPU-Last.

    Nun die Frage:
    --------------
    Gibt es eine Möglichkeit eine Anwedung die gesammte verfügbare CPU-Zeit zuzuweisen (gut es werden nicht 100% gehen Windows will ja auch noch was) aber deutlich mehr als 50% wären schon gut um die rechnerei noch weiter zu beschleunigen.

    Oder mache ich einen grundsätzlichen Denkfehler und das geht nicht besser.

    Danke schon mal
    und viele Grüsse an alle



  • NoobCoder schrieb:

    Wenn ich mir beim laufenden Programm die CPU-Auslastung anschaue (über den Task-Manager), dann kommt der so maximal auf 50% CPU-Last.

    welche auslastung haste denn bei

    for(;;)
       cout<<"";
    

    ?



  • Wieviel CPU-Auslastung dein Programm erhält, hängt ganz davon ab was sonst noch so läuft auf deinem Rechner.

    Möglicherweise kannst du eine Priorität für deinen Prozess einstellen (wenn dann aber nur über eine WinAPI-Funktion), wobei es möglicherweise nichts ändert, da ein anderer Prozess, der viel CPU braucht, auch schon eine hohe Priorität haben kann.



  • Hallo
    danke für die schnellen antworten

    ich habe mal den test mit der leeren forschleife gemacht
    for( ; ; )
    cout<<""
    die CPU-Last ist dann auch 51%

    Es ist aber möglichweise so, das das System schnell genug ist und nicht 100% braucht.

    Ich habe noch mal das mein Programm mit verschiedenen Einstellungen laufen lassen, und je nachdem wie kompliziert die Rechnungn wird kommt der PC nur auf 50% oder er kommt auf einen höheren wert.
    Evtl liegt das an der Ausgabe, da ich zwischen den einzelnen rechenschritte
    Daten ausgebe mit denen man dann das Geschehen in einem anderen Programm später betrachten kann.

    Also wahrscheinlich liegt es daran.

    Trotzdem vielen dank für die Antworten.



  • NoobCoder schrieb:

    ich habe mal den test mit der leeren forschleife gemacht
    for( ; ; )
    cout<<""
    die CPU-Last ist dann auch 51%
    Es ist aber möglichweise so, das das System schnell genug ist und nicht 100% braucht.

    nein. mein test frißt mindestens 100% der prozessorkraft.
    ich nehme an, du hast 2 (in worten: zwei) prozessoren und die auslastung, die dir angezeigt wird, ist der mittelwert der auslastungen der beiden prozessoren. um an die power ranzukommen, mußte zwei threads starten und jeder berechnet die hälfte des probems (mal hoffen, daß sich das problem gut in hälften zerlegen läßt).



  • volkard schrieb:

    du hast 2 (in worten: zwei) prozessoren

    Anmerkung: ZB auch der Fall wenn du einen Intel Pentium mit HT-Technologie oder einen AMD-Prozessor mit DualCore hast.

    MfG SideWinder



  • keine 100%? sowas kann auch passieren wenn man ein programm im Debug in nicht im Release Modus läufen lässt..



  • Vertexwahn schrieb:

    keine 100%? sowas kann auch passieren wenn man ein programm im Debug in nicht im Release Modus läufen lässt..

    *lol*



  • also

    ich hatte das "test"-programm mit der for-schleife tatsächlich im debug-mode
    compiliert.
    habs nochmal als release version erstellt, aber auch da gibts nur 51% auslastung.

    Ich habe einen! CPU Pentium IV 3GHz, standard kein schnickschnack (HT haben die aber glaube ich alle ab Pentium IV)

    Na ja wie gesagt kann das problem auch an der Art des Programmes selber liegen.
    Da ich wie schon erwähnt, ein einfacherers Problem habe laufen lassen und dort hatte der Taskmanager bis zu 100% auslastung angezeigt.

    evtl ist das auch nur ein Denkfehler von meiner Seite aus.
    mit diesen 100%

    Trotzdem danke an alle



  • das überzeugt mich.
    viel glück!


Anmelden zum Antworten