标签: profiling

如何查找默认的JMX端口号?

我正在远程Windows XP上的Java 6 VM上运行Java应用程序,我可以在其上运行jvisualvm.exe以自动连接到正在运行的应用程序.

现在我需要从本地计算机连接该应用程序,但我不知道远程计算机的JMX端口号.我在哪里可以找到它?或者,我是否必须使用某些VM参数重新启动该应用程序以指定端口号?

在阅读了如何在服务器中找到JMX端口的问题后,我在远程计算机上执行了该命令

netstat -apn
Run Code Online (Sandbox Code Playgroud)

但一无所获.

java profiling jmx jvisualvm

48
推荐指数
1
解决办法
17万
查看次数

如何在Visual Studio 2012中配置单元测试?

是否有可能轮廓在MSTest的单元测试的Visual Studio 2012旗舰版,而无需使用任何外部分析工具?

profiling unit-testing visual-studio-2012

48
推荐指数
2
解决办法
2万
查看次数

分析高性能Haskell代码

我有一些高性能的Haskell代码 - 内部循环编译为6个汇编指令.修改内部循环效率较低并不会对性能产生任何明显影响,这表明内部循环不是瓶颈.但是,当我打开分析时,为内循环生成的汇编代码变得非常低效,并且分析器报告内循环占用85%的时间.

我怀疑某些东西是不必要的慢,但是当我使用分析来看什么时,我怀疑分析会使内循环足够慢以至于它占主导地位.我可以用什么技术来查看时间的去向?如果Haskell存在,那么采样分析器会很棒.

assembly profiling haskell

48
推荐指数
1
解决办法
1060
查看次数

是否有工具来分析sqlite查询?

我正在使用SQLite数据库,并希望加快我的查询,可能是索引或完全重组它们.

是否有一个工具来分析查询,这可能有助于我决定哪些方面正在放慢速度?

我知道我可以在SQLite管理员这样的工具中输入查询来计算它们,但我正在寻找比这更有系统性的东西 - 也许是在后台的东西,看着我输入的所有查询期间,给出任何瓶颈的细分.

sqlite profiling

46
推荐指数
4
解决办法
1万
查看次数

人们可以使用分析器,但为什么不停止程序呢?

如果某个东西正在使单线程程序占用,比如10倍,那么就可以在其上运行一个分析器.您也可以通过"暂停"按钮暂停它,您将看到它正在做什么.

即使它比它应该慢了10%,如果你停止它多次,不久你会看到它反复做不必要的事情.通常问题是在堆栈中间某处不是真正需要的函数调用.这不能衡量问题,但确实找到了.

编辑:反对意见主要假设您只采取1个样本.如果你是认真的,请采取10.任何一行代码,导致一定比例的浪费,如40%,将平均出现在该部分样本的堆栈上.瓶颈(单线程代码)无法隐藏它.

编辑:为了表明我的意思,许多反对意见的形式是"没有足够的样本,所以你看到的可能完全是虚假的" - 关于机会的模糊观点.但是,如果任何可识别的描述,不仅仅是在常规或常规活动中,在30%的时间内有效,那么在任何给定样本上看到它的概率是30%.

然后假设只采集了10个样本.在10个样本中看到问题的次数遵循二项分布,并且看到它0次的概率是.028.看到它1次的概率是.121.2次,概率为.233,而3次则为.267,之后下降.由于看到它少于两次的概率是.028 + .121 = .139,这意味着看到它两次或更多次的概率是1 - .139 = .861.一般规则是,如果您看到可以修复两个或更多样本的内容,则值得修复.

在这种情况下,在10个样本中看到它的机会是86%.如果你是14%没有看到它的人,那就去做更多的样品.(如果样本数量增加到20,那么两次或多次观察的几率会增加到99%以上.)所以它没有经过精确测量,但已经准确找到了,重要的是要了解它它可能很容易成为分析器无法实际找到的东西,例如涉及数据状态的东西,而不是程序计数器.

optimization performance profiling

45
推荐指数
12
解决办法
3万
查看次数

您建议使用哪些工具来配置Rails应用程序?

我一直在寻找Rails的分析工具.我正在玩和测试ruby-prof和railsbench,但是我对使用然后工作所需的调整和修改量感到沮丧.

虽然我不介意(很多)调整,但我想知道是否还有其他更直接易用的工具来分析Rails应用程序?你推荐哪些工具?

ruby profiling ruby-on-rails

45
推荐指数
3
解决办法
2万
查看次数

最适合生产的最安全的Java Profiler?

我正在寻找一个Java Profiler,用于满足以下所有要求的非常高需求的商业或免费生产环境:

  • 与代码轻量级集成(无需使用特殊选项重新编译,无代码挂钩等).在应用程序代码旁边删除一些特定于探查器的.jars是可以的.
  • 应该能够连接/断开JVM而无需重新启动应用程序.
  • 分析未激活时,不会影响性能
  • 分析处于活动状态时,对性能的影响可以忽略不计.非常轻微的降解是可以接受
  • 必须完成分析器所做的所有"预期"事情 - 在每个方法中花费的时间来查找热点,对象分配/内存分析等.

基本上我需要一些可以在生产中处于休眠状态的东西,当一切都很好而没有任何人知道或关心它在那里,但随后能够连接到它麻烦(和性能降级)自由地找出难以找到的问题,如热点和同步的问题.

java profiler profiling production-environment

45
推荐指数
3
解决办法
2万
查看次数

分析行为不端的Emacs Lisp的提示?

我经常自定义Emacs.最近,我在我的.emacs配置中添加了一些内容,偶尔会将我的CPU固定在100%,但我真的不知道它是什么.

如果我多次按下Cg,最终我会在迷你缓冲区下方收到一条消息,询问我是否要自动保存我的文件,然后如果我想完全中止emacs.如果我一直拒绝并按下Cg,最终我可以恢复正常运行emacs.大约一个小时后它会再次发生.

我可以继续像我一样,评论我最近添加的各种内容,重新启动emacs,试图缩小罪魁祸首,但它进展缓慢.

有没有办法可以直接分析emacs来找出什么lisp函数占用CPU?

emacs profiling elisp dot-emacs

44
推荐指数
4
解决办法
4654
查看次数

Cabal在需要分析库时不安装依赖项?

我想用分析编译我的程序,所以我运行:

$ cabal configure --enable-executable-profiling
...
$ cabal build
...
    Could not find module 'Graphics.UI.GLUT':
      Perhaps you havent installed the profiling libraries for package 'GLUT-2.2.2.0'?
...
$ # indeed I have not installed the prof libs for GLUT, so..
$ cabal install -p GLUT --reinstall
...
    Could not find module 'Graphics.Rendering.OpenGL':
      Perhaps you havent installed the profiling libraries for package 'OpenGL-2.4.0.1'?
...
Run Code Online (Sandbox Code Playgroud)

因此,问题是,与cabal通常的欢迎行为不同,cabal无法解析依赖关系并在需要分析库时安装它们.

我可以通过手动解析依赖项来解决它(通过跟踪编译一段时间后出现的错误):

$ cabal install -p OpenGLRaw --reinstall
$ cabal install -p StateVar --reinstall
$ cabal install -p …
Run Code Online (Sandbox Code Playgroud)

profiling haskell cabal

44
推荐指数
3
解决办法
1万
查看次数

UNIX`time`命令对于基准测试是否足够准确?

假设我想对两个程序进行基准测试:foo.py和bar.py.

是几千次运行和各自的平均值time python foo.pytime python bar.py足够的分析和比较他们的速度?


编辑:此外,如果每个程序的执行次高(假设它不是上述),time仍然可以使用?

unix linux benchmarking profiling

44
推荐指数
3
解决办法
2万
查看次数