SORU
22 Temmuz 2009, ÇARŞAMBA


Ve Java bölünmesi çarparak daha hızlı bit kayması? .NET?

Değişen bit sol ve sağ görünüşte çok üzerinde çarpma ve bölme işlemlerini daha hızlı (?) Eğer 2 güç kullanarak olacak CPU. Ancak, bazı okurlar ve bazı algoritmalar için kod netliğini azaltabilir. Bit kaydırma performansı için gerçekten gerekli mi, ya da derleyici/dava haber ve optimize VM (güç-2 harf olduğunda özellikle) bekleyebilirim? Java başlıca ilgi duyuyorum .Başka dilde NET bir davranış ama hoş anlayışlar da uygulamaları.

CEVAP
22 Temmuz 2009, ÇARŞAMBA


Bugün yapacak çoğu derleyici daha çarpın dönüştürmek veya güç-of-iki tarafından operasyonlarını bölün. Optimize ederken, birçok Derleyiciler Eğer 2'nin bir gücü değilse bile optimize bir veya bir derleme zamanı sabiti çarpın bölün. Genellikle çarpma ya da bölme vardiya ve ekler bir dizi çürümüş olabilir, ve eğer operasyonların bu dizi çarpma ya da bölme daha hızlı olacak, derleyici kullanır.

Bir sabit ile bölme için, derleyici genellikle bir ile çarpın bir 'sihirli sayı' vardiya izledi. operasyon dönüştürebilirsiniz Bu döngü saat koruyucu çarpma genellikle çok daha hızlı bir bölünme daha büyük bir operasyon olabilir.

Henry Warren's book, Hacker's Delight, da oldukça iyi arkadaşı web sitesinde ele alınan bu konu, hakkında bilgi hazinesi vardır:

Ayrıca Bkz: bir tartışma (bir iki link ile):

Her neyse, tüm bu derleyici mikro-optimizasyon sıkıcı ayrıntılara dikkat çekmek için izin aşağı kaynar. Kendi vardiya derleyici alt görmeyeli yıllar oldu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Excel Video Tutorials

    Excel Video

    6 Aralık 2012
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007