มีประโยชน์ใด ๆ ในการลบคำสั่งที่ไม่ได้ใช้ในโครงการ VS หรือไม่?


21

มีประโยชน์ที่จะลบคำสั่งที่ไม่ได้ใช้ในโครงการ VS (เช่นสามารถทำได้โดยใช้ Resharper) หรือ VS จะดูแลโดยอัตโนมัติเมื่อสร้าง / ปรับใช้?


1
มีความประทับใจที่คุณถามเกี่ยวกับremoving unused references(กำลัง) removing unused using statementsและทุกคำตอบจะเกี่ยวกับ
Răzvan Flavius ​​Panda

@ RăzvanPanda: ไม่มันกำลังใช้คำสั่งอยู่ ฉันจะต้องเช็กถ้าคุณสามารถทำอย่างหลังกับ R # - นั่นจะเป็นอุณหภูมิที่ต่ำอย่างน่ายินดีเช่นกัน
B. Clay Shannon

Aight, แก้ไขข้อความให้พอดีกับความหมาย
Răzvan Flavius ​​Panda

1
คุณสามารถลบการอ้างอิง DLL ที่ไม่ได้ใช้ด้วย R # ล่าสุดได้ แต่สิ่งสำคัญคือต้องระมัดระวังเกี่ยวกับการอ้างอิง DLL แบบไดนามิกหรือสิ่งต่าง ๆ อาจแตกหักในขณะรันไทม์
Răzvan Flavius ​​Panda

คำตอบ:


23

ไม่มีประโยชน์ด้านประสิทธิภาพใด ๆ หากนั่นคือสิ่งที่คุณหมายถึง

การอ้างอิงทั้งหมดในชุดประกอบมีคุณสมบัติครบถ้วน คอมไพเลอร์ใช้การอ้างอิงที่คุณให้ไว้ในโค้ดของคุณเพื่อระบุตัวระบุที่มีคุณสมบัติครบถ้วนดังนั้นผลกระทบเพียงอย่างเดียวของการอ้างอิงที่ไม่ได้ใช้ในซอร์สโค้ดของคุณคือการลดลงเล็กน้อยในการอ่าน (เพราะเหตุใดการอ้างอิงนี้

หากต้องการกล่าวอีกวิธีหนึ่ง IL ที่สร้างขึ้นจะเหมือนกันทุกประการไม่ว่าคุณจะลบการอ้างอิงที่ไม่ได้ใช้หรือไม่


อาจมีผลประโยชน์ทางอ้อมในการลบการใช้ที่ไม่ได้ใช้ หากเปิดใช้งานจะอนุญาตให้ลบการอ้างอิง DLLs ภายนอกหนึ่งรายการหรือมากกว่าจากโซลูชันซึ่งอาจเป็นประโยชน์ต่อขนาดการปรับใช้และ / หรือเวลาเริ่มต้นของแอปพลิเคชัน
ฝาย

1
IL ที่สร้างขึ้นจะไม่เปลี่ยนแปลงหากคุณลบการใช้งานดังนั้นฉันไม่เห็นว่าจะเกิดอะไรขึ้น
Robert Harvey

True: IL จะไม่เปลี่ยนแปลงหากคุณเพิ่มusingการอ้างอิง s หรือ DLL ที่ไม่ได้ใช้( Reference Includeองค์ประกอบไฟล์ MSBuild, /reference:อาร์กิวเมนต์ CSC) ฉันมีอยู่ในใจ: ลบusings ที่ไม่ได้ใช้ออกจาก Web Application Project สิ่งเหล่านั้นเป็นบรรทัดเดียวของการรวมโค้ดที่น่าสนใจของการอ้างอิง DLL จำนวนมากดังนั้นตอนนี้ให้ลบออก อย่างที่คุณพูดสร้างเร็วขึ้นดังนั้นถ้าการอ้างอิงเป็นเส้นทาง UNC (CSC ตรวจสอบเส้นทางอ้างอิงทั้งหมด) winial win 2: ความเร็วของ CI (สคริปต์คว้า DLLs ที่อ้างอิงทั้งหมด) จะดีขึ้นเนื่องจากมีการคัดลอกไฟล์น้อยลงเช่นจากเซิร์ฟเวอร์แหล่งควบคุมเพื่อสร้างเซิร์ฟเวอร์เพื่อเผยแพร่เซิร์ฟเวอร์ไปยังเซิร์ฟเวอร์แอป
ฝาย

รหัสสั้นเป็นรหัสที่อ่านได้ง่ายขึ้น Less is more - นี่คือผลประโยชน์ & มันคุ้มค่าที่จะทำด้วยเหตุผลนั้น
niico

24

ใช่ - ฉันนึกถึงประโยชน์หลักสองประการ:

  1. นอกเหนือจากวัตถุประสงค์การทำงานของหลัก (คือเพื่อลดฟุ่มเฟื่อยรหัส) ที่ 'ใช้' รายการคำสั่งที่ด้านบนของแฟ้มรหัสสามารถบอกผู้อ่านในอนาคต (โดยเฉพาะผู้ที่ไม่มี Resharper) ซึ่ง namespaces มี (หรืออย่างน้อยมี ) ที่เกี่ยวข้องกับไฟล์โค้ดที่ . หากคุณตัดรายการนี้อย่างแข็งขันมันสามารถทำหน้าที่เป็นกลไกการส่งสัญญาณที่ดีกว่า
  2. การลบเนมสเปซที่ไม่ได้ใช้จะช่วยลดจำนวนผู้สมัครเติมข้อความอัตโนมัติในโปรแกรมแก้ไขข้อความในขณะที่คุณพิมพ์ หากคุณพึ่งพารายการเติมข้อความอัตโนมัติเลยจะช่วยให้คุณ "ตรงและแคบ" และอาจเพิ่มความเร็วในการพิมพ์ของคุณเนื่องจากคุณควรจะสามารถหาผู้สมัครเติมข้อความอัตโนมัติที่ต้องการได้เร็วขึ้นเล็กน้อย

1
อาคะแนนดีมากโดยเฉพาะอย่างยิ่ง # 2!
B. Clay Shannon

0

การลบรหัสที่ไม่ได้ใช้เป็นเพียงสัมภาระพิเศษและยากต่อการวัดประสิทธิภาพที่ได้รับ

  • การเอารหัสที่ไม่ได้ใช้ออกทำให้เวลาในการรวบรวมลดลงฉันกำลังทำงานในโครงการซึ่งใช้เวลา 15 ถึง 20 นาทีที่ใดก็ได้มีรหัสที่ไม่ได้ใช้มากมาย การกำจัดรหัสที่ไม่ได้ใช้ลดเวลาในการคอมไพล์เป็น ~ 7 นาที สิ่งนี้ทำให้เกิดความแตกต่างเมื่อมีผู้พัฒนาจำนวนมากในทีมช่วยให้ทุกคนมีเวลาในการสร้างและทดสอบได้อย่างรวดเร็ว

  • หากคุณมีการทดสอบการสร้างและหน่วยโดยอัตโนมัติตอนนี้คุณได้ลบการทดสอบหน่วยที่คุณไม่ต้องการแล้ว อีกครั้งจะเป็นการลดเวลาในการเรียกใช้การทดสอบหน่วย เพิ่มประสิทธิภาพในกระบวนการจัดการ Build ต่อเนื่องของคุณ

    • โค้ดที่ไม่ได้ใช้จะทำให้การพิมพ์ไบนารีของคุณใหญ่ขึ้น การพิมพ์รหัสขนาดเล็กลงจะช่วยลดเวลาในการโหลด / เริ่มต้นในขั้นต้น แม้ว่าผลกำไรอาจน้อยมากและเป็นส่วนตัว

4
คำถามไม่ได้เกี่ยวกับรหัสที่ไม่ได้ใช้โดยทั่วไปมันเกี่ยวกับการอ้างอิงที่ไม่ได้ใช้
gnat

... ดูวิธีการคำตอบ : "อ่านคำถามอย่างระมัดระวังอะไร. โดยเฉพาะเป็นคำถามที่ขอให้ตรวจสอบให้แน่ใจคำตอบของคุณแสดงให้เห็นว่า - หรือทางเลือกที่ทำงาน ... ?"
ริ้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.