Czy są jakieś korzyści z usuwania nieużywanych instrukcji za pomocą projektu VS?

21

Czy są jakieś korzyści z usuwania nieużywanych instrukcji za pomocą projektu VS (np. Można to zrobić przy użyciu Resharper), czy VS automatycznie zajmie się tym podczas budowania / wdrażania?

B. Clay Shannon
źródło
1
Mając wrażenie, o które pytałeś removing unused references(biblioteki DLL) i wszystkie odpowiedzi dotyczą removing unused using statements.
Răzvan Flavius ​​Panda
@ RăzvanPanda: Nie, to jest przy użyciu instrukcji; Będę musiał czeskiego, jeśli możesz zrobić to drugie z R # - to też byłoby przyjemnie niska temperatura.
B. Clay Shannon
Aight, poprawiając sformułowanie, aby pasowało do znaczenia.
Răzvan Flavius ​​Panda
1
możesz usunąć nieużywane odwołania DLL za pomocą najnowszej wersji R #, ale ważne jest, aby uważać na dynamiczne odwołania DLL, ponieważ w czasie wykonywania mogą wystąpić awarie.
Răzvan Flavius ​​Panda

Odpowiedzi:

23

Nie ma żadnych korzyści w zakresie wydajności, jeśli o to ci chodzi.

Wszystkie odniesienia w zestawie są w pełni kwalifikowane; kompilator używa jedynie referencji podanych w kodzie, aby w pełni zakwalifikować identyfikatory, więc jedynym skutkiem nieużywanych referencji w kodzie źródłowym jest nieznaczne zmniejszenie czytelności (dlaczego tutaj jest to referencja?) i trywialny wzrost czasu kompilacji.

Innymi słowy, wygenerowana IL jest dokładnie taka sama, niezależnie od tego, czy usuniesz nieużywane odwołania, czy nie.

Robert Harvey
źródło
Usunięcie nieużywanych Usings może przynieść pośrednią korzyść. Jeśli to zrobi, z kolei pozwoli na usunięcie jednego lub więcej odwołań do zewnętrznych bibliotek DLL z rozwiązania, co może korzystnie wpłynąć na rozmiar wdrożenia aplikacji i / lub czas uruchamiania.
jaz
1
Wygenerowana IL nie zmieni się, jeśli usuniesz usings, więc nie widzę, jak by to wpłynęło na coś.
Robert Harvey
Prawda: IL nie zmieni się, jeśli dodasz nieużywane usingodwołania s lub DLL ( Reference Includeelement pliku MSBuild, /reference:argument CSC). Miałem na myśli: Usuń nieużywane usingpliki z projektu aplikacji sieci Web. Były to jedyne wiersze kodu, które zmuszają do włączenia wielu odwołań do DLL, więc teraz je usuń. Jak mówisz, buduje się szybciej - tym bardziej, jeśli referencje były ścieżkami UNC (CSC sprawdza wszystkie ścieżki referencyjne). Trywialna wygrana 2: Szybkość CI (skrypty pobierają wszystkie odnośne biblioteki DLL) poprawia się, ponieważ kopiowanych jest mniej plików, np. Z serwera kontroli źródła, aby zbudować serwer, aby opublikować serwer na serwerach aplikacji.
jaz
Krótszy kod jest bardziej czytelnym kodem. Mniej znaczy więcej - to jest korzyść i z tego powodu warto to zrobić.
niico
24

Tak - mogę wymyślić dwie podstawowe korzyści:

  1. Poza głównym celem funkcjonalnym (tj. Ograniczaniem gadatliwości kodu) lista instrukcji „Korzystanie” na górze pliku kodu może informować przyszłych czytelników (szczególnie tych bez Resharpera), które przestrzenie nazw są (a przynajmniej były ) istotne dla tego pliku kodu . Aktywne przycinanie tej listy może działać jako lepszy mechanizm sygnalizacyjny.
  2. Usunięcie nieużywanych przestrzeni nazw zmniejszy liczbę kandydatów do autouzupełniania w edytorze tekstu podczas pisania. Jeśli w ogóle polegasz na listach autouzupełniania, pomoże ci to zachować „prostą i wąską”, a nawet może zwiększyć szybkość pisania, ponieważ powinieneś być w stanie znaleźć zamierzonego kandydata do autouzupełniania nieco szybciej.
Jim G.
źródło
1
Ach, bardzo dobre punkty, szczególnie # 2!
B. Clay Shannon
0

Usunięcie nieużywanego kodu jest tylko dodatkowym bagażem i ciężko zmierzyć uzyskane korzyści.

  • Usuwanie nieużywanego kodu, skraca czas kompilacji, pracuję nad projektem, który zajmuje od 15 do 20 minut, jest mnóstwo nieużywanego kodu. Wyeliminowanie nieużywanego kodu skróciło czas kompilacji do ~ 7 minut. To robi różnicę, gdy w zespole jest wielu programistów, co oszczędza każdemu czas na szybkie budowanie i testowanie.

  • Jeśli zautomatyzowałeś testy kompilacji i testy jednostkowe, teraz usunąłeś testy jednostkowe, których nie potrzebujesz. ponownie skraca to czas potrzebny na przeprowadzenie testów jednostkowych. Właśnie zwiększona wydajność w procesie zarządzania ciągłą kompilacją.

    • Nieużywany kod powoduje większy ślad twoich plików binarnych. Mniejszy odcisk stopki kodu skróci czas potrzebny do załadowania / uruchomienia na początku. Chociaż zyski mogą być bardzo skromne i subiektywne.
Betnag
źródło
4
pytanie nie dotyczy ogólnie nieużywanego kodu, lecz nieużywanych referencji
gnat,
... zobacz Jak odpowiedzieć : „Przeczytaj uważnie pytanie . O co konkretnie pytasz? Upewnij się, że twoja odpowiedź zapewnia - lub realną alternatywę ...”
komentuje