我需要优化Java应用程序.它会进行第三方通话.我需要一些好的工具来准确测量各个API调用所花费的时间.为了解复杂性 - 应用程序采用包含100万行的数据源文件,完成处理大约需要一个小时.作为处理的一部分,它会进行一些第三方呼叫(包括一些网络呼叫).我需要确定哪些调用比其他调用花费更多时间,并在此基础上找到优化应用程序的方法.
任何建议,将不胜感激.
我有一个非常慢的maven构建.我想知道是否有一种方法来分析maven执行,以找出哪些是最耗时的步骤.
稍后我会想要比较旧版本(更快)的版本之间的这些时间,因此理想情况下它们应该是可以比较/差异/绘制的格式.
我正在以下列方式运行"perf":
perf record -a --call-graph -p some_pid
perf report --call-graph --stdio
Run Code Online (Sandbox Code Playgroud)
然后,我看到了这个:
1.60% my_binary my_binary [.] my_func
|
--- my_func
|
|--71.10%-- (nil)
| (nil)
|
--28.90%-- 0x17f310000000a
Run Code Online (Sandbox Code Playgroud)
我看不出哪个函数调用my_func().我看到"nil"和"0x17f310000000a".难道我做错了什么?这可能不是调试信息问题,因为显示了一些符号而其他符号未显示.
更多信息:
Windows是否有适当的采样(例如,非仪器)分析器?最好一个类似于鲨鱼在MacOS,虽然我愿意接受我我将不得不支付这样一个分析器上的窗口.
我试着在VS团队套件探查,并没有太深刻的印象,并想知道是否有任何其他好的.
[编辑:ERK,我忘了说,这是C/C++,而不是.NET - 抱歉任何混淆]
我知道在此之前已经有人问过类似的问题,但是让我准确描述一下我需要做什么:
我有一组运行命令行java应用程序的测试,我想为它们添加内存分析.我看到的一个选项是向我的应用程序添加代码(可能使用第三方工具/库),这将提供内存快照.另一种选择是使用第三方工具来管理/检测我的应用程序和JVM(理想情况下不需要我更改我的代码).我想的是像Valgrind这样的东西,但是对于Java来说.如果可能的话也是开源的.
我真正想要做的是设置内存测试,以便定期监视我的内存使用情况,比方说每秒,然后转储到文本文件中.这样我就可以看到内存使用量是否会随着时间的推移而振荡/增加/减少.我还能够计算最大和最小峰值.
有人在这做过这样的事吗?
提前致谢.
在网站上收集每个网页的使用情况统计数据是常见的做法,我对类似的事情感兴趣,但对于GUI:s.您会看到谷歌浏览器(和其他人)收集使用情况统计数据,以便谷歌可以找出人们使用的功能,以便对数据进行数据挖掘.
一种直接的方法是明确记录与每个GUI元素的交互,但这既繁琐又容易出现GUI缺失部分的错误.
所以我想知道,这是一个解决的问题吗?是否存在可以提供类似于每个组件细分的代码分析,指标(访问次数,点击次数等)的摘要?自动添加到整个AWT/Swing组件树中的所有组件?
此信息需要汇总到一个文件中,以便可以将其发送给"我们"进行聚合和数据挖掘,以推动决策等.
我真的不知道我到底想要什么,所以我也要求找出好的想法和其他人所面对的这个问题.
可能有一些方法可以打开和关闭代码分析?
或者您可以选择要分析的特定功能吗?
注意:虽然这个问题可能不适合SO的常见编程问题,但是在StackOverflow,ServerFault,SuperUser和Programmer's Exchange中,只有SO有任何问题提到这个软件,这就是我决定在这里发布的原因.
我曾经使用过Anjlab的开源SQL Profiler工具,并发现它非常宝贵.不幸的是,看起来软件已经转换为付费版本,完全删除了对开源版本的所有访问权限.由于这个软件在SO上的问题中被多次提及,我想知道是否有人还有旧的,免费的,开源版本的副本并愿意分享它?
我有兴趣在OS X(Mountain Lion 10.8.2)下分析一些Rcpp代码,但是分析器在运行时崩溃了.
玩具示例,使用inline,只是为了让探查器注意到足够的时间.
library(Rcpp)
library(inline)
src.cpp <- "
RNGScope scope;
int n = as<int>(n_);
double x = 0.0;
for ( int i = 0; i < n; i++ )
x += (unif_rand()-.5);
return wrap(x);"
src.c <- "
int i, n = INTEGER(n_)[0];
double x = 0.0;
GetRNGstate();
for ( i = 0; i < n; i++ )
x += (unif_rand()-.5);
PutRNGstate();
return ScalarReal(x);"
f.cpp <- cxxfunction(signature(n_="integer"), src.cpp, plugin="Rcpp")
f.c <- cfunction(signature(n_="integer"), src.c)
Run Code Online (Sandbox Code Playgroud)
如果我使用GUI Instruments(在Xcode,版本4.5(4523)中)或命令行sample,两者都崩溃:仪器立即崩溃,而样本在崩溃前完成处理样本: …