首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有没有人测试过endl的效率比'\n'低几多么

2013-08-16 
有没有人测试过endl的效率比'\n'低多少么?编译器会把endl优化成\n么?感觉应该不行吧?[解决办

有没有人测试过endl的效率比'\n'低多少么?
编译器会把endl优化成'\n'么?感觉应该不行吧?
[解决办法]

确实低很多。。。。
[解决办法]
endl操作远比'\n'要多。
[解决办法]
想想  c++ 相对来说是兼容c的 ,但是c却不能兼容c++

就知道了endl 要处理的事情 比'\n'多多了
[解决办法]
std::endl会flush
vc++ 2012



_CRTIMP2_PURE inline basic_ostream<char, char_traits<char> >&
__CLRCALL_OR_CDECL endl(basic_ostream<char, char_traits<char> >& _Ostr)
{// insert newline and flush byte stream
_Ostr.put('\n');
_Ostr.flush();
return (_Ostr);
}

[解决办法]
引用:
std::endl会flush
vc++ 2012


_CRTIMP2_PURE inline basic_ostream<char, char_traits<char> >&
__CLRCALL_OR_CDECL endl(basic_ostream<char, char_traits<char> >& _Ostr)
{// insert newline and flush byte stream
_Ostr.put('\n');
_Ostr.flush();
return (_Ostr);
}


+1
[解决办法]
endl会刷新IO缓冲区,需要进行系统调用。\n只是在IO缓冲区放入一个字符。endl的速度会比\n慢很多。
[解决办法]
干嘛要比较这两个的效率,两个做的事情都不一样,虽然结果看起来一样
[解决办法]
确实使用endl比使用"\n"复杂多了。。可以看下源码
[解决办法]
endl相当于 '\n' + fflush。
endl是用户空间和内核空间的交互,频繁的话,会显著降低效率

热点排行