Hallo,
vorab ich Schliesse zu 100%, dass Synchronize in diesem Beispiel an der Verlangsamung Schuld ist, da es bei Beiden Zeitmessungen eingesetzt wird, MUSS die Verzögerung durch diesen Befehl bei beiden Zeitmessungen gleich sein!
Die Problematik der Single,Dual Prozessoren & HTT möchte ich hier Bitte nicht besprechen!!!!!!!!!!!!!!!!!!
Denn diese MultiThreading Anwendung ist bei Single & Mehr Cpu's langsamer!!!
Mir geht es darum, wie kann ich diese Rechenintensive Integer Anwendung beschleunigen, dass ich auf einer SingleCore CPU langsamer bin, ist klar.
Mir geht es darum, wenn ich Varibalen mehrmals übergeben muss,zwischen den Threads,wie kann ich das effizent tun, wenn der Thread immer wieder angesteuert wird!
Meiner Meinung nach gute Ansetze:
Zitat:
Overhead von Threads, bei der Mini-Berechnung fällt der ganze Threadkram
Zitat:
Zudem solltest du nur einen Thread pro CPU verwenden
Ich weis! Aber hierzu möchte ich nix sagen, das Thema ist zu Interessant & sobald ich ich die Thread Performance hier gesteigert habe werde ich hierzu wohl ein neues Thema aufmachen!
Zitat:
Habe das Beispiel mal auf meiner AMD X2 laufen lassen. Der Multithreading Test ist bei mir 80x langsamer.
Nun weis der letzte auch, wieso ich hier KEINE Diskusium über Single oder Dual Cpu hier möchte!
Zitat:
Ich würde einen oder mehrere Threads für die Berechnung erstellen und diese so lange laufen lassen, bis sie beendet sind, so hast du den Rechenaufwand für die Erstellung der Threads nur einmal.
Guter Ansatz, wie übergebe ich an den Thread die Mehrmals die Daten & wie bekomme ich sie mehrmals zurück?