2013-03-14 27 views
8

RCP ürünümün possible JVM flags for optimizing launching startup time modeline bakarken, çekici olarak adlandırılan -XX:UseFastEmptyMethods ve -XX:UseFastAccessorMethods'u buldum.JVM seçenek XX: UseFastEmptyMethods/XX: UseFastAccessorMethods

Bu bayraklar JDK-6'da (ve varsayılan olarak) bulunurken, JDK-7'de varsayılan olarak ayarlanmış gibi görünüyor. Ayrıca, bu optimizasyona yönelik satış işleminin, yöntem çağırma sayaçlarını artırmamaları olduğunu okudum.

Çağırma sayıcılarının kullanılmasının etkisi nedir? Bu çöp koleksiyonunu etkiler mi?

+1

im tahmin alışkanlık GC etkileyen ancak bu sayaçlar optimizasyonu için – radai

cevap

7

Bu yöntem, yöntemlerin çağrı sayısını doğru bir şekilde almak için VM'nin kodunuzdaki sıcak noktaları daha iyi tanımlayabilmesi içindir.
-XX: here

gelen tartışma Eğer JDK6 üzerinde iseniz, sizin hedef Java uygulaması bu iki VM bayrakları dahil etmek gerekebilir ardından

-UseFastEmptyMethods-XX : -UseFastAccessorMethods

Aksi listede görünmeyecektir yöntemleri ve erişimci yöntemleri,çünkü boş"hızlı" sürümü, bu yöntemleri için çağrı sayacını artırmaz. JDK7'de, bu iki bayrak varsayılan olarak false değerine ayarlanmıştır, bu nedenle yanlış açık olarak ayarlamayı zahmetsizce kullanamazsınız.


Ayrıca Bakınız:

UseFastEmptyMethods/UseFastAccessorMethods considered harmful

+1

1 teşekkür "sıcak" kod yollarını belirlemek için kullanılan beri JIT etkileyebilir. Cevabın ilk kısmı biraz ilgisiz olsa da (ben bayrakları açmanın neden ve niçin olduğunu soruyorum), ikinci bağlantı faydalıdır. Yine de bu bayrağı hangi durumlarda çevirmenin güvenli olduğu düşünülüyor. –