Я недавно обнаружил, что написанная мною программа на удивление медленная, и в попытке ее исправить я бы хотел ее профилировать. До сих пор я выбирал Yourkit и hprof, но я так и не смог найти нужную функциональность.
В идеале, я хотел бы использовать тепловую карту в стиле MATLAB Profiler для всех моих исходных файлов, с более яркими цветами, указывающими на то, что в этой строке было потрачено больше времени. Я понимаю, что это много, чтобы спросить, поэтому, если это не существует, я не удивлюсь.
Если вышесказанное невозможно, я хотел бы иметь возможность выполнять профилирование стиля hprof cpu = samples, но вместо того, чтобы выплевывать список ВСЕХ методов всех классов, выполняемых в проекте, я хотел бы быть в состоянии исключить пространства имен (например: java. , scala.collection. ) и иметь возможность в любое время приписать эти методы для повторного присвоения нижнему уровню в стеке, где метод был вызван NOT в исключенном пространстве имен , Например, если у меня есть что-то вроде следующего
def sillyMethod: Unit = {
0.until(1000000).map{ i =>
(0 until 1000).toSeq + 1) == ( 0 until 1000).toSeq + 2 )
}
}
Я бы предпочел знать, что все мое время проводится в глупом методе, а не в последующих уравнениях. Это возможно с любым доступным профилировщиком?
РЕДАКТИРОВАНИЕ : в настоящее время я использую sbt для выполнения своих команд и IntelliJ IDEA для фактического редактирования.