码迷,mamicode.com
首页 > 其他好文 > 详细

关于cout的一个小测试

时间:2015-03-31 10:58:04      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:printf   cout   输出效率测试   

以前知道使用cout<<endl换行会刷新缓冲区,但是从来也没在意过这个问题,早上起来翻书看到关于这方面的东西就来做了个测试,不做不知道,一测下一跳啊- -!

测试代码:

/**

吉林大学
Jilin U

Author:     sinianluoye (JLU_LiChuang)
Date:        2015-3
Usage:

**/

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>

#define ll long long
#define eps 1e-8
#define ms(x,y) (memset(x,y,sizeof(x)))
#define fr(i,x,y) for(int i=x;i<=y;i++)
#define sqr(x) ((x)*(x))

#include <ctime>
using namespace std;

const int maxn=1e7+10;
int main()
{
    for(int cas=0;cas<10;cas++)
    {
        int a=clock();
        freopen("in","w",stdout);
        for(int i=0;i<maxn;i++)
            cout<<"\n";
        int b=clock();
        freopen("CON","w",stdout);
        printf("used \"\\n\" Case %d: %d ms\n",cas+1,b-a);
    }
    cout<<endl;
    for(int cas=0;cas<10;cas++)
    {
        int a=clock();
        freopen("in","w",stdout);
        for(int i=0;i<maxn;i++)
            cout<<endl;
        int b=clock();
        freopen("CON","w",stdout);
        printf("used \"endl\" Case %d: %d ms\n",cas+1,b-a);
    }
}

/*************copyright by sinianluoye (JLU_LiChuang)***********/
不多说了,直接上测试结果,说实话,真的蛮惊讶的:、

技术分享


可以清晰的看到,以换行为目的使用endl的话,效率比单纯的’\n‘要慢了17倍左右,看来以后写代码要注意这个问题了~


顺便测试了一下printf和puts,putchar的效率~

技术分享
看来printf还是蛮快的,用puts换行的习惯也得改改了~

关于cout的一个小测试

标签:printf   cout   输出效率测试   

原文地址:http://blog.csdn.net/sinianluoye/article/details/44773923

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!