Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Mindesthardwareanforderungen für .NET 11 wurden aktualisiert, um modernere Anweisungssätze für x86/x64- und Arm64-Architekturen zu erfordern. Darüber hinaus wurden die ReadyToRun (R2R)-Kompilierungsziele aktualisiert, um neuere Hardwarefunktionen zu nutzen.
ARM64
Für Apple gibt es keine Änderung der Mindesthardware oder des Ziels ReadyToRun . Die Apple M1 Chips entsprechen ungefähr armv8.5-a und bieten somit Unterstützung für mindestens die AdvSimd (NEON), CRC, , DOTPROD, , LSE, RCPC, RCPC2und RDMA Anweisungssätze.
Für Linux gibt es keine Änderung an der Mindesthardware. .NET unterstützt weiterhin Geräte wie Raspberry Pi, die möglicherweise nur Unterstützung für den AdvSimd Anweisungssatz bieten. Das ReadyToRun Ziel wurde aktualisiert, um den LSE Anweisungssatz einzuschließen, was zu zusätzlichem Jitting-Aufwand führen kann, wenn Sie eine Anwendung starten.
Für Windows wird der Basisplan aktualisiert, um den LSE Anweisungssatz zu erfordern. Dies ist von Windows 11 und von allen Arm64-CPUs erforderlich, die offiziell von Windows 10 unterstützt werden. Darüber hinaus stimmt es mit den Arm SBSA Anforderungen (Server Base System Architecture) überein. Das ReadyToRun Ziel wurde aktualisiert, um zu sein armv8.2-a + RCPC (dies bietet Unterstützung für mindestens AdvSimd, , CRC, , LSE, RCPCund RDMA), die den Großteil der offiziell unterstützten Hardware abdeckt.
| OS | Vorheriges JIT/AOT-Minimum | Neues JIT/AOT-Minimum | Vorheriges R2R-Ziel | Neues R2R-Ziel |
|---|---|---|---|---|
| Apfel | Apple M1 | (Keine Änderung) | Apple M1 | (Keine Änderung) |
| Linux | armv8.0-a | (Keine Änderung) | armv8.0-a | armv8.0-a + LSE |
| Fenster | armv8.0-a | armv8.0-a + LSE | armv8.0-a | armv8.2-a + RCPC |
x86/x64
Für alle drei Betriebssysteme (Apple, Linux und Windows) wird die Basislinie von x86-64-v1 auf x86-64-v2 aktualisiert. Dies ändert die Hardware dahingehend, dass sie nicht nur CMOV, CX8, SSE und SSE2 garantiert, sondern auch CX16, POPCNT, SSE3, SSSE3, SSE4.1 und SSE4.2. Diese Garantie wird von Windows 11 und von allen offiziell unter Windows 10 unterstützten x86/x64-CPUs erfordert. Es enthält alle Chips, die noch offiziell von Intel/AMD unterstützt werden, wobei die letzten älteren Chips rund 2013 nicht mehr unterstützt wurden.
Das ReadyToRun Ziel wurde für Windows und Linux aktualisiert x86-64-v3, während es für Apple unverändert bleibt, was zusätzlich die Anweisungssets AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT und MOVBE enthält.
| OS | Vorheriges JIT/AOT-Minimum | Neues JIT/AOT-Minimum | Vorheriges R2R-Ziel | Neues R2R-Ziel |
|---|---|---|---|---|
| Apfel | x86-64-v1 | x86-64-v2 | x86-64-v2 | (Keine Änderung) |
| Linux | x86-64-v1 | x86-64-v2 | x86-64-v2 | x86-64-v3 |
| Fenster | x86-64-v1 | x86-64-v2 | x86-64-v2 | x86-64-v3 |
Eingeführt in Version
.NET 11 Preview 1
Vorheriges Verhalten
Standardmäßig wurde .NET erfolgreich gestartet und auf älterer Hardware ausgeführt. Einzelne Anwendungen haben möglicherweise höhere Baselines gewählt oder explizit Hardware-Intrinsics verwendet, die den Grundwert für ihr Szenario erhöht haben.
Neues Verhalten
Ab .NET 11 kann .NET nicht auf älterer Hardware ausgeführt werden, und möglicherweise wird eine Meldung wie folgt gedruckt. (In einigen Szenarien kann eine aussagekräftigere Meldung bereitgestellt werden, in der die konkreten Hardwareanforderungen für ein bestimmtes Betriebssystem und eine bestimmte Architektur aufgeführt sind.)
Der aktuellen CPU fehlt mindestens ein Grundbefehlssatz oder mehrere.
Bei ReadyToRun-fähigen Baugruppen kann es auf bestimmter unterstützter Hardware zusätzliche Startverzögerungen geben, die nicht den Erwartungen für ein typisches Gerät entsprechen.
Art der einschneidenden Änderung
Diese Änderung ist eine Verhaltensänderung.
Grund für Änderung
.NET unterstützt eine breite Palette von Hardware, häufig über die Mindesthardwareanforderungen hinaus, die vom zugrunde liegenden Betriebssystem (OS) vorgegeben werden. .NET verfügt auch über integrierte Unterstützung für die Nutzung der Hardware, auf der sie für JIT-Szenarien aktiv ausgeführt wird. Diese Unterstützung erhöht jedoch die Codebasis erheblich, insbesondere für viel ältere Hardware, die wahrscheinlich noch nicht verwendet wird. Darüber hinaus definiert er einen "niedrigsten gemeinsamen Nenner", für den AOT-Ziele standardmäßig festgelegt werden müssen, die in einigen domänenspezifischen Szenarien zu einer verringerten Leistung für Anwendungen führen können.
Das Update auf die Mindestbasis wurde vorgenommen, um die Wartungskomplexität der Codebasis zu verringern und die dokumentierten (und häufig erzwungenen) Hardwareanforderungen des zugrunde liegenden Betriebssystems besser anzupassen.
Empfohlene Aktion
Wenn Sie Hardware verwenden, die nicht mehr unterstützt wird, sollten Sie die Aktualisierung in Betracht ziehen. Diese Hardware wird offiziell nicht unterstützt und kann möglicherweise nicht auf Betriebssystemversionen gestartet werden, die von .NET unterstützt werden.
Betroffene APIs
Diese Änderung wirkt sich auf alle .NET-Dateien aus.