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内核虚拟文件系统浅析>这篇文章中,我们看到文件是如何被打开 ...
随机推荐
- C / C ++中的数组讲解
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...
- css3: scrollLeft,scrollWidth,clientWidth,offsetWidth 的区别
(需要提一下:CSS中的margin属性,与clientWidth.offsetWidth.clientHeight.offsetHeight均无关) offsetwidth:是元素相对父元素的偏移宽 ...
- VS 2010 转到COFF期间失败。
可能的原因是framework 版本不匹配,我卸载4.5,装4.0后就解决了
- 前端之jQuery02
文档操作 重点:创建标签,jQuery里面没有这个方法 内部(子标签) 添加到指定元素内部后面 $(A).append(B): // B作为A的最后一个儿子元素:(把B追加到A) $(A).appen ...
- PHP 去掉文文文件中的回车与空格
文本文件fff.txt中去除回车与空格: $aa = file_get_contents('./fff.txt'); $bb = str_replace(array("\r\n", ...
- 调试SPRING MVC(或者整合SSH)的时候遇到了org/objectweb/asm/Type
调试SPRING MVC(或者整合SSH)的时候遇到了org/objectweb/asm/Type 解决方法1: 原因是Spring中的cglib-nodep-2.x.x.jar与Hibernate中 ...
- WCF+上传+大文件处理
大文件处理的方式拆分读取,此文只为记录文件处理方式,供日后查阅. 源码来自http://blog.csdn.net/lywust/article/details/7009248 经过改编将源码改编为文 ...
- python manage.py makemigrations生成数据变化的问题
今天遇到的生成数据库的问题django生成数据库的话,使用的是两条命令,一个是python manage.py makemigrations,以及python manage.py migrate在设计 ...
- PADS Logic 脚本的 Fields 一个对象记录
PADS Logic 脚本的 Fields 一个对象记录 PADS Laogic 有一个非常棒的脚本功能,可以导出所以元件. 我目前是把脚本绑定到 Ctrl+S 上,在保存时自动导出 txt 文件,方 ...
- Linux LED字符设备驱动
// 申请IO资源 int gpio_request(unsigned gpio, const char *label); // 释放IO资源 void gpio_free(unsigned gpio ...