Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Termin wydajność zazwyczaj odnosi się do szybkości wykonywania programu. Czasami można zwiększyć szybkość wykonywania, postępując zgodnie z pewnymi podstawowymi regułami w kodzie źródłowym. W niektórych programach ważne jest, aby dokładnie zbadać kod i użyć profilatorów, aby upewnić się, że działa tak szybko, jak to możliwe. W innych programach nie trzeba wykonywać takiej optymalizacji, ponieważ kod działa w sposób akceptowany w miarę jego pisania. W tym artykule wymieniono niektóre typowe obszary, w których wydajność może cierpieć i wskazówki dotyczące jego poprawy, a także linki do dodatkowych tematów dotyczących wydajności. Aby uzyskać więcej informacji na temat planowania i mierzenia wydajności, zobacz Wydajność
Pakowanie i rozpakowywanie
Najlepiej jest unikać używania typów wartości w sytuacjach, w których muszą być one konwertowane do obiektu dużą liczbę razy, na przykład w klasach kolekcji niegenerycznych, takich jak System.Collections.ArrayList. Można uniknąć tworzenia pól typów wartości przy użyciu kolekcji ogólnych, takich jak System.Collections.Generic.List<T>. Boxing i unboxing są kosztownymi procesami obliczeniowymi. Gdy typ wartości jest w polu, należy utworzyć całkowicie nowy obiekt. Może to potrwać do 20 razy dłużej niż prosta operacja przypisania. Podczas rozpakowywania proces rzutowania może potrwać cztery razy dłużej niż przypisanie. Aby uzyskać więcej informacji, zobacz Boxing i Unboxing.
Ciągi
Podczas łączenia dużej liczby zmiennych ciągów, na przykład w ciasnej pętli, użyj System.Text.StringBuilder zamiast operatora C# + lub operatorów łączenia języka Visual Basic. Aby uzyskać więcej informacji, zobacz Jak połączyć wiele ciągów i operatorów łączenia w Visual Basic.
Finalizatory
Puste finalizatory nie powinny być używane. Gdy klasa zawiera finalizator, wpis jest tworzony w kolejce finalizacji. Gdy finalizator zostanie wywołany, mechanizm usuwania śmieci zostaje uruchomiony w celu przetworzenia kolejki. Jeśli finalizator jest pusty, spowoduje to po prostu utratę wydajności. Aby uzyskać więcej informacji, zobacz Finalizers and Object Lifetime: How Objects are Created and Destroyed (Finalizatory i okres istnienia obiektu: jak obiekty są tworzone i niszczone).
Inne zasoby
Pisanie szybszego kodu zarządzanego: dowiedz się, jakie są koszty
Podstawy modułu odśmiecającego pamięci i wskazówki dotyczące wydajności
Porady i wskazówki dotyczące wydajności w aplikacjach platformy .NET