Cpu arbeitet nur auf 10%, wie kann ich das ändern?

alexthenr14  19.04.2022, 17:24

Welches programm?

fz234 
Beitragsersteller
 19.04.2022, 18:06

selbstgschrieben wurden

6 Antworten

Indem Du eine schwächere CPU einbaust ODER ein Programm nutzt, das die vorhandene CPU ausreizen kann


fz234 
Beitragsersteller
 19.04.2022, 17:22

welches Programm wäre das?

0

Wenn Du das Programm geschrieben hast, könntest Du am Code arbeiten. Entweder Deine Abläufe sind langsam oder die Berechnungsmethoden. Ansonsten kannst Du in Bezug auf Code nur beim Entwickler um eine Beschleunigung bitten.

Vielleicht hast Du Deine Daten aber auch auf einem Floppylaufwerk - das schaufelt weniger Daten an, als der Rechner verarbeiten könnte. Da wäre dann ein schneller Speicherplatz die Lösung.


fz234 
Beitragsersteller
 19.04.2022, 18:00

Aber wenn die Abläufe zb bei 1000Abläufe die Sekunde sind und mein Cpu bei 10% liegt. Wie bekomme ich den Cpu auf 20% sodass er bei 2000Abläufe wäre?

lg!

0
sumpfbub  19.04.2022, 18:02
@fz234

Da wirst Du wohl Deinen Quellcode offenlegen müssen, damit man optimieren kann. For...Next ist beispielsweise ein Konstrukt, das man häufig umgehen kann.

0

Das Programm wird nicht mehr Leistung fordern von deiner CPU. Alles gut.

Manchmal gibt es Interrupts im Code, die den zeitlichen Ablauf ausbremsen, aber nicht weil die CPU Kapazität nicht ausreicht, sondern weil andere Programmhandles Aktionen erfordern, die nicht direkt mit der CPU verknüpft sind. Excel ist so ein Beispielkandidat. Sobald du den Screen-Refresh deaktivierst, läuft der Code meist deultich schneller.

In seltenen Fällen ist das boardseitige Threading der CPU schlecht bei Multikernen. Du kannst versuchen die Priorität des Prozesses im Taskmanager zu ehöhen, oder ein neueres BIOS zu flashen. Erwarte aber keine Wunder.


fz234 
Beitragsersteller
 19.04.2022, 18:05

Aber habe ich ein falsches verständnis von Cpu`s ?

Wenn ich zb. 1000Abläufe des Programms in 1 Sekunde habe, und eine Auslastung von 10% im Cpu, kann ich den Cpu nicht auf 20% bekommen daduch das ich irgendwas ändere?

Dir Prio. ist schon auf hoch, aber egal ob sie auf normal oder hoch ist, er bleibt bei 10%

0
Kelrycorfg  19.04.2022, 21:44
@fz234

Um 20 Auslastugn zu bekommen, müsste sie 2000 Abläufe pro Sekunde schaffen, oder 1000 in 0,5s. Das ist schon klar.

Aber dein Programm, was du als Grundlage der Berechnung verwendet, macht nicht mehr Abäufe, bzw. fodert nicht mehr Prozessorzeit an. Aus welchen Gründen auch immer. Die können vielschichtig sein.

Weil das Programm, nur wie im Beispielfalle von Excel Screen-Refeshes macht und damit auf ein anderes Programmmodul wartet was das durchführt, was aber nicht viel Rechenleistung braucht, aber Zeit, und dadurch ausbremst, oder weil das Programm interrupts oder handles besitzt, welches eine volle Auslastung verhindert.

Damit kann das Programm alleine niemals 100% CPU Leistung produzieren, weil es immer eine idle time hat. Mehre Prozesse aber parallel aber schon.

Ganz simpel gesprochen, stell dir einen Sprinter vor, der von A nach B rennt, aber alle 5 Sekunden auf Grund einer Programm-Anforderung anhalten muss um seine Schürsenkel zu binden (Interrupt, Handle) und dafür auch 5 Sekunden braucht, wird niemals 100% Leistung bringen können, sondern maximal 50% effektive Rennleistung. Hast du aber zwei Sprinter. die parallel sprinten, dann sind die 100% effektive Laufleistung erreichbar. Wobei trotzdem die einzelen Sprinter niemand permanent rennen.

Die Frage ist, ob du diesen Handle/Interrupt beeinflussen kannst, der für das Schnürsenkelbinden verantwortlich ist. Und da sieht es meist mau aus.

Es kann sogar sein, dass deine Berechnung schlicht nicht multikernfähig ist. Ich meine, ne Glühbirne reinschrauben mit 10 Leuten ist nicht 10 mal schneller als mit einem. Damit liegen andere Kerne brach, oder sie sind meistens schon fertig, ehe der Haupt-Thread den nächsten Teil der Berechnung anfordern kann, und sie wieder was zu tun bekommen.

CPU Management ist komplex. Einerseits handled die CPU Dinge, die Firmware des Boards aber auch, was Auswirkungen auf das Threading hat, und andererseits lösen Programme solche "Pausen" aus. Durchaus unbewusst.

Am Ende funktioniert es, aber ggfls. wird die CPU nicht voll ausgereizt. Ist natürlich schade, wenn Leistung brach liegt. Aber ich würde mir nicht zu sehr einen Kopf darum machen. Da sind Entwickler gefragt das immer mehr zu verbessern.

1

Junge das is gut nicht schlecht xD

Das heißt das dein Pc nur nicht völlig bis zum Anschlag ausgelastet wird, heißt deine CPU is gut genug

DAS IS POSITIV

Wenn die cpu im leerlauf auf 100 prozent steigen würde wäre dasn Anzeichen für Viren.


fz234 
Beitragsersteller
 19.04.2022, 17:58

Du versteht nicht was ich möchte.

Bei spielen oder Filmen stimmt was du sagst, aber ich möchte die geschwindigkeit meines Programms erhöhen! Es soll schneller laufen und mehr Cpu deswegen benötigen!...junge!

0
ewigsuzu  19.04.2022, 18:00
@fz234

dann musste das natürlich auch so ausformulieren.da hab ich aber weniger plan von, das programm muss eben höhere anforderungen haben.

0

Hohe Priorität und "alle Kerne zuweisen" bringt da nicht viel, wenn dein Programm nicht entsprechend aufgebaut ist um tatsächlich auch mehrere Kerne zu benutzen.

Was du machen könntest um das ganze mit eher "geringem" Aufwand hinzubekommen wäre, mit mehreren Instanzen, die jeweils einem Kern zugewiesen werden und per IPC mit der Zentralinstanz kommunizieren zu arbeiten.