Freigeben über


Leistungsregeln nach ID

Warnung

Beschreibung

DA0001: StringBuilder für Verkettungen verwenden

Aufrufe von "System.String.Concat" machen einen großen Teil der Profilerstellungsdaten aus. Verwenden Sie ggf. die StringBuilder-Klasse, um Zeichenfolgen aus mehreren Segmenten zu erstellen.

DA0002: VSPerfCorProf.dll fehlt

"VSPerfCorProf.dll" wurde während der Profilerstellung nicht gefunden. Diese Warnung wird ausgegeben, wenn für die Auflistung der Profilerdaten Befehlszeilentools ohne das Tool "VSPerfCLREnv.cmd" verwendet werden, das zum Initialisieren der erforderlichen Umgebungsvariablen dient.

DA0003: Zahlreiche Kernelbeispiele

Ein großer Teil der für die Anwendung gesammelten Aufruflistensamples wurde im Kernelmodus ausgeführt. Führen Sie die Profilerstellung für die Anwendung ggf. mit einer anderen Profilerstellungsmethode aus.

DA0004: Hohe Prozessorauslastung

Die Prozessorauslastung (CPU) war in den Profilerstellungsdaten, die mithilfe der Instrumentationsmethode gesammelt wurden, sehr hoch. Verwenden Sie bei der Profilerstellung für eine CPU-gebundene Anwendung ggf. die Samplingmethode zur Profilerstellung.

DA0005: Häufige GC2-Auflistung

Bei der Garbage Collection der zweiten Generation wird eine hohe Anzahl von .NET-Speicherobjekten freigegeben.

DA0006: Equals() für Werttypen überschreiben

Aufrufe der Equals-Methode oder der Gleichheitsoperatoren eines öffentlichen Werttyps machen einen großen Teil der Profilerstellungsdaten aus. Implementieren Sie ggf. eine effizientere Methode.

DA0007: Verwenden Sie keine Ausnahmen für die Ablaufsteuerung

In den Profilerstellungsdaten wurde eine Vielzahl von .NET Framework-Ausnahmehandlern aufgerufen. Verwenden Sie ggf. eine andere Kontrollflusslogik, um die Anzahl der ausgelösten Ausnahmen zu verringern.

DA0008: Es wurden nur wenige Beispiele aufgelistet

Während der Profilerstellung wurden nur wenige Samplings gesammelt. Verwenden Sie ggf. eine längere Ausführungsdauer oder eine höhere Samplingrate, um aussagekräftigere Ergebnisse zu erzielen.

DA0009: Hoher Prozentsatz der Zeitdauer in JIT

Ein bedeutender Prozentsatz der Ausführungszeit der Anwendung entfällt auf den Just-In-Time (JIT)-Compiler.

DA0010: Speicherintensive GetHashCode-Funktionen

Aufrufe der GetHashCode-Methode des Typs machen einen großen Teil der Profilerstellungsdaten aus, oder von der Methode wird Arbeitsspeicher belegt.

DA0011: Speicherintensive CompareTo-Funktionen

Die CompareTo-Methode des Typs ist aufwändig oder belegt Speicher.

DA0012: Starke Reflektion

Aufrufe der System.Reflection-Methoden (beispielsweise "InvokeMember" oder "GetMember") oder der Type-Methoden (beispielsweise "MemberInvoke") machen einen großen Teil der Profilerstellungsdaten aus. Ersetzen Sie diese Methoden ggf. durch eine frühe Bindung an die Methoden abhängiger Assemblys.

DA0013: Umfangreiche Verwendung von String.Split oder String.Substring

Aufrufe der System.String.Split-Methode oder der System.String.Substring-Methode machen einen großen Teil der Profilerstellungsdaten aus. Verwenden Sie ggf. "System.String.IndexOf" oder "System.String.IndexOfAny", wenn Sie testen möchten, ob in einer Zeichenfolge eine Teilzeichenfolge vorhanden ist.

DA0014: Äußerst hohes Maß an Paging von aktivem Speicher auf den Datenträger

Die bei der Profilerstellung erfassten Systemleistungsdaten deuten darauf hin, dass während der Profilerstellung ein sehr hohes Maß an Auslagerungen von aktivem Speicher auf den Datenträger (und umgekehrt) aufgetreten ist. Solch hohe Auslagerungsraten wirken sich in der Regel negativ auf Leistung und Reaktionszeit der Anwendung aus. Verringern Sie ggf. die Speicherbelegungen, indem Sie die Algorithmen überarbeiten. Zudem müssen möglicherweise auch die Speicheranforderungen der Anwendung berücksichtigt werden. Führen Sie die Profilerstellung ggf. auf einem Computer mit mehr Arbeitsspeicher aus.

DA0017: Hohes Maß an Paging von aktivem Speicher auf den Datenträger

Die bei der Profilerstellung erfassten Systemleistungsdaten deuten darauf hin, dass während der Profilerstellung ein hohes Maß an Auslagerungen von aktivem Speicher auf den Datenträger (und umgekehrt) aufgetreten ist. Solch hohe Auslagerungsraten wirken sich in der Regel negativ auf Leistung und Reaktionszeit der Anwendung aus. Verringern Sie ggf. die Speicherbelegungen, indem Sie die Algorithmen überarbeiten. Zudem müssen möglicherweise auch die Speicheranforderungen der Anwendung berücksichtigt werden. Führen Sie die Profilerstellung ggf. auf einem Computer mit mehr Arbeitsspeicher aus.

DA0018: 32-Bit-Anwendung wird an den vom Prozess verwalteten Speicherlimits ausgeführt

Die bei der Profilerstellung erfassten Systemdaten deuten darauf hin, dass sich die .NET Framework-Arbeitsspeicherheaps der maximalen Größe angenähert haben, die verwaltete Heaps in einem 32-Bit-Prozess erreichen können. Der gemeldete Wert ist der Maximalwert der Heaps, der ermittelt wurde, während der Prozess, dessen Profil erstellt wird, aktiv war. Optimieren Sie ggf. die Verwendung verwalteter Ressourcen durch die Anwendung.

DA0021: Hohes Maß an Garbage Collections der Generation 1

Die bei der Profilerstellung erfassten Systemleistungsdaten deuten darauf hin, dass bei der Garbage Collection der Generation 1 (im Vergleich zur Datensammlung der Generation 0) ein großer Teil des Arbeitsspeichers für .NET Framework-Objekte freigegeben wurde.

DA0022: Hohes Maß an Garbage Collections der Generation 2

Die bei der Profilerstellung erfassten Systemleistungsdaten deuten darauf hin, dass bei der Garbage Collection der Generation 2 (im Vergleich zu den Garbage Collections der Generationen 0 und 1) ein großer Teil des Arbeitsspeichers für .NET Framework-Objekte freigegeben wurde.

DA0023: Hohe GC-CPU-Zeit

Die bei der Profilerstellung erfassten Systemleistungsdaten deuten darauf hin, dass die für die Garbage Collection aufgewendete Zeit verglichen mit der gesamten Anwendungsverarbeitungszeit hoch ist.

DA0024: Übermäßige GC-CPU-Zeit

Die bei der Profilerstellung erfassten Systemleistungsdaten deuten darauf hin, dass die für die Garbage Collection aufgewendete Zeit verglichen mit der gesamten Anwendungsverarbeitungszeit übermäßig hoch ist.

DA0026: Übermäßige CPU-Zeit für die Kernelverarbeitung

Die CPU-Zeit im Kernelmodus war größer als die Zeit im Benutzermodus. Wiederholen Sie die Profilerstellung, und führen Sie ein Sampling der Anzahl von Systemaufrufen (syscalls) aus, um die Ursache für die langen Ausführungszeiten im Kernelmodus zu ermitteln.

DA0029: Nicht unterstützte CLR-Version

Sie versuchen, ein Profil für eine Anwendung zu erstellen, von der die .NET Framework-Version 1.1 verwendet wird. Diese Version wird jedoch von den Profilerstellungstools nicht unterstützt.

DA0030: Sammeln Sie Ebeneninteraktions-Messdaten für Datenbankprojekte.

Aufrufe von System.Data-Methoden machen einen großen Teil der Profilerstellungsdaten aus, und bei der Profilerstellung wurden keine Ebeneninteraktionsdaten erfasst. Führen Sie eine erneute Profilerstellung aus, und fügen Sie Ebeneninteraktionsdaten hinzu.

DA0038: Hohes Maß an Sperrkonflikten

Die zusammen mit den Profilerstellungsdaten erfassten Systemleistungsdaten deuten darauf hin, dass während der Anwendungsausführung ein überaus hohes Maß an Sperrkonflikten aufgetreten ist. Führen Sie eine erneute Profilerstellung unter Verwendung der Parallelitätsmethode aus, um die Ursache der Konflikte zu ermitteln.

DA0039: Sehr hohes Maß an Sperrkonflikten

Die zusammen mit den Profilerstellungsdaten erfassten Systemleistungsdaten deuten darauf hin, dass während der Anwendungsausführung ein übermäßig hohes Maß an Sperrkonflikten aufgetreten ist. Führen Sie eine erneute Profilerstellung unter Verwendung der Parallelitätsmethode aus, um die Ursache des Konflikts zu ermitteln.

DA0501: Durchschnittliche CPU-Auslastung durch den Prozess, für den die Profilerstellung ausgeführt wird.

In dieser Meldung wird der Prozentsatz der Zeit gemeldet, die ein Prozessor mit dem Ausführen von Anweisungen aus der Anwendung beschäftigt war. Bei dem gemeldeten Wert handelt es sich um den Durchschnittswert aller Messintervalle, in denen der Prozess, dessen Profil erstellt wird, aktiv war. Bei einem Computer mit mehreren Prozessoren kann der Wert 100 Prozent übersteigen.

DA0502: Maximale CPU-Auslastung durch den Prozess, für den die Profilerstellung ausgeführt wird

In dieser Meldung wird der maximale Prozentsatz der Zeit gemeldet, die ein Prozessor mit dem Ausführen von Anweisungen aus der Anwendung beschäftigt war. Bei dem gemeldeten Wert handelt es sich um den Maximalwert aller Messintervalle, in denen der Prozess, dessen Profil erstellt wird, aktiv war. Bei einem Computer mit mehreren Prozessoren kann der Prozentsatz 100 Prozent übersteigen.

DA0503: Durchschnittliche Arbeitsseite in Bytes für den Prozess, für den die Profilerstellung ausgeführt wird

Diese Meldung gibt Aufschluss über die durchschnittliche Menge an physikalischem Speicher, die gerade von der Arbeitsseite verwendet wird (in Bytes). Die Prozessarbeitsseite stellt Seiten aus dem Prozessadressbereich dar, die sich gegenwärtig im physikalischen Speicher befinden.

DA0504: Maximale Arbeitsseite in Bytes für den Prozess, für den die Profilerstellung ausgeführt wird

In dieser Meldung wird die maximale Menge an virtuellem Arbeitsspeicher (in Bytes) gemeldet, die derzeit vom Prozess verwendet wird. Die Prozessarbeitsseite stellt Seiten aus dem Prozessadressbereich dar, die sich gegenwärtig im physikalischen Speicher befinden. Von dieser Regel wird der maximale Wert für die Prozessarbeitsseite bei aktiver Profilerstellung gemeldet.

DA0505: Durchschnittliche private Bytes, die für den Prozess zugeordnet sind, für den die Profilerstellung ausgeführt wird

In dieser Meldung wird die durchschnittliche Menge an virtuellem Arbeitsspeicher in (privaten) Bytes gemeldet, die derzeit vom Prozess belegt sind. Private Bytes stellen virtuelle Speicherorte dar, die durch den Prozess belegt wurden und auf die nur von im Prozess ausgeführten Threads zugegriffen werden kann.

DA0506: Maximale private Bytes, die für den Prozess zugeordnet sind, für den die Profilerstellung ausgeführt wird

In dieser Meldung wird die maximale Menge an virtuellem Arbeitsspeicher in (privaten) Bytes gemeldet, die derzeit vom Prozess belegt sind. Private Bytes stellen virtuelle Speicherorte dar, die durch den Prozess belegt wurden und auf die nur von im Prozess ausgeführten Threads zugegriffen werden kann.