HPROF Tanıtım Oluşturucusu Kullanılması

HPROF , Java™ yürütmesi hakkında bilgi toplamak ve kaydetmek için JVMTI ' yı kullanan IBM® SDK ile birlikte gönderilen bir gösterim profilleyicidir. Bir programın hangi kısımlarının en çok bellek ya da işlemci süresini kullandığını görmek için HPROF komutunu kullanabilirsiniz.

Uygulamalarınızın verimliliğini artırmak için, kodun hangi kısımlarından büyük miktarda bellek ve işlemci kaynağı kullandığını bilmeniz gerekir. HPROF bir örnek JVMTI aracısıdır ve aşağıdaki sözdizimi kullanılarak başlatılır:
java -Xrunhprof[:<option>=<value>,...] <classname>

Java 'yı HPROF ile çalıştırırken, program sona erdiğinde bir dosya oluşturulur. Bu dosya yürürlükteki çalışma dizinine konur ve başka bir dosya adı verilmediyse, java.hprof.txt (ikili biçim kullanılıyorsajava.hprof ) adı verilir. Bu dosya farklı bölümler içeriyor, ancak tam biçim ve içerik seçilen seçeneklere göre değişir.

HPROF hakkında bu bölümde yer alan daha fazla bilgiye gereksinim duyarsanız, bkz. https://docs.oracle.com/javase/8/docs/technotes/samples/hprof.html.

java -Xrunhprof:help komutu kullanılabilir seçenekleri gösterir:

heap=dump|site|tümü
Bu seçenek, bellek kullanımı çözümlemesinde yardımcı olur. HPROF ' a yığın izlemeleri oluşturmasını ve belleğinin nerede ayrıldığını görebileceğiniz yığın izleme olduğunu bildirir. heap=dump seçeneğini kullanırsanız, öbeğin içindeki tüm canlı nesnelerin dökümünü alır. Heap=sitesile, en çok ayrılmış nesneleri en başta olacak şekilde sıralanmış bir site listesi elde edin. Varsayılan değer olan all , her iki çıkış tipini de sağlar.
cpu=samples|times|old
cpu seçeneği, işlemcinin zamanının çoğunu nereye harcadığını belirlemede yararlı olan bilgileri sağlar. cpu , samplesolarak ayarlandıysa, JVM yürütmeyi duraklatır ve hangi yöntem çağrısının etkin olduğunu tanımlar. Örnekleme oranı yeterince yüksekse, programınızın zamanının çoğunu harcadığı yerin iyi bir resmini elde edin. cpu , timesolarak ayarlandıysa, her yöntemin kaç kez çağrıldığı ve her yürütmenin ne kadar süreceği ile ilgili kesin ölçümler alırsınız. bu seçenek daha doğru olsa da, programı yavaşlatır. cpu , oldolarak ayarlandıysa, profil oluşturma verileri eski HPROF biçiminde üretilir.
aralar=y|n
Aralık seçeneği yalnızca cpu=samples için geçerlidir ve örnekleme iş parçacığın iş parçacığı yığınlarının örnekleri arasında uyuduğu saati denetler.
monitor=y|n
İzleme programı seçeneği, eşitlemenin uygulamanızın performansını nasıl etkilediğini anlamanıza yardımcı olabilir. İzleme programları iş parçacığı eşitlemesini gerçekleştirir. İzleyiciler hakkında bilgi almak, kilitli olan kaynaklara erişmeye çalışırken farklı iş parçacıklarının ne kadar zaman harcadığını size anlatabilir. HPROF, kullanımdaki izleme programlarının anlık görüntüsünü size de sağlar. Bu bilgiler ölümcül kilitlenmeleri saptamak için kullanışlıdır.
format=a|b
Çıkış dosyası için varsayılan değer ASCII biçimidir. Öbek Çözümleme Aracı gibi bazı yardımcı programlar için gerekli olan bir ikili biçim belirtmek istiyorsanız, format (biçim) değerini 'b' olarak ayarlayın.
dosya= < dosyaadı>
Çıkış dosyasının adını değiştirmek için file (dosya) seçeneğini kullanın. Bir ASCII dosyasının varsayılan adı java.hprof.txt' dir. İkili dosya için varsayılan ad java.hprof' dir.
force=y|n
Genellikle, varsayılan değer (force=y), çıkış dosyasındaki var olan bilgilerin üzerine yazılır. Bu nedenle, HPROF etkin olarak çalışan birden çok JVM 'niz varsa, gerektiğinde çıkış dosyası adına ek karakterler ekleyerek force=n' u kullanın.
net= < anasistem>: < kapı>
Çıktıyı yerel bir dosya yerine ağ üzerinden göndermek için net seçeneğini kullanın.
depth= < size>
derinlik seçeneği, yığın izlemesinde görüntülenecek yöntem çerçevelerinin sayısını gösterir. Varsayılan değer 4 'tür.
thread=y|n
İş parçacığı seçeneğini yolarak ayarlarsanız, iş parçacığı tanıtıcısı her izlemenin yanında yazdırılır. Bu seçenek, hangi iş parçacığın hangi izleme ile ilişkili olduğunu göremezseniz kullanışlıdır. Çok iş parçacıklı bir uygulamada bu tip bir sorun ortaya çıkabilir.
doe=y|n
Varsayılan davranış, bir uygulama çıkışı olduğunda profil bilgilerinin toplanmandır. Yürütme sırasında profil oluşturma verilerini toplamak için, doe (çıkışta döküm) seçeneğini ndeğerine ayarlayın.
msa=y|n
Bu özellik IBM SDK altyapılarında desteklenmez.
cutoff= < değer>
Çok sayıda örnek girdi, toplam yürütme süresinin küçük bir yüzdesi için üretilir. Varsayılan olarak, HPROF işlemcinin harcadığı zamanın en az 0.0001 yüzdesini gösteren tüm yürütme yollarını içerir. Bu seçeneği kullanarak kesme noktasını artırabilir ya da azaltabilirsiniz. Örneğin, toplam yürütme süresinin yüzde birinin dörtte birinden daha azını gösteren tüm girdileri kaldırmak için, cutoff=0.0025değerini belirtiyorsunuz.
verbose=y|n
Bu seçenek, dökümleri alındığında bir ileti oluşturur. Varsayılan değer y' dir.
lineno=y|n
Her çerçeve tipik olarak işlenen satır numarasını içerir, ancak çıkış listelemesinden satır numaralarını gizlemek için bu seçeneği kullanabilirsiniz. Etkinleştirilirse, her çerçeve satır numarası yerine Unknown line metnini içerir.
TRACE 1056:
java/util/Locale.toUpperCase(Locale.java:Unknown line)
java/util/Locale.<init>(Locale.java:Unknown line)
java/util/Locale.<clinit>(Locale.java:Unknown line)
sun/io/CharacterEncoding.aliasName(CharacterEncoding.java:Unknown line)