AW: Threads arbeiten nur auf einem Kern
Zitat:
Aber ohne genauere Erkenntnis über das Innere deiner Threads, können wir auch nicht weiterhelfen. Du mußt ja auch "nur" rausfinden, welcher Code bei dir dafür verantwortlich ist. |
AW: Threads arbeiten nur auf einem Kern
Ihr belebt hier übrigens diesen Beitrag von 2004 neu:
http://www.delphipraxis.net/48397-tt...maschinen.html Ich hatte mich damals damit abgefunden. |
AW: Threads arbeiten nur auf einem Kern
Was Anderes ...
sind bei dir eigentlich alles "echte" Kerne oder ist das nur so'ne Intel-Spar-CPU mit virtuellen Kernen? |
AW: Threads arbeiten nur auf einem Kern
@generic
Hast du auch FastMM als MemoryManager gehabt? @himitsu Ich habe eine solide AMD 2-Kern CPU :wink: |
AW: Threads arbeiten nur auf einem Kern
Bei mir waren es 4 phys. CPUs, dass Hyperthreading gab es damals noch nicht.
Bei dem Projekt glaube ich nicht, dass ich den FastMM genutzt. Delphi 6 oder 7 war das damals. |
AW: Threads arbeiten nur auf einem Kern
Und wie oft wird in den Threads die Synchronize-Methode ausgerufen?
Jede Methode, die über Synchronize aufgerufen wird läuft im Kontext des Hauptthreads. |
AW: Threads arbeiten nur auf einem Kern
Ich kann dieses Verhalten weder mit Lazarus noch mit Turbo Delphi 2006 (mit FastMM) nachstellen. Dabei verwenden meine Threads durchaus relativ häufig ReallocMem und Konsorten. Trotzdem gelingt es mir meine beiden CPU-Kerne voll auszulasten.
Meiner Vermutung ist auch eher, dass hier ein konzeptuelles Problem bei der Threadverwendung vorliegt (Threads blockieren sich gegenseitig/benötigen Ergebnisse des jeweils anderen/verwenden Synchronize). Meine Erfahrung mit Multithreading war, dass ich meine ersten Gehversuche damit mittlerweile auch komplett entsorgen konnte. IMHO liegt zu 90% ein Fehler in der Planung vor, wenn man irgendwo überhaupt die Synchronize-Funktion verwenden muss oder zu viele Bereiche mit Mutices oder CriticalSections schützen muss. Ohne entsprechenden Beispielcode kann ich jedoch natürlich nur Raten was ein Problem sein könnte. Eventuell ist ja auch eine verwendete Komponente für das Verhalten verantwortlich, da sie selbst den gemeinsamen Zugriff auf eine eigene Resource synchronisiert und somit deine Threads ausbremst. Andreas |
AW: Threads arbeiten nur auf einem Kern
Liste der Anhänge anzeigen (Anzahl: 2)
Also ich habe das jetzt mal ausprobiert. Es hat mir keine Ruhe gelassen.
Delphi 2007 mit FastMM4 alles gut |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz