Registriert seit: 14. Aug 2004
1.439 Beiträge
Delphi 2007 Professional
|
Programmcode skaliert nicht in MT
20. Jul 2022, 16:33
Hallo ich bräuchte einen Suchansatz, wie ich finde, warum mein Programmcode (der sehr sehr riesig ist) nicht vernünftig skaliert wenn ich den in mehreren Threads starte.
1 Thread CPU 26% (bei 4 Kernen)
2 Threads CPU 39%
3 Threads CPU 45%
4 Threads CPU 49%
10 Threads CPU 57%
In meinem Code sind keine Synchronize drinnen (nur das OnTerminate wird verwendet um dann den Zähler runterzuzählen um zu wissen ab alle Threads fertig sind)
Es wird massiv mit variants gearbeitet, und mit strings, vermute eine große Speicher GetMem/FreeMem sache (MM ist der Fast MM4 v4.991)
Ich verwende da drinnen keine Critical Section, und für Fremdkomponenten / Code üwsste ich nicht wie ich das rausfinden kann (Breakpoint auf einen EnterCritical Section kann ich ja nicht machen oder?)
Was könnte da noch der Grund sein?
Gruss Hans
2B or not 2B, that is FF
|