我正在远程Windows XP上的Java 6 VM上运行Java应用程序,我可以在其上运行jvisualvm.exe以自动连接到正在运行的应用程序.
现在我需要从本地计算机连接该应用程序,但我不知道远程计算机的JMX端口号.我在哪里可以找到它?或者,我是否必须使用某些VM参数重新启动该应用程序以指定端口号?
在阅读了如何在服务器中找到JMX端口的问题后,我在远程计算机上执行了该命令
netstat -apn
Run Code Online (Sandbox Code Playgroud)
但一无所获.
是否有可能轮廓在MSTest的单元测试的Visual Studio 2012旗舰版,而无需使用任何外部分析工具?
我有一些高性能的Haskell代码 - 内部循环编译为6个汇编指令.修改内部循环效率较低并不会对性能产生任何明显影响,这表明内部循环不是瓶颈.但是,当我打开分析时,为内循环生成的汇编代码变得非常低效,并且分析器报告内循环占用85%的时间.
我怀疑某些东西是不必要的慢,但是当我使用分析来看什么时,我怀疑分析会使内循环足够慢以至于它占主导地位.我可以用什么技术来查看时间的去向?如果Haskell存在,那么采样分析器会很棒.
我正在使用SQLite数据库,并希望加快我的查询,可能是索引或完全重组它们.
是否有一个工具来分析查询,这可能有助于我决定哪些方面正在放慢速度?
我知道我可以在SQLite管理员这样的工具中输入查询来计算它们,但我正在寻找比这更有系统性的东西 - 也许是在后台的东西,看着我输入的所有查询期间,给出任何瓶颈的细分.
如果某个东西正在使单线程程序占用,比如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%以上.)所以它没有经过精确测量,但已经准确找到了,重要的是要了解它它可能很容易成为分析器无法实际找到的东西,例如涉及数据状态的东西,而不是程序计数器.
我一直在寻找Rails的分析工具.我正在玩和测试ruby-prof和railsbench,但是我对使用然后工作所需的调整和修改量感到沮丧.
虽然我不介意(很多)调整,但我想知道是否还有其他更直接易用的工具来分析Rails应用程序?你推荐哪些工具?
我正在寻找一个Java Profiler,用于满足以下所有要求的非常高需求的商业或免费生产环境:
基本上我需要一些可以在生产中处于休眠状态的东西,当一切都很好而没有任何人知道或关心它在那里,但随后能够连接到它麻烦(和性能降级)自由地找出难以找到的问题,如热点和同步的问题.
我经常自定义Emacs.最近,我在我的.emacs配置中添加了一些内容,偶尔会将我的CPU固定在100%,但我真的不知道它是什么.
如果我多次按下Cg,最终我会在迷你缓冲区下方收到一条消息,询问我是否要自动保存我的文件,然后如果我想完全中止emacs.如果我一直拒绝并按下Cg,最终我可以恢复正常运行emacs.大约一个小时后它会再次发生.
我可以继续像我一样,评论我最近添加的各种内容,重新启动emacs,试图缩小罪魁祸首,但它进展缓慢.
有没有办法可以直接分析emacs来找出什么lisp函数占用CPU?
我想用分析编译我的程序,所以我运行:
$ 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) 假设我想对两个程序进行基准测试:foo.py和bar.py.
是几千次运行和各自的平均值time python foo.py和time python bar.py足够的分析和比较他们的速度?
编辑:此外,如果每个程序的执行次高(假设它不是上述),time仍然可以使用?
profiling ×10
haskell ×2
java ×2
assembly ×1
benchmarking ×1
cabal ×1
dot-emacs ×1
elisp ×1
emacs ×1
jmx ×1
jvisualvm ×1
linux ×1
optimization ×1
performance ×1
profiler ×1
ruby ×1
sqlite ×1
unit-testing ×1
unix ×1