关于c++IO的效率
来源:互联网 发布:淘宝直播id号怎么找人 编辑:程序博客网 时间:2024/05/16 12:54
自己写了一段测试程序,比较c++ IO读和c语言的IO读的效率:
long tickcount = GetTickCount();//取得系统启动后的时间(miliseconds)
int k = 0;
cout << "For c API " << endl;
for (int i = 0; i < 10000; ++i)
{
FILE* f = fopen("c://temp//test.txt", "rb");
if (NULL != f)
{
if (fseek(f, 0, SEEK_END) == 0)
{
int length = ftell(f);
fseek(f, 0, SEEK_SET);
char* p = (char*)malloc(length*sizeof(char) + 1);
if (p != NULL)
{
fread((void*)p, length, 1, f );
p[length] = '/0';
//cout << p << endl;
}
free(p);
}
fclose(f);
k++;
}
}
long newtickcount = GetTickCount();
cout << "Repeated times: " << k << endl;
cout << "time costed" << newtickcount - tickcount << endl;
tickcount = GetTickCount();
cout << "for c++ API" << endl ;
int j = 0;
for (int i = 0; i < 10000; ++i)
{
ifstream f;
f.open("c://temp//test.txt", ios_base::in | ios_base::binary | ios_base::ate);
if (f.good())
{
int size = f.tellg();
char* p = (char*)malloc(size*sizeof(char) + 1);
f.seekg(ios_base::beg);
if (p != NULL)
{
f.read(p, size);
p[size] = '/0';
free(p);
}
f.close();
j++;
}
}
newtickcount = GetTickCount();
cout << "Reoeated times " << j << endl;
cout << "Time costed" << newtickcount - tickcount << endl;
结果显示两者效率相当。可见c++的效率还是很高的。
- 关于c++IO的效率
- 关于多线程io能否提高程序效率
- 嵌入式C++——关于C++的效率分析
- 嵌入式C++——关于C++的效率分析(顶嵌开源)
- 嵌入式C++——关于C++的效率分析
- 关于C 和 python读取文件的效率比较
- 关于大数循环效率优化的方法(C#)
- 关于提高C语言执行效率的几点
- 关于java的io读写,缓冲区是如何提高读写效率的???
- 关于java的io读写,缓冲区是如何提高读写效率的?
- 关于绘图的效率
- 关于iostreams的效率
- 关于效率的随想
- c的效率
- IO是程序效率的瓶颈
- BufferedInputStream与FileInputStream的IO效率对比
- 标准C函数中关于文件IO的函数详解
- 串行IO与并行IO的效率比较
- 多线程中生成随机数序列重复问题的解决方法
- [DB2] 常用命令4(待续)
- (size_t)-1代表了什么
- as3效率优化
- 刚找到个学习java的网站
- 关于c++IO的效率
- 克隆表达式
- vim命令
- .net 工程编译(compile)时出错(The operation could not be completed.)
- linux文件类型
- ASP.NET小技巧-使用样式
- 各种程序语言
- Mac OS X:雪豹防恶意软件的措施
- modelsim do文件