GC uygulayıcılarının tasarımıyla, GC'yi nullification ile hızlandıramayacağınıza inanıyorum . Onların nasıl / GC çalıştırdığında ile kendinizi endişe tercih ediyorum eminim - Bu her yerde böyle bir muamele onu Varlık ve sizin için ... (yay baş aşağı, gökyüzüne yumruk yükseltir) korunması ve kollama .. .
Şahsen, değişkenleri kendiliğinden bir belge olarak tamamladığımda değişkenleri açıkça null olarak ayarladım. Beyan etmiyorum, kullanıyorum, sonra null değerine ayarlıyorum - artık ihtiyaç duyulmadığında hemen null. Diyorum ki, açıkça, "Resmi olarak seninle işim bitti ... git ..."
GC'd dilinde geçersizleştirme gerekli midir? Hayır. GC için faydalı mı? Belki evet, belki hayır, kesin olarak bilmiyorum, tasarımla gerçekten kontrol edemiyorum ve bu sürümle bugünün cevabı veya gelecekteki GC uygulamaları, cevabımı kontrolümün ötesinde değiştirebilir. Ayrıca nulling optimize edildiğinde / optimize edildiğinde, süslü bir yorumdan biraz daha fazlası olacaktır.
Adımlarımı izleyen bir sonraki fakir aptal için niyetimi netleştiriyorsa ve bazen GC'ye " yardımcı " olabilirse , o zaman bana değer. Çoğunlukla düzenli ve temiz hissetmemi sağlıyor ve Moğol düzenli ve temiz hissetmekten hoşlanıyor. :)
Buna şöyle bakıyorum: Programlama dilleri, insanların diğer insanlara niyet ve derleyiciye ne yapmaları için bir iş isteği vermesine izin vermek için var - derleyici bu isteği bir CPU için farklı bir dile (bazen birkaç) dönüştürüyor - CPU (lar), kullandığınız dili, sekme ayarlarınızı, yorumlarınızı, stil vurgularınızı, değişken adlarınızı vb. bir yuhaya verebilir. Kodda yazılan pek çok şey, bizim belirlediğimiz sıradaki CPU tarafından tüketilene dönüşmez. Bizim C, C ++, C #, Lisp, Babel, montajcı ya da gerçeklikten ziyade teori ne ise, bir çalışma ifadesi olarak yazılmıştır. Gördüğünüz şey elde ettiğiniz şey değil, evet, montajcı dilinde bile.
"Gereksiz şeyler" zihniyetini (boş satırlar gibi) "gürültü ve karmaşa kodundan başka bir şey olmadığını anlıyorum." Kariyerimin başlarında bendim; Tamamen anladım. Bu noktada kodu daha net yapan şeye doğru eğildim. Programlarıma 50 satır "gürültü" bile ekliyorum gibi değil - burada veya orada birkaç satır var.
Herhangi bir kuralın istisnaları vardır. Uçucu bellek, statik bellek, yarış koşulları, tek tonlar, "bayat" verilerin kullanımı ve tüm bu tür çürüklük senaryolarında bu farklıdır: bu, kendi hafızanızı yönetmeniz GEREKİR; GC'd Evren - umarım herkes bunu anlar. GC'd dilleri ile geri kalan zamanlar, gereklilik ya da garantili bir performans artışı yerine bir stil meselesidir.
Günün sonunda, GC için neyin uygun olup neyin olmadığını anladığınızdan emin olun; uygun şekilde kilitleyin, atın ve geçersiz kılın; balmumu açık, balmumu kapalı; nefes al nefes ver; ve diğer her şey için söylüyorum: Eğer iyi geliyorsa, yap. Kilometreniz değişebilir ... olması gerektiği gibi ...