Runtime: [mscorlib] Verschieben weiterer String-Funktionen in verwalteten Code

Erstellt am 1. Mai 2016  ·  3Kommentare  ·  Quelle: dotnet/runtime

So wie es aussieht, werden viele 'high-level' String-Funktionen wie IndexOf , LastIndexOf , Replace usw. nativ implementiert, wenn sie in verwaltetem Code geschrieben werden könnten. Mir ist aufgefallen, dass dies mit einer der string.Replace Überladungen in f007485 gemacht wurde C#.

area-System.Runtime enhancement untriaged

Hilfreichster Kommentar

Wir haben dies in der Vergangenheit untersucht und alles verschoben, was ohne nennenswerten Leistungsverlust bewegt werden konnte. Das Verschieben von mehr hängt davon ab, dass für alle coreclr-Architekturen ziemlich gute verwaltete Optimierungen vorhanden sind.

Dies ist erst dann sinnvoll, wenn RyuJIT oder besserer Codegen für alle Architekturen verfügbar ist, auf denen coreclr läuft (x86, x64, arm, arm64).

Übrigens: Die verwalteten Implementierungen aller String-Methoden sind im Corert-Repo verfügbar.

Alle 3 Kommentare

Wir haben dies in der Vergangenheit untersucht und alles verschoben, was ohne nennenswerten Leistungsverlust bewegt werden konnte. Das Verschieben von mehr hängt davon ab, dass für alle coreclr-Architekturen ziemlich gute verwaltete Optimierungen vorhanden sind.

Dies ist erst dann sinnvoll, wenn RyuJIT oder besserer Codegen für alle Architekturen verfügbar ist, auf denen coreclr läuft (x86, x64, arm, arm64).

Übrigens: Die verwalteten Implementierungen aller String-Methoden sind im Corert-Repo verfügbar.

@jkotas Ah, deshalb werden die Implementierungen im Corert-Repository verwaltet; Da es AOT kompiliert und vom C++-Compiler optimiert wurde, erhalten sie einen besseren Codegen als die JIT-Implementierung, die für einige der von Ihnen erwähnten Plattformen (arm, arm64) noch in Arbeit ist. Danke für die Aufklärung, macht jetzt Sinn.

Ab der obigen @jamesqo darf gerne wieder öffnen, wenn du anders denkst.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen