Ölü kod - Dead code
Ölü kod teriminin birden çok tanımı vardır. Bazıları terimi, çalışma zamanında asla yürütülemeyen koda (yani bellekteki talimatlara) atıfta bulunmak için kullanır. Bilgisayar programlamanın bazı alanlarında , ölü kod , bir programın kaynak kodunda çalıştırılan ancak sonucu hiçbir zaman başka bir hesaplamada kullanılmayan bir bölümdür . Ölü kodun yürütülmesi, hesaplama süresini ve hafızayı boşa harcar.
Ölü bir hesaplamanın sonucu asla kullanılamazken, istisnalar ortaya çıkarabilir veya bazı genel durumu etkileyebilir, bu nedenle bu tür bir kodun kaldırılması, programın çıktısını değiştirebilir ve istenmeyen hatalara neden olabilir . Derleyici optimizasyonları, ölü kodun kaldırılmasının program çıktısını etkileyip etkilemeyeceği konusunda herhangi bir belirsizlik varsa, ölü kod kaldırmaya yönelik yaklaşımlarında tipik olarak muhafazakardır. Programcı, statik ve / veya satır içi işlevleri ek olarak kullanarak ve bağlantı zamanı optimizasyonunun kullanılmasını sağlayarak bu konuda derleyiciye yardımcı olabilir .
Misal
int foo (int iX, int iY)
{
int iZ = iX/iY;
return iX*iY;
}
Bölünmesi rağmen Yukarıdaki örnekte, IX ile Iy hesaplanır ve hiçbir zaman kullanılan sıfır ile bölme oluştuğunda, bir özel durum oluşturur. Bu nedenle, ölü kodun kaldırılması programın çıktısını değiştirebilir.
Analiz
Ölü kod eleme , ölü kodun bir programdan kaldırıldığı bir derleyici optimizasyonu biçimidir . Ölü kod analizi, canlı değişken analizi , bir tür statik kod analizi ve veri akışı analizi kullanılarak gerçekleştirilebilir . Bu, kontrol akışı analizine dayanan erişilemez kod analizinin tersidir .
Ölü kod eleme tekniği, erişilemez kod eleme ve gereksiz kod eleme ile aynı optimizasyon sınıfındadır .
Büyük programlama projelerinde, özellikle tüm modüller öldüğünde, ölü kodu tanımak ve ortadan kaldırmak bazen zordur. Test iskelesi, kodun hala çalışır durumda görünmesini sağlayabilir ve bazen sözleşme dili, kod artık alakalı olmasa bile kodun teslim edilmesini gerektirebilir.
Bazı IDE'ler (Xcode, Visual Studio 2010 ve Eclipse Galileo gibi) derleme aşamasında ölü kodu bulma yeteneğine sahiptir.
Çoğu optimizasyon tekniği, bir uygulamadaki ölü kodu ortadan kaldırmaya çalışırken, boyut için aşırı optimizasyon formlarında, bazen, başka türlü ilgisiz kod bölümlerini birlikte katlamaya izin verdiğinde (ve böylece bunların azaltılmasına izin verdiğinde) görünüşte ölü kodu kasıtlı olarak tanıtmak ve dikkatlice şekillendirmek istenebilir. birleşik boyut) böylece ekstra kod, kod aracılığıyla ilk yürütme yoluna etkili bir şekilde zarar vermez, ancak kodun diğer bölümlerinin ölü kod haline gelebileceği alternatif yürütme yolları için gerekli eylemleri gerçekleştirmek için kullanılır. Daha işlevsel bir düzeyde, bu hem zararsız / yararlı yan etkilerin yapay olarak tanıtılması hem de kodun fazlalığının azaltılması olarak görülebilir, ancak daha kısa talimatların kullanımına izin vermek için opcode seviyesine kadar da kullanılabilir. , bu, ölü kodun neden olduğu yan etkilerin uyumlu bir şekilde eklenmesi olmadan kod dizilerini katlarken mümkün olmazdı.
Ayrıca bakınız
- Ölü kod eleme
- Yedek kod
- Ulaşılamaz kod
- Oxbow kodu
- Ölü mağaza
- 0xDEADC0DE , OpenWRT ürün yazılımında işaretçi olarak kullanılan Hexspeak'te yazılmış sihirli bir sayıdır
Referanslar
Dış bağlantılar
- Dead Code Detector (DCD), Java / JEE uygulamalarınızda hiç kullanılmamış kodu bulur
- Bazı Java Ölü Kod Dedektörünün Karşılaştırmaları
- Ölü java kodunu bulmak için UCDetector Eclipse Eklentisi