C++风格与C风格文件读写效率测试-vs2015,vs2017
void test_write()
{
const int TEST_SIZE = ;
const char* c_plus_write_file = "H://c_plus_write_file.txt";
const char* c_write_file = "g://c_write_file.txt"; cout << "Test size :" << TEST_SIZE << endl;
//c++ style writing file
ofstream of(c_plus_write_file);
//assert(of);
time_t start, end;
start = clock();
for (int i = ; i < TEST_SIZE; ++i)
{
char tmp[];
tmp[] = char(i);
of.write(tmp, );
}
end = clock();
of.close();
cout << "C++ style: " << end - start << " ms" << endl;
//c style writing file
FILE* fp;
fopen_s(&fp, c_write_file, "w");
start = clock();
for (int i = ; i < TEST_SIZE; ++i)
{
char tmp[];
tmp[] = char(i);
fwrite(tmp, , , fp);
}
end = clock();
fclose(fp);
cout << "C style: " << end - start << " ms" << endl;
cin.get();
} //机器配置:
//vs2015,vs2017
//intel(R)Core(TM)i7-6700HQ CPU@2.6GHZ 2.59GHZ
//16.0GB内存 64位操作系统
//测试结果:BUF_SIZE越大,C++与C风格时间差越大,数据如下:
//BUF_SIZE= 1000: c++平均90ms c平均80ms
//BUF_SIZE= 100000000: c++平均70ms c平均30ms
//这是读取测试,对于写入操作二者相关则更显著:BUF_SIZE= 100000000: c++平均25秒 c平均20秒
void test_read()
{
const char* read_file = "g://c_write_file.txt";
const int BUF_SIZE = ;
//char buf[BUF_SIZE];
char* buf = new char[BUF_SIZE];
time_t start, end; //c style writing file
FILE* fp = fopen(read_file, "rb");
assert(fp);
start = clock();
int len = ;
do
{
len = fread(buf, , BUF_SIZE, fp);
//cout<<len<<endl;
} while (len != );
end = clock();
fclose(fp);
cout << "C style: " << end - start << " ms" << endl; //c++ style writing file
ifstream ifs(read_file, ios::binary);
assert(ifs);
start = clock();
while (!ifs.eof())
{
ifs.read(buf, BUF_SIZE);
}
end = clock();
ifs.close();
cout << "C++ style: " << end - start << " ms" << endl; delete[] buf;
cin.get();
}
C++风格与C风格文件读写效率测试-vs2015,vs2017的更多相关文章
- C&python文件读写效率
不同缓冲区读写文件的效率比较 环境:CentOS6.3/ext3/ 读取文件大小:100000000B BUFSIZE TIMECOST 1 real 0m38.909s user 0m5.960s ...
- Linux 目录操作和4中文件拷贝效率测试
/*1.用户输入任意目录名称,显示该目录下的文件列表信息,包括文件类型,文件权限,文件大小,文件名称2.拷贝用户输入的文件到当前目录下3.第二点功能,使用4种方式完成,并比较说明效率*/ /* str ...
- 如何在vscode中用standard style 风格去验证 vue文件
1 JavaScript Standard Style简介 本工具通过以下三种方式为你(及你的团队)节省大量时间: 无须配置. 史上最便捷的统一代码风格的方式,轻松拥有. 自动代码格式化. 只需运行 ...
- 实现动态的XML文件读写操作
实现动态的XML文件读写操作(依然带干货) 前言 最近由于项目需求,需要读写操作XML文件,并且存储的XML文件格式会随着导入的数据不同而随时改变(当然导入的数据还是有一定约束的),这样我们要预先定义 ...
- 实现动态的XML文件读写操作(依然带干货)
前言 最近由于项目需求,需要读写操作XML文件,并且存储的XML文件格式会随着导入的数据不同而随时改变(当然导入的数据还是有一定约束的),这样我们要预先定义好XML文件的格式就不太现实了,如何实现不管 ...
- 使用FileSystem类进行文件读写及查看文件信息
使用FileSystem类进行文件读写及查看文件信息 在这一节我们要深入了解Hadoop的FileSystem类——这是与与hadoop的文件系统交互的重要接口.虽然我们只是着重于HDFS的实现, ...
- QT_8_Qt中的事件处理_定时器事件_定时器类_事件分发器_事件过滤器_绘图事件_高级绘图事件_绘图设备_QFile 文件读写_QFileInfo文件信息
Qt中的事件处理 1.1. 捕获QLabel中是鼠标事件 1.2. enterevent 鼠标进入 1.3. leaveevent 鼠标离开 1.4. 鼠标按下MyLabel::mousePressE ...
- 大数据学习day25------spark08-----1. 读取数据库的形式创建DataFrame 2. Parquet格式的数据源 3. Orc格式的数据源 4.spark_sql整合hive 5.在IDEA中编写spark程序(用来操作hive) 6. SQL风格和DSL风格以及RDD的形式计算连续登陆三天的用户
1. 读取数据库的形式创建DataFrame DataFrameFromJDBC object DataFrameFromJDBC { def main(args: Array[String]): U ...
- (转)linux文件读写的流程
转自http://hi.baidu.com/_kouu/item/4e9db87580328244ef1e53d0 在<linux内核虚拟文件系统浅析>这篇文章中,我们看到文件是如何被打开 ...
随机推荐
- 软工作业-wc(Python实现)
GitHub地址:GitHub PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 40 · Esti ...
- 原创:Angular + controllerAs + CoffeeScript的一个问题,及其解决方案
config是一个待注入的value,它的值是{count: 1} 看代码(用普通函数的写法): $routeProvider.when '/test', template: "Hello ...
- DRF 返回数据的封装,和分页
DRF 返回数据的封装,和分页 1 返回值的 封装 自定义一个类,初始化基本的返回数据信息 class BaseResponse(object): """ 初始化基本的返 ...
- jquery自定义插件实现分页效果
这节介绍如何自定义jquery插件,实现分页效果,话不多说,先看看实现的效果: 分页插件 实现的代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTM ...
- get传输时,会将加号+ 转换为空格
解决办法: 前端: 替换加号为 ‘%2B’, 后端: 直接接收即可.
- Unity3d command line arguments
Options Many of these relate to Unity3d command line arguments Batch Mode - should be left enabled u ...
- Photon Cloud Networking: OnPhotonSerializeView Not Firing
Photon Cloud Networking: OnPhotonSerializeView Not Firing http://answers.unity3d.com/questions/31305 ...
- PHPExcel导出导入
便于记忆 这里写一个PHPexcel导出的demo 我们构造一个数据 $letter = array('A','B','D','E'); //sheet索引 $date = array( ar ...
- [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBuild+GitHub)
本系列文章包含: [独孤九剑]持续集成实践(一)- 引子 [独孤九剑]持续集成实践(二)– MSBuild语法入门 [独孤九剑]持续集成实践(三)- Jenkins安装与配置(Jenkins+MSBu ...
- js对象原型链
JavaScript 规定,每一个构造函数都有一个 prototype 属性,指向另一个对象.这个对象的所有属性和方法,都会被构造函数的所拥有. 这也就意味着,我们可以把所有对象实例需要共享的属性和方 ...