auf prozessorleistung zugreifen.

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

bei mir ist es so, dass auch bei komplizierten bzw, aufwändigen Prozessen die Prozessor Leistung nicht über 30% hinaus geht
wie kann man das ändern?
Zuletzt geändert von jan.b am Mittwoch 9. August 2017, 19:17, insgesamt 1-mal geändert.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

jan.b hat geschrieben:bei mir ist es so, dass auch bei komplizierten bzw, aufwändigen Prozessen die Prozessor Leistung nicht über einen bestimmten wert hinaus geht
Das ist auch bei mir so. Der 'bestimmte' Wert beträgt in der Regel 100%.
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

bei mir aber höchsten 30 .
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@kbr: bei mir sind es 800%.
@jan.b: die Frage ist so nicht zu beantworten. Wo ist das Problem?
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

Sirius3 hat geschrieben:@kbr: bei mir sind es 800%.
@jan.b: die Frage ist so nicht zu beantworten. Wo ist das Problem?
das Problem steht da doch wenn ich z.b. print(1000000*"hi") eingebe, dann ist das ein sehr aufwändiger Prozess. aber ews werden trotzdem nur etwa 23% der verfügbaren Leistung genutzt.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@Sirius3: vermutlich 4 Cores plus HT. Dann sind 800% schon sehr optimistisch ... :wink:
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Die CPU wird nur dann komplett ausgelastet, wenn die CPU nicht auf irgendetwas anderes warten muss. Moderne CPUs sind sehr sehr schnell so dass sie i.d.R. hauptsächlich auf irgendwas anderes warten z.B. auf Daten aus dem Netzwerk, der Festplatte oder dem Arbeitsspeicher.

Jetzt überleg mal genau was dein Code tatsächlich tut und was davon die CPU betrifft.
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

DasIch hat geschrieben:Die CPU wird nur dann komplett ausgelastet, wenn die CPU nicht auf irgendetwas anderes warten muss. Moderne CPUs sind sehr sehr schnell so dass sie i.d.R. hauptsächlich auf irgendwas anderes warten z.B. auf Daten aus dem Netzwerk, der Festplatte oder dem Arbeitsspeicher.

Jetzt überleg mal genau was dein Code tatsächlich tut und was davon die CPU betrifft.
ich denke mal du willst mir damit sagen, dass ich die python Shell nicht schneller machen kann, weil das Problem nicht beim cpu liegt.
BlackJack

@jan.b: Genau das. Und es ist auch die Frage was die Zahl bei der Auslastung bedeutet. Sind das 23% von einem Kern oder 23% von einer CPU mit mehreren Kernen? Falls es vier Kerne sind, kommst Du mit einem Prozess der nur einen Thread verwendet ja schon prinzipiell nicht über 25% falls die Zahl die Auslastung der gesamten CPU angibt.
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

BlackJack hat geschrieben:@jan.b: Genau das. Und es ist auch die Frage was die Zahl bei der Auslastung bedeutet. Sind das 23% von einem Kern oder 23% von einer CPU mit mehreren Kernen? Falls es vier Kerne sind, kommst Du mit einem Prozess der nur einen Thread verwendet ja schon prinzipiell nicht über 25% falls die Zahl die Auslastung der gesamten CPU angibt.
die Auslastung für nur einen kern anzuzeigen würde keinen sinn machen. aber,dass es mehr als einen thread verwendet merke ich spätestens dann, wenn das Programm sich aufhängt.
BlackJack

@jan.b: Natürlich macht es Sinn sich auch die Auslastung der Kerne anzeigen zu lassen.

Man erkennt daran das ein Programm hängt, nicht das es Threads verwendet, und umgekehrt bringen Threads Programme, die keinen Fehler bei der Threadprogrammierung haben, auch nicht zum hängen.
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

BlackJack hat geschrieben:@jan.b: Natürlich macht es Sinn sich auch die Auslastung der Kerne anzeigen zu lassen.

Man erkennt daran das ein Programm hängt, nicht das es Threads verwendet, und umgekehrt bringen Threads Programme, die keinen Fehler bei der Threadprogrammierung haben, auch nicht zum hängen.
ich dachte 1 = thread = 1.mio Rechnungen Pro /s und mein rechner hat mehr als 4 threads wenn er sich also schon bei 23 % aufhängt zeigt das, dass
nur 1/4 der zur verfügung gesetzten rechenleistung auch genutzt werden (vorraus gesetzt es zeigt die gesamte Kapazität des pc's an(und das tut es habe nachgeguckt). oder ich habe einen Denkfehler.
BlackJack

Thread ist keine Masseinheit sondern ein separater Ausführungsstrang innerhalb eines Prozesses.

Eine Million Rechnungen, oder besser Befehle, pro Sekunde wird üblicherweise MIPS („million instructions per second“) genannt. Siehe auch Instruktionen pro Sekunde.
jan.b
User
Beiträge: 195
Registriert: Mittwoch 9. August 2017, 17:12

BlackJack hat geschrieben:Thread ist keine Masseinheit sondern ein separater Ausführungsstrang innerhalb eines Prozesses.

Eine Million Rechnungen, oder besser Befehle, pro Sekunde wird üblicherweise MIPS („million instructions per second“) genannt. Siehe auch Instruktionen pro Sekunde.
Danke für die ganze antworterei. :D
Antworten