Zitat von
shmia:
Versuch mal den Memory-Manager
FastMM.
Das habe ich bereits probiert.
Das Ergebnis sieht wie folgt aus:
Code:
MemoryManager | eine CPU | 2 CPUs |Kontextswitching/Interwall (auf 2 CPUs)
--------------|----------|--------|---------------------------------------
Standard-MM: | ~4.3* | ~0.4* | ~70000**
FastMM4: | ~6* | ~5.4* | ~700**
BrainMM: | ~2.6* | ~3.2* | ~700**
[*in Millionen Durchläufen auf P4 HT] [** geschätzt mit processexplorer]
Das Programm kann nur von einem Thread pro Kern profitieren,
wenn der Rest des Programms keine Speicheroperationen durchführt.
Wenn noch mehr Speicheroperationen dazu kommen, kann die Methode mit 2 Thread anscheinend nicht schneller werden.
Alternativ müßte man einen Tread in einem eigenen Codesegment starten
(also wohl ein eigenes Programm).
Leider kann ich momentan nicht auf einem echten Core2 Testen.
Das Ergebnis sollte aber trotzdem interessant sein...
Gibt es keine Möglichkeit, einen speicherunabhängigen Thread zu starten ?