- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的程序的短期运行结果如下:
67.93 3.24 3.24 grid::rKfour(int, int)
9.43 3.69 0.45 alloc_mmap
5.03 3.93 0.24 30001 0.01 0.01 grid::timeStep()
3.04 4.08 0.15 42007105 0.00 0.00 linkers::linkers(linkers const&)
2.94 4.22 0.14 6360900 0.00 0.00 particle::fulldistance(particle&)
2.73 4.35 0.13 blas_thread_server
...
ldd 的输出是
linux-vdso.so.1 => (0x00007fffe2bea000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007eff34595000)
libboost_filesystem.so.1.46.1 => /usr/lib/libboost_filesystem.so.1.46.1 (0x00007eff34377000)
libboost_system.so.1.46.1 => /usr/lib/libboost_system.so.1.46.1 (0x00007eff34172000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007eff33f16000)
libglut.so.3 => /usr/lib/libglut.so.3 (0x00007eff33cd0000)
libGLU.so.1 => /usr/lib/x86_64-linux-gnu/libGLU.so.1 (0x00007eff33a62000)
libGLEW.so.1.5 => /usr/lib/libGLEW.so.1.5 (0x00007eff3380c000)
libboost_thread.so.1.46.1 => /usr/lib/libboost_thread.so.1.46.1 (0x00007eff335f3000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007eff332eb000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007eff33067000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007eff32e51000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007eff32ab1000)
/lib64/ld-linux-x86-64.so.2 (0x00007eff347c4000)
libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007eff3288d000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007eff32555000)
libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007eff32341000)
libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007eff3213e000)
libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007eff31f38000)
libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007eff31d31000)
libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007eff31b26000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007eff31922000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007eff31705000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007eff314fd000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007eff312f9000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007eff310f3000)
任何人都可以识别“alloc_mmap”吗?
最佳答案
我假设你问这个问题是因为你想看看你可以做些什么来提高程序的速度。
如果没有,请忘记这一点。
在 gprof 输出中,重要的数字是第二列,累计秒数,因为如果该例程可以不花时间,那么您的总时间将减少多少。
gprof 的一个问题是它忽略了像 I/O 这样的阻塞时间。由于你的程序在使用alloc_mmap
(直接或间接)它是将一个文件映射到内存,所以它是在做I/O,这往往是一笔不小的开销。gprof 看不到它。
还有更多problems with gprof .如果你在 linux 上,你可以尝试像 Zoom 这样的分析器.它按挂钟时间采样,因此它不会对 I/O 视而不见。它还按行/指令提供时间使用百分比,而不仅仅是按功能,因此它将查明代码中的行,如果您可以改进/删除它们,将为您提供最大的加速。(通常这些是函数调用。“ self 时间”很少相关,除非是在繁重的数学运算或紧密的 CPU 循环中,而且无论如何都没有关系。Zoom 会发现它。)
我靠的方法is this .
关于c++ - Gprof 结果 : what is "alloc_mmap"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870851/
这个问题在这里已经有了答案: Time Sampling Problems with gprof (1 个回答) 关闭 6 年前。 我有一个简单的排序程序,我正在对它进行分析,以便有一个案例来研究
我正在尝试分析一些 C 代码,但最直观的昂贵函数之一并未显示在 GProf 输出中。 int main() { initialise... haloSwap(); for(..
我正在尝试使用 gprof 来分析我正在开发的一些数字代码,但是 gprof 似乎无法从我的程序中收集数据。这是我的命令行: g++ -Wall -O3 -g -pg -o fftw_test fft
在各种示例程序上使用 Ubuntu 17.04 中的 gprof 2.28 和 gcc 6.3.0 我得到每个类别的空输出。如果我在一个示例程序上运行 gprof -i,我得到: 1 histogra
我知道以前有人问过类似的问题,但是: 关于 gprof produces empty output 我在 Windows 10 上使用来自 MSYS2 的 GCC 10.2.0,即它是 MingW64
我们正在开发一个多线程项目。我的同事说 gprof 可以完美地工作,无需处理多线程程序。我前段时间读过其他内容。 http://sam.zoy.org/writings/programming/gpr
我在我的可执行文件上运行 gprof,但该可执行文件花费了大量时间 wait() ing 以完成子进程。等待时间是否计入 gprof 时间? 最佳答案 我没有经常使用 gprof,但据我所知,wait
这是一个臃肿的问题,所以我提前道歉。我很好奇 gprof 在低技术水平上工作。我知道它是由计时器完成的,但是为什么需要专门编译可执行文件才能对其进行分析?编译是否会导致为统计分配空间? 另外,时间是如
我正在使用 -pg 选项运行我的程序。当我打开输出 gmon.out 它只是累积列表而不是调用图。我该如何解决? 我知道这里之前有人问过这个问题:gprof - File is missing cal
我正在尝试使用 gprof 命令:gprof -s executable.exe gmon.out gmon.sum合并从我的程序的 2 次运行中收集的分析数据。但是出现以下错误: gprof: ou
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我尝试使用 gprof(我必须使用 gprof - 没有其他选项可用)当我得到平面文件时,结果是空的,尽管一切正常。 顺便说一下,代码是用 c 写的,所以我使用的是 gcc。 结果: Each sam
我正在尝试 2 配置一个 cpp 代码。我使用 -pg 标志进行编译,在分析它以获得输出后,我得到了一些非常奇怪的函数名称。这是我正在使用的 make 文件: # Makefile for paral
问题在于 gmon.out 文件没有显示正确的数据。所有时间都为 0,没有任何测量。gmon.out 文件通常生成。我正在使用 C++ 的 eclipse ide,并像往常一样链接、编译和运行程序。
我创建了一个简单的程序: #include void ssleep(unsigned int s) { usleep(1000000*s); } int main(int, char**) {
我正在尝试使用 gprof分析我编写的程序,并收到难以理解的结果。大多数函数名称都以 _abfcd96687bed377dcecdf193c89698 的形式出现。我相信它们来 self 链接的第三方
我对分析函数 grep_source_is_binary()[1] 很感兴趣,它的代码如下: static int grep_source_is_binary(struct grep_source *
我在 GPROF Automating the profling of C program using GPROF 上问了一个问题 看来我已经找到了一半的解决方案(我现在知道如何使用 bash 脚本自
我正在运行 Ubuntu 16.10 并尝试使用 gprof 分析程序。我用标志 -pg 编译,程序是单线程的。实际的编译命令是: g++ -I. -std=c++11 -Wall -Wextra -
我刚开始使用 gprof 并尝试生成一个调用图。我正在使用 cmake 来设置我的 makefile,我正在设置 CMAKE_EXE_LINKER_FLAGS = -gp 以启用分析。我启用的唯一 c
我是一名优秀的程序员,十分优秀!