小编Kej*_*ori的帖子

kernel.kallsyms 在 C++ 应用程序运行中的作用

我使用以下开关编译了我的 C++ 代码:

g++ -O0 -g -rdynamic -DNDEBUG -DARMA_NO_DEBUG -std=c++11 -pthread
Run Code Online (Sandbox Code Playgroud)

链接器开关是:

-lboost_system -lboost_thread -lboost_chrono -larmadillo -pthread
Run Code Online (Sandbox Code Playgroud)

但是我在我的应用程序中没有使用线程。我也避免使用任何delay函数。

然后我运行代码并使用perf工具对其进行测试。

sudo perf record ./bin/my_application
sudo perf report -f
Run Code Online (Sandbox Code Playgroud)

结果对我来说很奇怪:

Overhead  Command          Shared Object     Symbol
 50.92%  myApplication  [kernel.kallsyms]  [k] native_sched_clock
 24.73%  myApplication  [kernel.kallsyms]  [k] pick_next_entity
 17.46%  myApplication  [kernel.kallsyms]  [k] prepend_name
  2.57%  myApplication  myApplication      [.] arma::arrayops::copy_small<double>
  1.11%  myApplication  myApplication      [.] arma::Mat<double>::Mat
  1.11%  myApplication  myApplication      [.] myClass::myMethod
  1.11%  myApplication  libblas.so.3       [.] dgemv_
  0.97%  myApplication  myApplication      [.] arma::Mat<double>::init_cold
Run Code Online (Sandbox Code Playgroud)

为什么 kernel.kallsyms函数主宰了执行时间? …

c++ performance-testing linux-kernel perf

5
推荐指数
1
解决办法
2964
查看次数

标签 统计

c++ ×1

linux-kernel ×1

perf ×1

performance-testing ×1