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
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#1

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

  Alt 16. Okt 2016, 11:39
Betriebssystem: Win 7,Win 8,Win 8.1
Moin,

mir erzählte kürzlich jemand, dass mit Windows 8/8.1 ein neuer Thread-Scheduler gekommen sei, der eine /spürbare/ Performance-Steigerung mit sich brächte. Als Beispiel wurde die Software Adobe Premiere genannt, die ein Video mit einer rund 1/3 höheren Bildrate rendere. Grundsätzlich mag ich nicht in Frage stellen, dass dieser Mensch ein Windows8-System gesehen hat, welches die Videos schneller fertiggestellte als ein angeblich vergleichbares Windows7-System.

Ich habe im MSDN gefühlt jeden sein umgedreht und keinerlei Hinweise darauf gefunden, dass substantielle Änderungen am Thread-Management vorgenommen worden seien. Ich denke eher, dass ein besseres Zusammenspiel von Hard- und Software über die Treiber auf dem 8er-System zu dem Resultat führte und Windows per se damit erstmal nichts zutun hatte.

Ist Euch da mit den Threads und Windows 7 bzw. Windows 8 etwas bekannt?
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#2

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

  Alt 16. Okt 2016, 12:03
Eine Performance-Steigerung kommt durch bessere Prozessoren zustande.
Wenn neue Software neue CPU-Funktionen nutzt und/oder parallel auf mehreren Cores läuft wird z.B. Rendern schneller.
Manche Software nutzt auch Funktionen der Grafik-CPUs.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

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

  Alt 16. Okt 2016, 12:43
Details hat er nicht genannt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

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

  Alt 16. Okt 2016, 12:48
Es geht um ein und dieselbe Version von Adobe Premiere. Dass neuere CPUs schneller sein können, ist klar, aber hier nicht die Frage.
Es geht darum, ob mit Windows 8 tatsächlich ein effizienteres Thread-Management am Start ist.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

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

  Alt 16. Okt 2016, 12:53
Nun ja, es wird kompatible zu alten sein. Insofern wäre das wissen nur akademischer Natur und nicht von praktischen Nutzen, denke ich mal.

Im alten bekam jeder Thread eine Zeitscheibe von 20 ms, wobei höher priorisierte Threads Vorrang hatten. Eventuell haben sie da etwas an einer Schraube gedreht. Itelligente Threadumschlatung oder so. Cachen des TEB, so dass Threads schneller wieder geladen werden können. Wären eventuell Stichworte für Google, wenn man da mehr in Erfahrung bringen will.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 16. Okt 2016, 13: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 13:36 Uhr)
  Mit Zitat antworten Zitat
Delphi-Laie

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

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

  Alt 16. Okt 2016, 14: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 14:10 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#8

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

  Alt 16. Okt 2016, 14: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
 
#9

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

  Alt 16. Okt 2016, 15: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 23:53 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