Apakah ada manfaat untuk menghapus pernyataan yang tidak digunakan menggunakan dalam proyek VS?

21

Adakah manfaat untuk menghapus pernyataan yang tidak digunakan dalam proyek VS (seperti dapat dilakukan dengan menggunakan Resharper), atau akankah VS secara otomatis menangani hal itu ketika membangun / menggunakan?

B. Clay Shannon
sumber
1
Memiliki kesan yang Anda tanyakan removing unused references(DLL) dan semua jawabannya removing unused using statements.
Răzvan Flavius ​​Panda
@ RăzvanPanda: Tidak, ini menggunakan pernyataan; Saya harus ceko jika Anda dapat melakukan yang terakhir dengan R # - itu akan menjadi suhu rendah juga.
B. Clay Shannon
Aight, mengoreksi kata-kata agar sesuai dengan artinya.
Răzvan Flavius ​​Panda
1
Anda dapat menghapus referensi DLL yang tidak digunakan dengan R # terbaru, tetapi penting untuk berhati-hati tentang referensi DLL dinamis atau hal-hal yang mungkin rusak saat runtime.
Răzvan Flavius ​​Panda

Jawaban:

23

Tidak ada manfaat kinerja, jika itu yang Anda maksud.

Semua referensi dalam suatu majelis sepenuhnya memenuhi syarat; kompiler hanya menggunakan referensi yang Anda berikan dalam kode Anda untuk sepenuhnya memenuhi syarat pengidentifikasi, sehingga satu-satunya dampak dari referensi yang tidak digunakan dalam kode sumber Anda adalah sedikit penurunan keterbacaan (mengapa referensi ini ada di sini?), dan peningkatan waktu kompilasi yang sepele.

Dengan kata lain, IL yang dihasilkan sama persis dengan apakah Anda menghapus referensi yang tidak digunakan atau tidak.

Robert Harvey
sumber
Mungkin ada manfaat tidak langsung untuk menghapus Penggunaan yang tidak digunakan. Jika melakukannya pada gilirannya memungkinkan satu atau lebih referensi ke DLL eksternal untuk dihapus dari solusi, yang bisa menguntungkan ukuran penyebaran aplikasi dan / atau waktu startup.
weir
1
IL yang dihasilkan tidak berubah jika Anda menghapus usings, jadi saya tidak melihat bagaimana sesuatu akan terpengaruh.
Robert Harvey
Benar: IL tidak akan berubah jika Anda menambahkan usingreferensi s atau DLL yang tidak digunakan ( Reference Includeelemen file MSBuild, /reference:argumen CSC). Saya ada dalam pikiran: Hapus usings yang tidak terpakai dari Proyek Aplikasi Web. Itu adalah satu-satunya baris kode yang memasukkan banyak referensi DLL, jadi sekarang hapus saja. Seperti yang Anda katakan, membangun lebih cepat - lebih dari itu jika referensi adalah jalur UNC (CSC memeriksa semua jalur referensi). Kemenangan sepele 2: Kecepatan CI (skrip ambil semua DLL yang direferensikan) meningkat karena lebih sedikit file yang disalin misalnya dari server kontrol sumber untuk membangun server untuk menerbitkan server ke server aplikasi.
weir
Kode yang lebih pendek adalah kode yang lebih mudah dibaca. Kurang lebih - ini adalah manfaat & itu layak dilakukan karena alasan itu.
niico
24

Ya - Saya dapat memikirkan dua manfaat utama:

  1. Di luar tujuan fungsional utamanya (yaitu untuk mengurangi verbositas kode), daftar pernyataan 'Menggunakan' di bagian atas file kode dapat memberi tahu pembaca di masa mendatang (terutama yang tanpa Resharper) yang sesuai dengan ruang nama (atau paling tidak ) relevan dengan file kode itu . Jika Anda memangkas daftar ini secara aktif, ini dapat bertindak sebagai mekanisme pensinyalan yang lebih baik.
  2. Menghapus ruang nama yang tidak digunakan akan mengurangi jumlah kandidat pelengkapan otomatis dalam editor teks Anda saat Anda mengetik. Jika Anda mengandalkan daftar pelengkapan otomatis sama sekali, ini akan membantu Anda "tetap lurus dan sempit" dan bahkan dapat meningkatkan kecepatan mengetik Anda, karena Anda harus dapat menemukan kandidat pelengkapan otomatis yang Anda inginkan sedikit lebih cepat.
Jim G.
sumber
1
Ah, poin yang sangat bagus, terutama # 2!
B. Clay Shannon
0

Menghapus kode yang tidak digunakan, hanya bagasi ekstra dan sulit untuk mengukur efisiensi yang diperoleh.

  • Menghapus kode yang tidak digunakan, menurunkan waktu kompilasi, saya mengerjakan proyek yang membutuhkan waktu 15 hingga 20 menit, ada banyak kode yang tidak digunakan. Menghilangkan kode yang tidak digunakan mengurangi waktu kompilasi hingga ~ 7 menit. Ini membuat perbedaan ketika ada banyak pengembang di tim, ini menghemat waktu semua orang untuk membangun dan menguji dengan cepat.

  • Jika Anda telah mengotomatiskan pengujian bangunan dan unit Anda, sekarang Anda telah menghapus tes unit yang tidak Anda butuhkan. sekali lagi ini mengurangi waktu yang dibutuhkan untuk menjalankan unit test. Baru saja meningkatkan efisiensi dalam proses manajemen Continuous Build Anda.

    • Kode yang tidak digunakan menghasilkan cetakan kaki yang lebih besar dari binari Anda. Memiliki cetakan kode kaki yang lebih kecil akan mengurangi waktu yang diperlukan untuk memuat / memulai pada awalnya. Padahal perolehannya mungkin sangat sedikit dan subyektif.
Betnag
sumber
4
pertanyaannya bukan tentang kode yang tidak terpakai secara umum, ini tentang referensi yang tidak digunakan
nyamuk
... lihat Bagaimana Menjawab : "Baca pertanyaan dengan seksama . Apa, khususnya , pertanyaan yang diajukan? Pastikan jawaban Anda menyatakan bahwa - atau alternatif yang layak ..."
Aging