2012-05-14 21 views
5

Sorunun this numaralı telefonla yakından ilişkili olduğunu varsayıyorum ama kapatıldı ve bu sorun bana açık görünmüyor.VisualVM Profiler profili neden Scala konsol uygulamamı vermiyor?

Ben benim bir konsol Scala uygulama profil visualvm kullanmaya çalışıyorum. VisualVM'yi başlatarak, Scala uygulamamı başlatarak, VisualVM'deki düğümünü açarak, "Profiler" sekmesine gidip "CPU" yı tıklatarak yapıyorum. Düğme bir süreliğine gri renk alır (durum "profil etkin değil" durumundan hiçbir zaman değişmez), sonra da etkin durumdadır, ancak profil oluşturma verileri görüntülenmez.

Uygulama, bazı dosya okuma, veri işleme (bir dakika alır), stdout veri çıkışı ve çıkışları yapar. Ayrıca, VisualVM'in onu yakalaması ve işi yapması için yeterli zaman sağlamak için programın başına ve sonuna Thread.sleep(60000) eklemeyi de denedim, ancak hiçbir şey değişmedi. Ben Eclipse veya başka bir şey benim uygulaması başlatmak yok I bağladıktan ilgili soruya aksine

- Ben komut satırı aşağıdaki kullanmak başlatmak için: scala-library.jar dahil

java -classpath myapp.jar:lib/* MyApp.Main 

bütün kütüphaneleri () lib/'a konur. Uygulama beklendiği gibi çalışır.

Güncellemeler:

  • Ben YourKit Java Profiler 11.0.2 denedim ve AttachNotSupportedException ile başarısız olur.
  • YourKit ile attaching the agent manually numaralı telefondan yönetildim.
  • Uygulamayı bir IDE'den (ya da bir oluşturma aracından) çalıştırmam ya da herhangi bir JVM seçeneğini değiştirdiğimi veya sınıf yolunu değiştirmediğimi vurgulamak gerekiyor. Anladığım kadarıyla bu problem bir JVM sürümüne ve kullanıcı/izin sorunlarına bağlı gibi görünüyor. Amaç, sorunun gerçek mekanizmasını ve çalışacak her şeyi yapılandırmanın yolunu bulmaktır. kullanılan yazılımın

sürümleri:

  • YourKit Java Profiler 11.0.2
  • VisualVM 1.3.4
  • SBT 0.12.3 (kurmak içindir aday olmamaya (denedim hem fiilen))
  • Scala 2.9.2
  • Oracle Java 1.7.0_04-b20
  • Xubuntu Linux 12.04 32 bit i386
  • Linux çekirdeği 3.2.0-24-jenerik-pae
+0

Scala, oldukça eğlenceli JVM talimatları oluşturur. JVisualVM'nin JDKs javac tarafından oluşturulan kalıpları aradığı ve scalac tarafından oluşturulan desenlerle karıştırıldığı olasıdır. – joev

cevap

3

İki gün önce bir Scala uygulama profil visualvm kullandık, bu yüzden çalışması gerekir inanıyoruz. İşte benim öneri:

  • denklemin dışında scala çıkarın denklemin dışında YourKit çıkarın ve bir başlangıç ​​için o olmadan şeyleri çalıştırmak, while (true) { Thread.sleep(10000); }
  • yapan bir Java merhaba dünya alın profilleme deneyin Bunu yapmak için Scala'yı geri takın, sonra YourKit'i geri koyun.

Düzenleme: Girişinize bağlı olarak, uzak JMX bağlantısını açık bir şekilde ayarlamanızı öneririm. Aşağıdaki seçenekler ile java başlatabilirsiniz:

-Dcom.sun.management.jmxremote=true 
-Dcom.sun.management.jmxremote.port=20000 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 

Sonra visualvm içinde, localhost:20000 bir JMX bağlantı eklemek.

+0

"Profiler" sekmesi, VisualVM'de bu kadar basit görünmese bile (daha uzun uykuları denedim) Java uygulaması (veya "Örnekleyici" veya "Konular" sekmeleri): yalnızca "Genel Bakış" ve "Monitör" seçenekleri mevcuttur . – Ivan

İlgili konular