2009-08-27 17 views
47

Empecé a programar en Scala recientemente. Estoy buscando un perfilador de Scala gratis. Leer desde el sitio oficial del idioma me llevó al YourKit, pero el programa no era gratuito.Scala profiler?

Google "scala profiler" no me dio ningún resultado relevante.

Entonces, ¿cómo perfilo mi programa escrito en Scala? Prefiero un complemento gráfico para Netbeans o Eclipse. Pero si no existe tal cosa, entonces una consola estará bien.

Gracias :)

Respuesta

46

Dado que Scala ejecuta en la máquina virtual de Java (JVM), puede utilizar las herramientas JVMJConsole y VisualVM al perfil de la aplicación. Alternativamente cualquier Java perfilador debe trabajar (por ejemplo YourKit, como ya se ha mencionado)

VisualVM ha sido incluido con el JDK desde 1.6.0_10 y que se basa en el generador de perfiles de NetBeans. Puede capturar el uso de memoria, puntos de acceso de rendimiento de código, etc:

C:> %JAVA_HOME%\bin\jvisualvm 
+0

Muchas gracias. Lo comprobaré – Phil

+0

Gracias. Descargué JVisualVM luego seguí la guía aquí https://visualvm.dev.java.net/gettingstarted.html, y funciona. – Phil

+0

Un problema más: el programa solo se muestra donde se encuentra el punto de acceso. ¿Cómo hago que se muestre en el modo "jerárquico"? es decir, qué función llama a cuál. ¿Puede JVisualVM hacer eso? Gracias :) – Phil

9

me han tratado con jvisualvm (tanto dentro como NetBeans fuera), pero no puedo ver ninguna llamada al método Scala en los informes de perfiles (sólo las bibliotecas de Java llamadas a métodos subyacentes) Para mí, parece un error, pero podría haberme olvidado algo obvio. De todos modos aquí hay un informe de problemas que escribí en netbeans.org con los detalles: 171388

Si alguien aquí ha utilizado con éxito JVisualVM en el código de CPU del código de Scala, por favor avíseme.

+0

Estoy teniendo el mismo problema. No veo ningún método de Scala. –

+11

Tengo el mismo problema, pero se puede resolver fácilmente haciendo clic en la casilla de verificación "Configuración" en la página del Analizador y configurando correctamente las clases de destino e ignoradas. En mi caso, una java. * Ignorar la regla de perfil bloqueado del código subyacente de Scala – Basilevs