你会推荐什么最好的工具来分析C/C++代码,并确定哪些部分占用的时间最长。目前,我只是依赖于日志,但信息当然是不准确的,因为引入了不必要的延迟。
优选地,该工具还能够检测/建议可以优化的区域,如果存在这样的工具的话。
平台: Linux
应用程序应该在嵌入式环境中使用,因此它应该是轻量级的和外部的(而不是某个IDE上的插件)。
我使用Visual Studio C++ 2010来阅读、理解和修改源代码。我发现如果一个人在应用程序“编译并运行”之后有一个日志文件,这将非常有帮助。日志文件必须记录以下内容:哪个函数被执行(按顺序)," if“语句是真还是假(如果它能列出所有组件的真或假就更好了)。在Visual Studio或插件中有这样的函数来做这样的事情吗?
当我跑的时候
[bin]$ perf mem record
I get
failed: event 'cpu/mem-stores/P' not supported
bin]$ uname -a
Linux 3.10.0-693.21.1.el7.x86_64 #1 SMP Wed Mar 7 19:03:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
bin]$ perf --version
perf version 3.10.0-693.21.1.el7.x86_64.debug
有没有办法让我找出为什么会出现这个错误?它是否受到p
我知道"perf“工具需要与特定linux内核版本相对应的安装。我知道所有的docker映像都运行在相同的linux内核版本中,而不管linux发行版。
我在坞内使用ubuntu16.04,并且已经安装了linux工具-常见的,start perf告诉我,我仍然缺少一些软件包:‘
# perf
/usr/bin/perf: line 32: lsb_release: command not found
WARNING: perf not found for kernel 4.9.12
You may need to install the following packages f
我已经为我的一个应用程序启用了GC日志记录。这是日志的一部分。我到处搜索,想了解如何阅读这篇文章,但它似乎与用Java7或更早版本写的旧文章有点不同。我特别感兴趣的是用h **标记的值。为什么在日志中打印的每一行GC参数的值接近但不同
Java HotSpot(TM) 64-Bit Server VM (25.5-b02) for linux-amd64 JRE (1.8.0_05-b13), built on Mar 18 2014 00:29:27 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
Memory:
我有一个tomcat服务器7.0.54运行在SUSELinux11 SP3上。它偶尔会崩溃。
我检查了catalina.out,找到了日志“INFO: like service Catalina”,看起来像tomcat收到了异常的关机信号。在此停止日志之前没有错误日志。这太奇怪了。
它看起来不像jvm崩溃,因为它有一个进程:暂停、->、停止、->销毁。但是它似乎没有通过关闭端口被shutdown.sh正常关闭。因为它应该有一个重要的日志“org.apache.catalina.core.StandardServer等待”,如果它被关闭端口关闭了。
这可能有两个原因:
Syste
我需要一个静态分析工具的Linux设备驱动程序,我写的ARM为基础的董事会。我正在考虑以下几个工具:
是一种计算机软件工具,已经在Linux上使用,旨在查找Linux内核中可能存在的编码错误。
有两个活动项目,旨在提高可加载内核模块的质量。
- `Linux Driver Verification` (LDV) - a comprehensive toolset for static source code verification of Linux device drivers.
- `KEDR Framework` - an extensible framework for
我分析应用程序的标准Linux方法是:
1) compile with g++ -pg
2) run prog
3) gprof
显然,gprof是MacOSX 10.5上的broek,而我应该使用Shark。我发现的所有aby Shark教程都涉及XCode (而我的构建是使用Makefiels和g++完成的)。
有人可以在用g++构建的应用程序上发布使用shark的逐步说明吗?可以这样说:
int main() { while(1); }
g++ blah.cpp -o blah; do I need to give it more command line arguments?
ho