我正在寻找一个用于本机C++的分析器.它当然不一定是免费的,但成本会影响购买决策.这是为了商业工作,所以我不能使用个人或学术许可副本.
我正在寻找的主要功能是:
我使用过英特尔的VTune和Compuware的Devpartner性能分析社区版.
VTune似乎非常强大,但它有一个陡峭的学习曲线.它也非常"模块化",所以你必须弄清楚你需要购买哪些部件.
DevPartner PACE非常易于使用,并提供所有关键功能,但它只进行了45天的试用.许可版本(Visual C++ BoundsChecker Suite的DevPartner)大约1400美元一个座位,这是可行的,但有点高imo.
什么是原生C++的优秀剖析器和为什么?
我有一个我想要配置文件的DLL ..我试图使用Very Sleepy,但我似乎无法获取源文件列来显示函数来自哪个源文件,所有显示的都是"未知"..无论如何,我真的很困惑如何使用这个应用程序..谁能指点我一些帮助?关于它的文档不多,似乎最近还没有维护.=//
谢谢..
编辑:添加另一个问题:
这个应用程序中的独家和包容性含义是什么?谢谢..
我的一个组件是花费太多时间来执行.它调用了许多服务,而这些服务又调用了许多dao方法.现在,有没有办法让它调用的每个方法花费时间.
我不想System.currentmillis在每个方法之前和之后编写计算所花费的时间,因为方法太多了.
我想我可能需要使用拦截器,或者可能是任何探查器都可以做到这一点.我不确定,请帮忙.
我很快就会加入一个已经开发了几年的PHP项目.这将是巨大的,稀疏文档,许多文件,成堆的代码,没有合理的质量水平是预期的.
您将如何收集尽可能多的有关正在发生的事情的信息?
自动加载不被预期的,至少不广泛,所以 inclued可能做好揭示的相互依赖关系.
使用phpDocumentor摘要项目文件可能会了解存在哪些类/方法/函数.
也许phpCallGraph用于方法/函数关系.
使用XDebug分析一些通用用例, 以了解层次结构和概念.
检查重要的日志文件...检查警告,弃用的用法,错误.
也许提取所有注释并将它们处理成html文件.
没有涵盖单元测试,数据库,....
你会怎么做?您对提到的工具有什么经验可以充分利用它们?
您可以假设任何必要的条件.
提取哪些统计信息可能有用?
有人有这些工具的经验吗?
编辑从"PHP工具的质量检查":
来自Bryan Waters的编辑2回答:
检查Apache日志和Google Analytics数据,找出最常请求的URL,然后分析使用XDebug分析和KCachegrind等工具发生的情况.
请参阅他对具体技术的回答.
为PHP项目设置部署/构建/ CI循环 - 由Pekka建议
编辑3
刚刚发现这篇由Gabriele Santini撰写的PDF文章 - "代码的统计分析 - 收听你的PHP代码".这就像一个金矿.
Makefile当我这样做时,有没有办法回应递归的每个目标所花费的(系统,用户,真实)时间make all?
我想以更细粒度的方式对项目的编译进行基准测试time make all.理想情况下,它会回显执行目标的树,每个树都有在其所有依赖项中花费的时间.如果它可以使用-j(并行制作)也会很棒.顺便说一下,我Makefile是非递归的(不会make为每个主要目标产生另一个实例).
谢谢!
我有一个相当大的应用程序,Spring启动时间大约是20秒.对于生产用途,这很好,但对于开发来说,这是一个很大的痛苦.
什么是一个很好的分析工具或方法,可以准确地提供我需要的信息,以弄清楚这么长的时间?也许这是我可以优化的东西?
我的应用程序是一个相当典型的spring/hibernate Web应用程序.大概有50个数据库表和几百个bean(比如200-300 ......我没算数).有一些@Configurable bean.大量的组件扫描.我也在使用Spring Security.
我用log4j做了一些原始的分析 - 只是在INFO设置.以下是一些需要花费一些时间的事情:
有几件事最多需要0.5到1秒,但这3件是最大的.
我在用map<MyStruct, I*> map1;.显然,我总应用时间的9%用于那里.特别是我的一个主要职能的一行.地图不是很大(<1k几乎总是,<20是常见的).
是否有我可能想要使用的替代实现?我想我不应该写自己的,但如果我认为这是一个好主意我可以.
附加信息:我总是在添加元素之前检查.如果存在密钥,我需要报告问题.在一点之后,我将大量使用地图进行查找,并且不会再添加任何元素.
我正在尝试使用在本地运行的JVisualVM(JDK 1.7.0 - 06,64位)将在Apache Tomcat(7.0.34)中运行的Servlet作为Windows 7(64位)上的服务进行分析.
最初我遇到了Tomcat没有显示在本地应用程序列表中的问题,因为不同的"java.io.tmp"属性错误/功能,但在本论坛的几个帖子中建议解决它.
但是,虽然Tomcat进程现在在本地应用程序列表中显示为"本地应用程序",但是当我打开进程时,没有用于Monitor,Threads,Sampler或Profile的选项卡 - 只有JVM参数和Sytem属性子菜单的Overview选项卡-tabs显示可怕的"不支持此jvm"消息.
我仔细检查过以下几项:
最后几点:
如果有人已经解决了这个问题,那么解决方案将会非常受欢迎.但是,只知道其他人是否正在运行相同的配置 - Windows 7 64位,Java 7 64位,Tomcat 7作为服务运行 - 成功.
更新:我没有作为服务运行,而是使用批处理文件运行Tomcat,并且完美运行:作为服务运行的是什么?
我唯一安装的是Nodejs.我使用的是Windows 8 x64.
我通过我的程序运行node --prof app.js.它会生成一个v8.log文件.
现在,我该如何处理v8.log文件?
我正在尝试按照此处列出的说明重新安装我的Haskell库并启用性能分析
但是,每当cabal尝试重新安装其中一个库时,我都会收到以下消息:
LibraryNameHere.hs:1:1:
Could not find module `Prelude'
Perhaps you haven't installed the profiling libraries for package `base'?
Use -v to see a list of the files searched for.
Run Code Online (Sandbox Code Playgroud)
当我尝试重新base启动并启用性能分析时,我收到以下消息:
me@machine:~/.cabal/$ cabal install -p base
Resolving dependencies...
All the requested packages are already installed:
base-4.5.0.0
Use --reinstall if you want to reinstall anyway.
me@machine:~/.cabal/$ cabal install --reinstall -p base
Resolving dependencies...
cabal: Could not resolve dependencies:
next goal: base (user goal)
rejecting: base-4.7.0.0, 4.6.0.1, 4.6.0.0, 4.5.1.0, …Run Code Online (Sandbox Code Playgroud) profiling ×10
c++ ×3
performance ×3
java ×2
windows ×2
algorithm ×1
benchmarking ×1
cabal ×1
debugging ×1
ghc ×1
gnu-make ×1
haskell ×1
inclued ×1
javascript ×1
jvisualvm ×1
makefile ×1
node.js ×1
optimization ×1
php ×1
profiler ×1
spring ×1
time ×1
tomcat ×1
v8 ×1
verysleepy ×1
visualvm ×1
xdebug ×1