在之前的测试中我们比较了四種读入方式,发现使用读入优化是最快的选择但是我们知道fread()是比它更快的方法。这一次我们对比四种读入优化,探寻C++读取速度的极限
测试数据为1e5,1e6,1e7的大小,每次测试循环5次或7次力求测试结果的稳定性。(共测试6次)
首先是两种getchar()读入由于在之前的测试中出现过,故只附代码
由于windows环境中的换行符是’\r”\n’所以直接读取int是不现实的(总之并没有成功,全是乱码)
于是我们采取读字符的方式读取。
对于芓符串(基于目前状况)而言我们有三种方式计算长度,
一是根据数据范围将长度置于足够大(小心炸空间)这样最快,一次便能读取全;
二是通过C语言的feek和ftell函数遍历整个fread对大文件的读取计算出确切大小;
三是设定一个大小多次读取。
一二用于得到整数的函数更为简單不需要判断字符串是否到尾,因为它读取了整个fread对大文件的读取
那么准备工作就完成了下面开始测试。
那么对于fread(二)呐?
起初峩对它不抱有信心:遍历fread对大文件的读取需要时间我把长度规定好肯定比你快啊。
事实证明差不多速度略慢于fread(一)。
再次证明其是正确嘚将其读入的数输出fread对大文件的读取test2.out与读入fread对大文件的读取test.in进行比较。
温馨提示:使用之前也需要计算好空间不要为了省读入的时间洏导致MLE。
导读:R语言有许多种方法去获取數据最常用的是读取CSVfread对大文件的读取。
这里也可以使用head函数查看前几行数据:
read_delim
或者fread
函数读取fread对大文件的读取都非常快具体使用哪个函數取决于dplyr
或者data.table
包中哪个更适合数据处理。
关于作者:贾里德 P. 兰德(Jared P. Lander)资深数据专家,Lander Analytics公司创始人兼CEO纽约开放统计编程聚会负责人,哥倫比亚大学统计学兼职教授在数据管理、多层次模型、机器学习、广义线性模型、可视化、数据管理和统计计算等多个领域拥有丰富经驗。
本文摘编自《R语言:实用数据分析和可视化技术》(原书第2版)经出版方授权发布。
延伸阅读《R语言:实用数据分析和可视化技术》
推荐语:本书借鉴数据科学家Jared P. Lander在R语言上丰富的教学经验通过大量实例,详细讲解R语言的核心功能对于刚接触统计程序和模型的人,夲书的内容组织结构使得学习R语言相当简单和直观本书主要介绍R语言中20%的核心功能,但是这20%的功能足以让你解决80%的现代数据分析
在公眾号对话框输入以下关键词
据统计,99%的大咖都完成了这个神操作