AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Windows 7 vs. Windows 8/8.1 - Thread-Management
Thema durchsuchen
Ansicht
Themen-Optionen

Windows 7 vs. Windows 8/8.1 - Thread-Management

Ein Thema von Daniel · begonnen am 16. Okt 2016 · letzter Beitrag vom 16. Okt 2016
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.052 Beiträge
 
Delphi 12 Athens
 
#1

AW: Windows 7 vs. Windows 8/8.1 - Thread-Management

  Alt 16. Okt 2016, 12:23
Ja, da hat sich einiges getan. Eine Dokumentation habe ich allerdings nicht gefunden. Ich hatte darüber mal etwas gelesen.

Du kannst es aber leicht selbst testen, dass sich da etwas geändert hat. Pack einfach ein while True do; ins FormCreate. Unter Windows 7 wird ein Kern zu 100% ausgelastet, ab Windows 8 werden alle Kerne um etwas mehr als 100% / Kernanzahl mehr ausgelastet. Sprich alles wird nun besser auf die Kerne aufgeteilt.
Das ist einer der Gründe weshalb viele Spiele ab Windows 8 plötzlich etwas schneller laufen. Viele sind noch nicht komplett multithread-fähig, so dass diese Optimierungen dort gut ankommen.

Deshalb gibt es standardmäßig bei Windows 8 und höher auch keine Kernansicht mehr (kann man per Kontextmenü auf das Diagramm umschalten). Es ist schlicht uninteressant, weil die einzelnen Threads nicht mehr einen Kern auslasten, sondern dynamisch auf die Ressourcen aller Kerne zugreifen.

Dadurch wird das ganze schneller, auch einzelne Threads, da die Ressourcen besser genutzt werden können. Ein komplett ausgelasteter Kern ist langsamer als mehrere nicht komplett ausgelastete Kerne.

Eine so hohe Leistungssteigerung konnte ich allerdings nicht feststellen. Bei mir sind es so ca. 3-5% gewesen.

Ein anderer Effekt ist, dass alle Kerne heruntertakten können und so Strom gespart werden kann, wenn nicht einer auf 100% läuft und so volle Leistung fordert.

// EDIT:
Ach ja, den Leistungsunterschied kann man leicht messen indem man einmal normal laufen lässt und einmal die Prozessoraffinität auf einen bestimmten Kern setzt.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (16. Okt 2016 um 12:36 Uhr)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Windows 7 vs. Windows 8/8.1 - Thread-Management

  Alt 16. Okt 2016, 13:07
Das ist in der Tat eine massive Änderung der Thread(ablauf)organistaion.

Dadurch wird das ganze schneller, auch einzelne Threads, da die Ressourcen besser genutzt werden können. Ein komplett ausgelasteter Kern ist langsamer als mehrere nicht komplett ausgelastete Kerne.
Nanu, und das trotz dem "Reibungsverlust" (also eigentlich Zeitverbrauch /-verlust), die die Threadumschaltung von einem Prozessor(kern) zum nächsten mit sich bringt?!

Geändert von Delphi-Laie (16. Okt 2016 um 13:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.052 Beiträge
 
Delphi 12 Athens
 
#3

AW: Windows 7 vs. Windows 8/8.1 - Thread-Management

  Alt 16. Okt 2016, 13:17
Nanu, und das trotz dem "Reibungsverlust" (also eigentlich Zeitverbrauch /-verlust), die die Threadumschaltung von einem Prozessor(kern) zum nächsten mit sich bringt?!
Die Zeitscheibenverwaltung hast du auch, wenn ein Kern aktuell hauptsächlich einen Thread bearbeitet. Windows ist ja kein Echtzeitbetriebssystem, das z.B. einen Kern einfach exklusiv für eine bestimmte Aufgabe verfügbar macht, wenn nötig. Deshalb ist da der Unterschied nicht so groß wie es vielleicht scheint.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#4

AW: Windows 7 vs. Windows 8/8.1 - Thread-Management

  Alt 16. Okt 2016, 14:35
Zitat:
"Time resources on Windows are mostly interrupt controlled entities. Therefore, they show
a certain granularity. Typical interrupt periods are 10 ms to 20 ms. The interrupt period
can also be set to be 1 ms or even a little below 1 ms by using API calls to
NTSetTimerResolution or timeBeginPeriod. However, for several reasons they can and
shall never be set to anything near the 1 μs regime. The best resolution to observe by
means of Windows time services is therefore in the 1 ms regime."

Das heisst, die NTSetTimerResolution kann geändert werden.

PDF-Download
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 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