fstream中多个get()和单个getline()之间的理论性能差异
Theoretical perfomance difference between multiple get() and single getline() in fstream
假设我正在读取一个文件。
ifstream f("file.txt");
while (f.good())
{
char c = is.get();
}
与
ifstream f("file.txt");
string line;
while(f.good())
{
getline(f, line);
}
如果文件句柄在整个文件读取过程中都处于打开状态,理论上会有什么不同吗?
取决于。
如果您的流没有被缓存,那么这两个版本之间可能会有明显的差异。如果出于某种原因,您不打开文件,而是打开速度极快的内存流,那么对get
的多次调用可能会较慢。当然,这也取决于getline
是如何实现的。
因此存在理论上的差异。当然,要查看是否存在实际差异,您应该尝试一下。很可能你没有注意到任何区别。
相关文章:
- 组合理论的一个问题
- 如何将理论效率与实践实例进行比较
- 什么形式上保证了非原子变量不能看到凭空出现的值,并像理论上原子一样创造数据竞赛?
- 使用求和预测算法的理论平均案例效率和增长顺序
- 如何使用 Z3 C++ API 来证明基于输入参数的理论
- const 是否允许在这里进行(理论)优化?
- 测得的 fps 高于理论 fps
- 大整数增加,我知道理论..在实践中仍然生锈
- 理论和实际的矩阵乘法FLOP
- 内存使用的理论和问题
- 缓存优化理论
- 在Z3中构建自定义理论
- 自然数(递归)的设定理论定义
- (【理论】)编译器和不同的传递类型
- 控制理论在C++年实施
- 直接索引访问与"high"内存使用量相比的理论影响是什么? "shifted"使用"low"内存使用情况的索引访问?
- 函数乘法的理论分析
- 使用 z3 直接访问理论决策程序
- C++堆叠流行一般理论
- C++类实例化理论