2009-08-27 17 views
47

Ho iniziato a programmare in Scala di recente. Sto cercando un profiler Scala gratuito. La lettura dal sito ufficiale della lingua mi ha portato a YourKit, ma il programma non era gratuito.Scala profiler?

Googling "scala profiler" non mi ha dato alcun risultato pertinente.

Quindi, come posso scrivere il mio programma in Scala? Preferisco un plug-in grafico per Netbeans o Eclipse. Ma se non esiste una cosa del genere, allora una console andrà bene.

Grazie :)

risposta

46

Dato che Scala gira su Java Virtual Machine (JVM), è possibile utilizzare i JVM strumenti JConsole e VisualVM al profilo dell'applicazione. In alternativa qualsiasi Java profiler dovrebbe funzionare (ad esempio YourKit, come hai già accennato)

VisualVM è stato fornito in bundle con il JDK dal 1.6.0_10 e si basa sulla NetBeans Profiler. È possibile catturare l'utilizzo della memoria, gli hotspot di prestazione di codice ecc:

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

Molte grazie. Lo verificherò – Phil

+0

Grazie. Ho scaricato JVisualVM quindi ho seguito la guida qui https://visualvm.dev.java.net/gettingstarted.html e funziona. – Phil

+0

Un altro problema: il programma mostra solo dove si trova l'hotspot. Come posso visualizzarlo nella modalità "gerarchica"? cioè quale funzione chiama quale. JVisualVM può farlo? Grazie :) – Phil

9

ho cercato con jvisualvm (sia all'interno che NetBeans fuori), ma non riesco a vedere alcuna chiamata al metodo Scala nelle relazioni profilatura (solo le librerie Java chiamate di metodo sottostanti). Per me sembra un insetto, ma forse mi è sfuggito qualcosa di ovvio. Comunque qui c'è un rapporto sul problema che ho scritto su netbeans.org con i dettagli: 171388

Se qualcuno qui ha usato con successo JVisualVM in codice Scala profilo CPU per favore fammi sapere.

+0

Sto avendo lo stesso problema. Non vedo alcun metodo di Scala. –

+11

Ho lo stesso problema, ma può essere facilmente risolto facendo clic sulla casella "Impostazioni" sulla pagina di Profiler e configurando correttamente le classi target e ignorate. Nel mio caso un java. * Ignora la regola del profilo bloccato del codice Scala sottostante – Basilevs