c++ - 帮助解释探查器结果 [STL]

标签 c++ stl profiling g++ cygwin

我正在分析一个最近以文件读取为主的程序。我对如何解释结果感到困惑。如果有人能向我解释这四个最重要的功能是什么,那将对我有很大帮助。提前致谢!

  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ms/call  ms/call  name    
 25.00      0.95     0.95                             _Unwind_SjLj_Register
 15.79      1.55     0.60                             std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::_M_extract_float(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, std::string&) const
 10.26      1.94     0.39                             std::string::_M_mutate(unsigned int, unsigned int, unsigned int)
 10.00      2.32     0.38                             _Unwind_SjLj_Unregister

最佳答案

第一个和最后一个用于异常处理;它们由编译器生成,用于注册对象,如果异常离开当前范围,则必须调用其析构函数。如果您可以重构代码以避免在具有非平凡析构函数的对象的生命周期内抛出异常或调用可能抛出的函数,则您可能能够避免调用这些函数。不过,这通常是不可能的。

第二个是用于解析输入流中的 float 值的内部函数。

第三个是调整字符串大小的内部函数,可能是在解析流时内部使用的。

关于c++ - 帮助解释探查器结果 [STL],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3452019/

相关文章:

c++ - boost program_options 是否支持关闭开关(例如 --no-myswitch 或 -s=no)

c++ - 使用用户定义的类和 int 创建 vector 在 ‘struct std::_Vector_base....no type named ‘value_type’ 中的 ‘class MyClass’ 的实例化

c++ - 使用 auto 声明变量和使用类型名称有什么区别?

c++ - 我可以在 C++ 中有一个 ifstream 数组吗

c++ - std::map 中值的内存分配

xcodebuild 给出 “profiling: invalid magic number” ,不生成覆盖文件

linux - 分析 Linux 内核模块

python - hotshot可以在多线程中使用吗?

c++ - C++ 编译器能否尝试不同的(模板 T)实现,直到找到一个可以编译(针对 T)的实现?

C++ vector 见解