Wenn die CPU trotz lang laufender Prozesse „idelt“ wird diese entweder nicht ausreichend mit Daten (von Festplatte oder Arbeitsspeicher) gefüttert(1)
(1) Flaschenhals suchen.
Ich will auch keinen Flaschenhals suchen
Mit allem Verlaub: Warum fragst Du dann? Wenn die CPU idelt bekommt die nicht ausreichend schnell Daten (oder wird sie nicht schnell genug los) oder wird durch das Scheduling gebremst.
- https://www.computerwissen.de/windows/windows-tuning/wie-sie-einem-programm-maximale-leistung-zuweisen
Und hiervon genau das Gegenteil machen:
- https://www.getwox.com/de/set-cpu-priority-to-prefer-foreground-apps/
Du hast bei Rolf gelesen, was der Umstieg auf PHP 8.1 in manchen Situationen bringt?
Hier sind 8 Kerne
Ich vermute nicht, dass bei Deiner Fallkonstellation mit Apache/PHP (vor allem nicht unter Windows) die Zahl der Kerne einen Vorteil bringt. Es geht Dir ja um einen einzelnen Programmablauf, nicht um parallele. Auch unter Linux sehe ich oft, dass nur ein Kern voll beschäftigt ist. Mit einem voll ausgelasteten Kern hast Du dann eben scheinbar nur 12,5% Auslastung des gesamten Prozessors.
Viele Kerne bieten genau dann einen Vorteil wenn Programm und Programmiersprache das unterstützen oder wenn viele Prozesse (Threads) gleichzeitig die Leistung brauchen. Und bei PHP beginnt das hier:
- https://learntutorials.net/de/php/topic/1583/multi-threading-erweiterung
- https://www.php.net/manual/en/class.pool.php
... und das geht nicht, wenn PHP als Apache-Modul läuft.
Zudem musst Du Dir dann Gedanken machen, wie Du dass mehr oder weniger linear ablaufende Programm auf mehrere Threads aufteilst. Das ist oft nicht ganz einfach, weil dann z.B. Prozess 0815 wissen muss, wann 0406 mit welchem Ergebnis fertig ist…
Es geht hier auch nicht mehr um eine effektivere Programmierung.
Ah! Sowas willst Du also:
Besorg Dir Räucherstäbchen, eine Kröte (ein saurer Hering tut es auch). Werfe die Räucherstäbchen bei Vollmond in eine Wanne mit kaltem Wasser, zünde den Hering an und rufe 3 mal laut „Tohubawu”.