Udostępnij za pośrednictwem


Wydajność — Ostrzeżenia

Ostrzeżenia wydajności obsługi bibliotek wysokiej wydajności i aplikacji.

W tej sekcji

Reguła

Opis

CA1800: Nie przeprowadzaj niepotrzebnych operacji rzutowania

Zduplikowane rzutowania zmniejszyć wydajność, zwłaszcza gdy rzutowania wykonywane są w niedużej iteracji.

CA1801: Przejrzyj nieużywane parametry

Podpis metody zawiera parametr, który nie jest używany w treści metody.

CA1802: Używaj literałów wszędzie, gdzie jest to odpowiednie

Pole jest zadeklarowany jako statyczny i tylko do odczytu (Shared i tylko do odczytu w Visual Basic) i jest inicjowana z wartością, która jest obliczalna w czasie kompilacji.Ponieważ wartość, która jest przypisana do pola docelowego jest obliczalna w czasie kompilacji, należy zmienić deklaracje pola na stałą (Const w Visual Basic), dzięki czemu wartość jest obliczana w czasie kompilacji, zamiast w czasie wykonywania.

CA1804: Usuń nieużywane zmienne lokalne

Nieużywane zmienne lokalne i niepotrzebne przydziały zwiększają rozmiar zestawu i zmniejszają wydajność.

CA1806: Nie ignoruj wyników metod

Zostanie utworzony nowy obiekt, ale nigdy nie używane, wywoływana jest metoda, która tworzy i zwraca nowy ciąg i nigdy nie jest używany nowy ciąg lub hosta skryptów systemu Windows (COM, Component Object Model) lub P/Invoke metoda zwraca błąd HRESULT lub kod, który nigdy nie jest używany.

CA1809: Unikaj nadmiernego używania zmiennych lokalnych

Typowa optymalizacja wydajności polega na przechowywaniu wartości w rejestrze procesora zamiast pamięci, co są określone jako "rejestrowanie wartości". Aby zwiększyć szanse, że wszystkie zmienne lokalne są przechowywane w rejestrze procesora, należy ograniczyć liczbę zmiennych lokalnych do 64.

CA1810: Zainicjuj wbudowane pola statyczne typu referencyjnego

Podczas gdy typ deklaruje jawny, statyczny konstruktor, kompilator just in time (JIT) dodaje sprawdzenie do każdej metody i konstruktora wystąpienia, aby upewnić się, że konstruktor statycznym został wcześniej wywołany.Sprawdzenia statycznego konstruktora mogą obniżyć wydajność.

CA1811: Unikaj niewywołanego kodu prywatnego

Prywatne lub wewnętrzne członek (poziom zespołu) nie ma dzwoniącym w zestawie, nie jest wywoływany przez aparatu plików wykonywalnych języka wspólnego i nie jest wywoływany przez pełnomocnika.

CA1812: Unikaj wewnętrznych klas bez wystąpień

Wystąpienie typu na poziomie zestawu nie jest tworzone przez kod w zestawie.

CA1813: Unikaj niezapieczętowanych atrybutów

Biblioteka klas .NET Framework zawiera metody do pobierania atrybutów niestandardowych.Domyślnie te metody wyszukują hierarchie dziedziczenia atrybutu.Plombowanie atrybutu eliminuje wyszukiwanie przez hierarchię dziedziczenia i może zwiększyć wydajność.

CA1814: Wybieraj tablice nieregularne zamiast wielowymiarowych

Nieregularna tablica to tablica, której elementy są tablicami.Można to tablice, które składają się elementy o różnej wielkości, które mogą doprowadzić do mniej nieużywanego miejsca na niektóre zestawy danych.

CA1815: Zastąp metodę equals i operator równości dla typów wartości

Dla typów wartości, dziedziczona implementacja operatora Equas wykorzystuje bibliotekę refleksji i porównuje zawartość wszystkich pól.Odbicie jest obliczeniowo kosztowne, a porównanie równości każdego pola może być niepotrzebne.Jeśli oczekujesz, że użytkownicy będą porównywać lub sortować wystąpienia lub używać wystąpień jako kluczy tabel haszowanych, typ wartości powinien implementować Equals.

CA1816: Wywołaj poprawnie GC.SuppressFinalize

Metoda, która jest implementacją zbywania nie wymaga GC.SuppressFinalize lub metodą, która nie jest implementacją zbywania wywołuje GC.SuppressFinalize lub metoda wywołuje GC.SuppressFinalize i przekazuje coś innego niż to (mi w Visual Basic).

CA1819: Właściwości nie powinny zwracać tablic

Tablicach, które są zwracane przez właściwości nie są chronionym przed zapisem, nawet jeśli właściwość jest tylko do odczytu.Aby zachować tablicę odporną na manipulacje właściwość musi zwracać kopię tablicy.Zazwyczaj użytkownicy nie rozumieją niekorzystnych następstw wydajnościowych wywołania takiej właściwości.

CA1820: Zbadaj pod kątem ciągów pustych przy użyciu długości ciągu

Porównywanie ciągów za pomocą właściwości String.Length lub metody String.IsNullOrEmpty jest znacznie szybsze niż użycie operatora Equals.

CA1821: Usuń puste finalizatory

Jeśli to tylko możliwe, należy unikać finalizatorów ze względu na dodatkowe obciążenie, które bierze udział w śledzeniu okresu istnienia obiektu.Pusty finalizatorów ponosi dodaje narzutów bez żadnych korzyści.

CA1822: Oznacz elementy członkowskie jako statyczne

Elementy członkowskie, które nie uzyskują dostępu do danych wystąpienia i nie wywołują metod wystąpienia mogą zostać oznaczone jako statyczne (Współdzielone w Visual Basic).Po oznaczeniu metod jako statyczne, kompilator wygeneruje niewirtualne strony wywołań do tych członków.To może dać wymierny zysk wydajnościowy dla kodu wrażliwego na wydajność.

CA1823: Unikaj nieużywanych pól prywatnych

Wykryte zostały pola prywatne, do których nie następuje dostęp w zestawie.

CA1824: Oznacz zestawy za pomocą NeutralResourcesLanguageAttribute

Atrybut NeutralResourcesLanguage informuje ResourceManager języka, który był używany do wyświetlania zasobów neutralnej kultury dla zestawu.To zwiększa wydajność wyszukiwania dla pierwszego zasobu, który się ładuje i może zmniejszyć zestaw roboczy.