perfomance-priorität



  • Hey-
    erstmal "moin"- bin nämlich neu hier.

    Ich arbeite im Moment an einer Konsolenanwendung die relativ lange dauernde Rechnungen bewerkstelligen soll. Da ich nicht allzu lange warten möchte, ist es mir natürlich wichtig, dass die CPU möglichst optimal ausgenutzt wird.
    Ich habe schon im Forum gesucht und folgende interessante Beiträge gefunden:

    http://www.c-plusplus.net/forum/121212?highlight=priorit�t

    Bei der Anwendung von folgendem einfachen Programm

    #include <iostream>
    
    using namespace std;
    
    int main()
    {
    
    	for(;;)
       cout<<"";
    
    	return 0;
    }
    

    bekomme ich pro Start, nach dem ich die Priorität auf "Hoch" gesetzt habe 25% CPU Auslastung. Wenn ich es viermal starte erziehle ich 100% 🙂

    Ich benutze: i3 3.2 GHz Pentium, Windows7 32, 4GB, VS 2010 Express

    Meine Fragen:
    -Warum kann ich die Priorität nicht auf "Echtzeit" setzen, sondern nur auf "Hoch"?

    -Gibt es eine Möglichkeit dem Programm eine Prioritäts Stufe zuzuweisen, ohne dies später manuell einzustellen?

    -Ist die Einstellung der Prioritäts Stufe wirklich der einzige Hebel, an dem man drehen kann um die Performance eines Programmes zu begünstigen?

    -Kennt jemand einen guten Einstieg in parallele Programmierung-welche nicht auf irgendwelche cluster zu geschnitten ist, sondern auf sowas wie meine CPU?

    Euch einen schönen Abend!
    Viele Gr
    hasenkeule- mmmh ->lecker



  • Du hast nur 25% weil dein Programm nur auf einem Core läuft und dein Prozessor wahrscheinlich 4 Cores hat bzw. zumindest 2 mit HyperThreading.

    Die Priorität hat nicht so viel damit zu tun. Für Echtzeit brauchst du afaik ein Echtzeitbetriebssystem, welches du mit Windows nicht hast.

    Ja, die Möglichkeit das mit der WinAPI besteht - vorausgesetzt dein Programm wird mit den nötigen Rechten gestartet.

    Nein, die Performance eines Programmes hängt in erster Linie gar nicht von der Priorität ab. Die kommt nur ins Spiel wenn du viele Programme gleichzeitig startest.

    (Hinweis: Bei deinem Kenntnisstand in der Programmierung bzw. von der Thematik wird erstmal jeder Hebel irrelevant sein).

    Gute parallele Programmierung: Nebenläufige Dinge erstmal in Threads auslagern. Wenn du dann noch zu wenig Performance hast versuchen den Algorithmus auf mehrere Worker-Threads aufzuteilen - falls möglich. Alles weitere (und wahrscheinlich auch das) übersteigt deinen Kenntnisstand um Vieles.

    Erstmal ordentlich Programmieren lernen und Grundlagen von Betriebssystemen verstehen. Sorry, aber der Weg ist nunmal hart und steinig.

    MfG SideWinder



  • Dieser Thread wurde von Moderator/in SideWinder aus dem Forum DOS und Win32-Konsole in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • @hasenkeule guckst du bei google "openmp"



  • SideWinder schrieb:

    Die Priorität hat nicht so viel damit zu tun. Für Echtzeit brauchst du afaik ein Echtzeitbetriebssystem, welches du mit Windows nicht hast.

    Wieso gibt es dann die Option zum Wählen?



  • komisch honisch schrieb:

    SideWinder schrieb:

    Die Priorität hat nicht so viel damit zu tun. Für Echtzeit brauchst du afaik ein Echtzeitbetriebssystem, welches du mit Windows nicht hast.

    Wieso gibt es dann die Option zum Wählen?

    Weil es ein schlecht gewählter Name ist? 🙄



  • komisch honisch schrieb:

    SideWinder schrieb:

    Die Priorität hat nicht so viel damit zu tun. Für Echtzeit brauchst du afaik ein Echtzeitbetriebssystem, welches du mit Windows nicht hast.

    Wieso gibt es dann die Option zum Wählen?

    http://stackoverflow.com/questions/1663993/what-is-the-realtime-setting-for-for-process-priority

    Hat aber mit "Echtzeit" im eigentlichen Sinne noch nichts zu tun.

    MfG SideWinder



  • Danke für die Antworten-


Anmelden zum Antworten