我被要求查看Playframework 2.2.3应用程序的一些性能问题。我之前有过playframework 1的经验,但我发现2.x非常不同。
有没有人设法在玩游戏2中使用Yourkit分析器?我设法通过在framework / build脚本中添加java命令的选项来附加代理。这只会将代理程序附加到sbt启动程序,因此一旦启动实际应用程序,代理程序就会终止。
有人有解决方案吗?也许我需要使用' play dist'
乔恩
答案 0 :(得分:1)
一种方法是创建一个dist并使用参数从那里运行它,您将在target/universal/stage/bin/yourappname
下获得一个可以通过JAVA_OPTS
或-J-...
传递参数的runnable参数。
另一种方法是提供相同的参数,但通过你的sbt配置,然后将其传递给相同的脚本(开始只是构建和运行),请注意,因为它是脚本而不是实际的jvm,你需要要发送到JVM的任何参数的-J
前缀:
javaOptions in Production += "-J-something"
答案 1 :(得分:0)
对于其他任何人来到这里,了解如何让Yourkit与IntelliJ中的Play 2x一起工作 - 这里是我根据接受的答案做的快速摘要:
1)已安装Yourkit并验证插件是否在IntelliJ中显示。
2)安装yourkit后在IntelliJ中编辑我的运行配置,将以下内容添加到JVM选项: -agentpath:C:\ PROGRA〜2 \ YOURKI〜1个\ BIN \ Win64的\ yjpagent.dll
将路径插入你的 yourkit(x86代替win32)。我在使用Windows风格路径时遇到了麻烦,并且必须使用DOS short version来实现此功能。在这里,您可以找到Enabling profiling manually上的手册!
答案 2 :(得分:0)
使用Play 2.4,您可以使用SBT插件sbt-yourkit为Unix / Linux系统(不在SBT中运行)上的生产发行版启用YourKit。这将添加适当的YourKit代理共享对象和启动标志,以允许Play在生产中使用代理。
代理已添加到sbt dist
生成的存档或其他描述为here的构建目标中。
添加插件的步骤是:
将插件添加到您的SBT版本,例如将以下内容添加到project/plugins.sbt
:
addSbtPlugin("com.gilt.sbt" % "sbt-yourkit" % "0.0.2")
将YourKit
AutoPlugin添加到项目定义中,例如将以下内容添加到build.sbt
:
enablePlugins(YourKit)
上面的插件链接提供了更多信息。
注意:这不会在Play的开发模式下启用YourKit调试。如果您想在本地使用YourKit测试您的程序,可能最简单的方法是使用universal:stage
目标创建一个包含您的应用程序的目录 - 这通常会在<PROJECT_DIRECTORY>/target/universal/stage
下创建一个目录,并且您可以从bin/
目录中的脚本运行您的应用程序(包括YourKit集成)。