什么是_Unwind_SjLj_Unregister和_Unwind_SjLj_Register? [英] What are _Unwind_SjLj_Unregister and _Unwind_SjLj_Register?
问题描述
什么是_Unwind_SjLj_Unregister和_Unwind_SjLj_Register?我得到他们作为我的最佳处理器时间用户在我的gprof报告。 google只返回指向那些抱怨这两个错误的人的链接。
是我的报告中唯一有时间为!= 0的部分:
平面轮廓:
每个样本计数为0.01秒。
%累积自我总计
时间秒秒调用ms /调用ms /调用名
33.33 0.03 0.03 _Unwind_SjLj_Unregister
22.22 0.05 0.02 _Unwind_SjLj_Register
11.11 0.06 0.01 13886 0.00 0.00 toint(std :: string,int)
11.11 0.07 0.01 4380 0.00 0.00 hexlify(std :: string)
11.11 0.08 0.01 2994 0.00 0.00 std :: _ Deque_iterator< unsigned char,unsigned char const& char const *> :: operator +(int)const
11.11 0.09 0.01 std :: string :: assign(char const *,unsigned int)
运行windows 7 x64,并用代码块编译10.05 gcc
编辑 / p>
启用强制程序运行64秒的函数后,它现在看起来像:
code>平面轮廓:
每个样本计数为0.01秒。
%累计自我总计
时间秒秒调用s /调用s /调用名
8.45 3.49 3.49 _Unwind_SjLj_Register
7.36 6.53 3.04 4000006 0.00 0.00 CAST128 :: setkey(std :: string)
5.86 8.95 2.42 _Unwind_SjLj_Unregister
4.36 10.75 1.80 64000080 0.00 0.00 CAST128 :: F(int& unsigned int& unsigned int& unsigned char&)
3.68 12.27 1.52 __dynamic_cast
3.37 13.66 1.39 std :: string :: _ Rep :: _ S_create(unsigned int,unsigned int,std :: allocator< char> const&)
3.25 15.00 1.34 std :: basic_string< char,std :: char_traits< ; char>,std :: allocator< char> > ::〜basic_string()
2.88 16.19 1.19 std :: istreambuf_iterator< char,std :: char_traits< char> > std :: num_get< char,std :: istreambuf_iterator< char,std :: char_traits< char> > > :: _ M_extract_int< unsigned long long>(std :: istreambuf_iterator< char,std :: char_traits< char>>,std :: istreambuf_iterator< char,std :: char_traits< char>>,std :: ios_base& ,std :: _ Ios_Iostate& unsigned long long&)const
p>我相信这是异常处理。当人们尝试链接到在不同编译器中构建的C ++库时,问题大多出现。
What are _Unwind_SjLj_Unregister and _Unwind_SjLj_Register? I get them as my top processor time users in my gprof report. google only returns links to people complaining about errors with these two.
heres the only part of my report that has times != 0:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls ms/call ms/call name
33.33 0.03 0.03 _Unwind_SjLj_Unregister
22.22 0.05 0.02 _Unwind_SjLj_Register
11.11 0.06 0.01 13886 0.00 0.00 toint(std::string, int)
11.11 0.07 0.01 4380 0.00 0.00 hexlify(std::string)
11.11 0.08 0.01 2994 0.00 0.00 std::_Deque_iterator<unsigned char, unsigned char const&, unsigned char const*>::operator+(int) const
11.11 0.09 0.01 std::string::assign(char const*, unsigned int)
im running windows 7 x64, and compiling with codeblocks 10.05 gcc
edit:
after enabling functions that force the program to run 64 seconds, it now looks like:
Flat profile:
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
8.45 3.49 3.49 _Unwind_SjLj_Register
7.36 6.53 3.04 4000006 0.00 0.00 CAST128::setkey(std::string)
5.86 8.95 2.42 _Unwind_SjLj_Unregister
4.36 10.75 1.80 64000080 0.00 0.00 CAST128::F(int&, unsigned int&, unsigned int&, unsigned char&)
3.68 12.27 1.52 __dynamic_cast
3.37 13.66 1.39 std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&)
3.25 15.00 1.34 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()
2.88 16.19 1.19 std::istreambuf_iterator<char, std::char_traits<char> > std::num_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::_M_extract_int<unsigned long long>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, unsigned long long&) const
I believe it is exception handling. The problems mostly come up when people try to link to a C++ library built in a different compiler.
这篇关于什么是_Unwind_SjLj_Unregister和_Unwind_SjLj_Register?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!