![]() |
Multiprozessoren und "Single-Tread" Anwendungen un
Hi,
es heißt ja immer, dass auf einem Multiprozessorsystem nur solche Programme schneller laufen, die speziell dafür geschrieben sind (d. h. mit mehreren Threads parallel arbeiten). Ist diese Behauptung noch aktuell? Ich habe das Gefühl, dass mein Windows 7 so optimiert ist, dass auch ursprünglich sequentielle Programme von mehreren Prozessoren profitieren. Mag sein, dass MS da in die API-Funktionen Optimierungen eingebaut hat. Jedenfalls zeigt der Taskmanager jetzt auch bei Programmen die ohne Threads arbeiten (bei selbstgeschriebenen weiß ich das ja ziemlich genau) plötzlich diverse Threads an, die Prozessoren sind gleichmäßig ausgelastet und es läuft auch wesentlich schneller. Gruß Felix |
Re: Multiprozessoren und "Single-Tread" Anwendunge
Sofern das Programm viele API-Funktionen nutzt, bei denen lange Berechnungen passieren kann das sein.
Dass du selbst keine Threads erzeugst, heißt aber noch lange nicht, dass da nur ein Thread existiert, das hat nix mit Windows 7 zu tun. Von den anderen merkst du nur nix. Sei es bei der Anzeige eines OpenDialogs oder bei der Verwendung von Indy, überall werden Threads intern benutzt. ;-) Beim OpenDialog sind es bei Vista z.B. alleine 7 Threads, die erzeugt werden, was ja auch Delphi selbst im Debug-Log anzeigt. Wenn du aber selbst lange Berechnungen durchführst, werden die nicht automatisch irgendwie verteilt. |
Re: Multiprozessoren und "Single-Tread" Anwendunge
Die Behauptung ist noch Aktuell. Nur sind HW und SW schon soweit optimiert das diese bei fehlender Unterstützung z.B. automatisch den verwenden CPU-Kern übertakten können bzw. das OS-"Drumherum" nicht mehr so von deiner eigentlichen Prozessorzeit "abgeht".
|
Re: Multiprozessoren und "Single-Tread" Anwendunge
das liegt an 3 neuen Funktionen von Windows 7:
Core-Parking, Windows Timer Coalescing und Intelligent Timer Tick: ![]() ![]() |
Re: Multiprozessoren und "Single-Tread" Anwendunge
Dateioperationen sind eigentlich schon lange (seit NT) intern mehr Multithreading, nur das du es nicht so merkst, da dieses APIs mit ihrer Beendigung meistens warten, bis die Operation fertig ist (abgesehn von AsyncIO)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz