2009-08-27 4 views
47

Я начал программировать в Scala недавно. Я ищу бесплатный профайлер Scala. Чтение с официального сайта языка привело меня к YourKit, но программа не была бесплатной.Scala profiler?

Googling "scala profiler" не дал мне никакого релевантного результата.

Итак, как мне профилировать мою программу, написанную на Scala? Я предпочитаю графический плагин для Netbeans или Eclipse. Но если такой вещи нет, то консоль будет в порядке.

Спасибо :)

ответ

46

Учитывая то, что Scala работает на Java Virtual Machine (JVM), вы можете использовать JVM инструменты JConsoleVisualVM и профилировать приложения. В качестве альтернативы любой Java Profiler должен работать (например, YourKit, как вы уже упоминали)

VisualVM был в комплекте с JDK, так как 1.6.0_10 и она основана на профилировщика NetBeans. Вы можете захватить использование памяти, горячие точки производительности коды и т.д.:

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

Большое спасибо. Я проверю это – Phil

+0

Спасибо. Я загрузил JVisualVM, затем выполнил руководство здесь https://visualvm.dev.java.net/gettingstarted.html, и он работает. – Phil

+0

Еще одна проблема: программа отображается только в том месте, где находится точка доступа. Как сделать его отображаемым в «иерархическом» режиме? то есть какая функция вызывает то, что. Может ли JVisualVM это сделать? Спасибо :) – Phil

9

Я попытался с jvisualvm (как внутри, так и снаружи NetBeans), но я не вижу какой-либо метод Scala вызова в профилирующих отчетах (только нижележащих Java библиотеки вызовов методов). Для меня это похоже на ошибку, но я мог пропустить что-то очевидное. В любом случае, вот отчет о проблеме, который я написал на сайте netbeans.org с подробностями: 171388

Если кто-то здесь успешно использовал JVisualVM для кода Scala, пожалуйста, сообщите мне.

+0

У меня такая же проблема. Я не вижу никаких методов Scala. –

+11

У меня такая же проблема, но ее можно легко решить, щелкнув флажок «Настройки» на странице Profiler и правильно настроив целевые и проигнорированные классы. В моем случае java. * Игнорировать правило заблокировать профилирование лежащего в основе кода Scala – Basilevs