2012-08-09 28 views
9

Eclipse VisualVM launcher'u kullanmaya çalışıyorum. Oldukça güzel görünüyor, ancak VisualVM uygulamamın herhangi bir profillemesini yapmak için çok geç olursa bir örnek oluşturuyor gibi görünüyor. Uygulamam, profiler henüz başlatılmadan önce yürütmeyi bitirir; Başladıktan sonra, bir hata penceresi açılır: cannot open requested application. Daha sonra VM'yi Eclipse ("org.eclipse.equinox.launcher.Main" etiketli) olarak gösterir. Uygulamamı beklemeyi ve uygun bir profil oluşturmayı nasıl sağlayabilirim?VisualVM başlatıcısı hatası

cevap

8

Bu sorunu biliyorum. sadece yoksul adamın çözümü hep birlikte geldi geçerli:

  1. bağlayın ayıklama modunda
  2. yılında
  3. Let profilcisini programınızı başlatın
  4. kaynak kodunda bir kesme noktası ayarlama programı
devam

VisualVM'nin profil oluşturma aracısını VM'nize enjekte etmesi biraz zaman alıyor ve ben sadece uzak profillere izin verdiğinden eminim.

Alternatif olarak, YourKit kullanabilirsiniz, uygulamanızı en başından itibaren profilleyebilir. profilleme ajan VM başlangıçta enjekte Bu şekilde:

java -agentpath:c:\yourkit\yjpagent.dll FooClass 

VisualVM onun teknik olarak mümkün beri, bu seçeneği sunmuyor neden merak ediyorum. Yine de hata ayıklama hilesi, Eclipse içinde iyi bir çözüm olduğunu düşünürsünüz, aynı zamanda sınıf yüklemesiyle ilgilenmiyorsanız bile.

+0

Sadece kendi kendine çalışırken Thread.sleep() yapamazdınız mı? –

+0

@RyanAmos Bu da Debug Mode ile hile üzerinde gelmeden önce bunu yapmıştım. “Timer.sleep” ile birlikte zaman geçirmek istemedim, ya uykunuzu ya da takmayı çok uzun sürdüğünde beklemelisin. –

+0

YourKit çok pahalı. Yardım için teşekkürler! –

11

Bu muhtemelen çok geç, ama aynı problemi yaşadım ve bir kesinti belirledim. hata ayıklama modu hiç yardımcı olmadı. En sonunda VisualVM geçici verilerini% TMP%/hsperfdata_ [kullanıcı adı] klasörüne kaydettiğimi öğrendim, Windows makinemde bu klasör C: \ Users \ Jacob \ AppData \ Local \ Temp \ hsperfdata_Jacob idi. Sürecin bu klasöre erişmek için yeterli izinleri olmadığı ortaya çıktı, bu yüzden izinler üzerinde rahatladım ve şimdi gayet iyi çalışıyor. Umarım bu aynı sorunu yaşayan biri için yararlıdır!

3

Windows'ta Eclipse'i Yönetici olarak çalıştırın.

+0

Bu, Windows 8 için harika çalıştı. Teşekkürler Andres! –

+0

Rica ederim. – Andres

0

Bu aptal bir çözümdür, ancak çalışır. İşte böyle:

Uygulamanıza sonsuz bir döngü sarıcı ekleyin, "while (true) {your_app}" deyin.

Programınız daha uzun süre çalıştığında zamanlama sesleri de dışarıda olacaktır.

İlgili konular