2

我被要求调查 Playframework 2.2.3 应用程序的一些性能问题。我以前有玩框架 1 的经验,但我意识到 2.x 非常不同。

有没有人设法将 Yourkit profiler 与 play 2 一起使用?我设法通过在框架/构建脚本中的 java 命令中添加一个选项来附加代理。这只会将代理附加到 sbt 启动器,因此一旦启动真正的应用程序,代理就会死亡。

有人对此有解决方案吗?也许我需要使用'play dist'

乔恩

4

3 回答 3

2

一种方法是创建一个 dist 并从那里使用参数运行它,您将获得一个可运行的target/universal/stage/bin/yourappname,您可以将参数传递给 withJAVA_OPTS-J-...参数。

另一种方法是通过您的 sbt 配置提供相同的参数,然后将其传递给相同的脚本(开始只是构建和运行),请注意,由于它是脚本而不是实际的 jvm,因此您需要-J任何前缀要发送到 JVM 的参数:

javaOptions in Production += "-J-something"
于 2014-07-08T14:30:23.107 回答
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 短版本才能工作。在这里您可以找到有关手动启用分析的手册!

于 2014-11-19T14:41:42.720 回答
0

使用 Play 2.4,您可以使用 SBT 插件sbt-yourkit为 Unix/Linux 系统(不在 SBT 中运行)上的生产发行版启用 YourKit 。这将添加适当的 YourKit 代理共享对象和启动标志,以允许 Play 在生产中使用代理。

代理将添加到由 生成的存档,或此处sbt dist描述的其他构建目标。

添加插件的步骤如下:

  1. 将插件添加到您的 SBT 构建中,例如将以下内容添加到project/plugins.sbt

    addSbtPlugin("com.gilt.sbt" % "sbt-yourkit" % "0.0.2")

  2. YourKitAutoPlugin 添加到您的项目定义中,例如将以下内容添加到build.sbt

    enablePlugins(YourKit)

更多信息可在上面的插件链接中找到。

注意:这不会在 Play 的开发模式下启用 YourKit 调试。如果您想在本地使用 YourKit 测试您的程序,可能最简单的方法是使用universal:stage目标创建一个包含您的应用程序的目录 - 这通常会在 下创建一个目录<PROJECT_DIRECTORY>/target/universal/stage,您可以运行您的应用程序(包括 YourKit 集成)从bin/目录中的脚本。

于 2015-10-14T15:34:33.720 回答