除了ruby-prof和核心Benchmark类之外,你用什么来分析你的Ruby代码?特别是,您如何找到代码中的瓶颈?几乎感觉我需要使用我自己的小工具才能找出在我的代码中花费的所有时间.
我意识到ruby-prof提供了这个,但输出坦率地说非常混乱,并且不容易找出你自己的代码的哪些实际块是问题的根源(它告诉你哪些方法调用占用了最多的时间)虽然).因此,我并没有像我想的那样得到更多的东西,而且还没有真正能够利用它.
也许我做错了?还有替代品吗?谷歌搜索不会为我带来任何东西.
我创建了一个简单的1文件java应用程序,它循环遍历循环,调用一些函数,分配一些内存,添加一些数字等.我通过eclipse运行该应用程序Run As->Java Application.
正在运行的应用程序出现在Java VisualVM下Local.
我双击该应用程序并转到Profiler选项卡.
默认设置为:
Start profiling from classes: my.main.package.**
Do not profile classes: java.*, javax.*,
sun.*, sunw.*, com.sun.*
我点击CPU.的CPU和Memory按钮变灰.什么都没发生.
该Status说profiling inactive.
当我的申请终止Status说application terminated.
我在这做错了什么?我需要调整一些设置吗?启动应用程序时是否需要设置VM标志?
我需要"perf"实用程序来监控我的Mac上的程序.我知道linux附带了它,但它可以在Mac上使用吗?
我正在研究OSX 10.9 Mavericks并尝试使用perf或linux工具进行"端口搜索",但我无法获得任何结果.
我想描述(密切关注)PostgreSQL中数据库中发生的所有活动.
有没有这样的实用程序可以帮助我这样做?
我有一个XSLT用于在浏览器中查看XML文件.XSLT是天真的编写,目前需要很长时间才能执行(几分钟).
我的XML文件大小适中(~1 MiB),而执行不同处理的同一文档的其他XSLT执行速度要快得多.所以我知道问题不在于XML的大小,而是我的XSLT.
如何进行性能分析和优化我的XSLT?
(在浏览器中执行复杂的XSLT是一个坏主意吗?我应该改为应用XSLT应用程序吗?)
是否有任何工具,除了KCacheGrind,能够查看callgrind结果?对于Windows平台最好?
有没有办法确定在运行时从哪些jar加载哪些类?
我相信我们以前一直都在JAR地狱.我在项目上遇到了很多故障排除ClassNotFoundException和问题NoClassDefFoundError.我想避免在罐子里找到一个类的所有实例,并在代码上使用消除过程导致CNFE找到罪魁祸首.
是否有任何分析或管理工具可以为您提供此类信息?
这个问题非常烦人,因为我们应该在类加载时获得这些信息.必须有一种方法来达到它,或记录并找到它,但我知道什么都不会做到这一点,对吗?
我知道OSGi和版本化的软件包/模块旨在使这个问题成为一个问题......但它似乎不会很快消失.:)
注意:我发现这个问题是我的问题的一个子集,与从版本化的jar加载的类有关.
更新:有点相关,这篇文章解释了在jar中(在当前目录下)或在M2_REPO中搜索类的策略. JarScan,扫描所有子文件夹中的特定类的所有JAR文件
更新2:JBoss Tattletale也有些相关
我发现数组库Repa for Haskell非常有趣,并且想要制作一个简单的程序,试图了解如何使用它.我还使用列表进行了简单的实现,事实证明它更快.我的主要问题是如何改进下面的Repa代码以使其最有效(并且希望也非常易读).我是一个很新的使用Haskell,我找不到任何容易理解的关于Repa的教程[ 在Haskell Wiki上编辑一个,我在写这篇文章的时候有点忘记],所以不要以为我什么都知道.:)例如,我不确定何时使用force或deepSeqArray.
该程序用于以下列方式近似计算球体的体积:
下面显示了两个版本,一个使用列表,另一个使用repa.我知道代码是低效的,特别是对于这个用例,但是想法是让它在以后变得更复杂.
对于下面的值,并使用"ghc -Odph -fllvm -fforce-recomp -rtsopts -threaded"进行编译,列表版本需要1.4秒,而修复版本需要12秒,+ RTS -N1和10秒+ + RTS - N2,虽然没有转换火花(我有一台双核Intel机器(Core 2 Duo E7400 @ 2.8 GHz)运行Windows 7 64,GHC 7.0.2和llvm 2.8).(注释下面主要的正确行,只运行其中一个版本.)
感谢您的任何帮助!
import Data.Array.Repa as R
import qualified Data.Vector.Unboxed as V
import Prelude as P
-- Calculate the volume of a sphere by putting it in a bath of coordinates. Generate coordinates (x,y,z) in a cuboid. Then, for each coordinate, check if it is inside the …Run Code Online (Sandbox Code Playgroud) 我正在研究一个SHA3候选者JH的实现.我正处于算法通过NIST提供的所有KAT(已知答案测试)的地步,并且还使其成为Crypto-API的实例.因此,我开始研究它的表现.但我对Haskell很新,并且在分析时并不知道该寻找什么.
目前我的代码总是慢于用C语言编写的参考实现,所有输入长度都是10倍(C代码在这里找到:http://www3.ntu.edu.sg/home/wuhj/research/jh /jh_bitslice_ref64.h).
我的Haskell代码可以在这里找到:https://github.com/hakoja/SHA3/blob/master/Data/Digest/JHInternal.hs.
现在我不希望你浏览我的所有代码,而只是想要一些关于几个函数的技巧.我已经运行了一些性能测试,这是GHC生成的性能文件(的一部分):
Tue Oct 25 19:01 2011 Time and Allocation Profiling Report (Final)
main +RTS -sstderr -p -hc -RTS jh e False
total time = 6.56 secs (328 ticks @ 20 ms)
total alloc = 4,086,951,472 bytes (excludes profiling overheads)
COST CENTRE MODULE %time %alloc
roundFunction Data.Digest.JHInternal 28.4 37.4
word128Shift Data.BigWord.Word128 14.9 19.7
blockMap Data.Digest.JHInternal 11.9 12.9
getBytes Data.Serialize.Get 6.7 2.4
unGet Data.Serialize.Get 5.5 1.3
sbox Data.Digest.JHInternal 4.0 7.4 …Run Code Online (Sandbox Code Playgroud) 我希望从大型Python代码库中生成函数运行过程中堆使用或内存分配的摘要.
我熟悉heapy,并且在我的代码中的特定点获取堆的"快照"对我很有帮助,但我发现很难用它生成"内存随时间变化"的摘要.我也玩过line_profiler,但这适用于运行时,而不是内存.
我现在的后备是Valgrind with massif,但是缺少Heapy和line_profiler提供的大量上下文Python信息.是否存在后两者的某种组合,可以在Python程序的执行范围内提供内存使用感或堆增长感?
profiling ×10
haskell ×2
java ×2
performance ×2
arrays ×1
callgrind ×1
classloader ×1
debugging ×1
jar ×1
macos ×1
memory ×1
monitoring ×1
optimization ×1
perf ×1
postgresql ×1
profiler ×1
python ×1
repa ×1
ruby ×1
ruby-prof ×1
valgrind ×1
visualvm ×1
windows ×1
xslt ×1