使用C++比C慢吗?
aazhi 2002-04-12 06:23:03 我把<string.h>里面的函数全换成了string类的成员函数,把FILE *全换成了fstream类,发现程序运行慢了很多,我不知道是否是换成C++造成的。使用gprof,结果(部分):
granularity: each sample hit covers 8 byte(s) for 0.00% of 29.20 seconds
called/total parents
index %time self descendents called+self name index
called/total children
<spontaneous>
[1] 10.7 3.14 0.00 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, unsigned long, char) [1]
-----------------------------------------------
<spontaneous>
[2] 6.7 1.97 0.00 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_RWpref(void) const [2]
-----------------------------------------------
<spontaneous>
[3] 6.5 1.91 0.00 _RWrwstd::_RWrw_basis<char*, std::allocator<char> >::operator =(const char*&) [3]
-----------------------------------------------
<spontaneous>
[4] 5.9 1.71 0.00 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_RWgetRep(unsigned long, unsigned long) [4]
-----------------------------------------------
<spontaneous>
[5] 5.6 1.65 0.00 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_RWunLink(void) [5]
-----------------------------------------------
<spontaneous>
[6] 3.9 1.15 0.00 std::operator >>(istream&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) [6]
-----------------------------------------------
<spontaneous>
[7] 3.7 1.07 0.00 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::length(void) const [7]
-----------------------------------------------
<spontaneous>
[8] 3.0 0.87 0.00 std::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(int, char) [8]
-----------------------------------------------
<spontaneous>
[9] 2.9 0.84 0.00 bcd2str(const unsigned char*, char*, int, int, int, int) [9]
-----------------------------------------------
<spontaneous>
[10] 2.5 0.73 0.00 _RWrwstd::_RWstring_ref<char, std::char_traits<char>, std::allocator<char> >::_RWremoveReference(void) [10]
运行环境为Compaq Digital ES40,好像SUN和HP也差不多,请教各位大虾,C++比C慢吗?