我的任务很简单:在 Linux 上用 C++ 读取和解析一个大文件。有两种方法:
逐字节解析。
while(/*...*/) { ... = fgetc(...); /* do something with the char */ }
逐个缓冲区解析缓冲区。
while(/*...*/) { char buffer[SOME_LARGE_NUMBER]; fread(buffer, SOME_LARGE_NUMBER, 1, ...); /* parse the buffer */ }
现在,逐字节解析对我来说更容易(不检查缓冲区有多满等)。但是,我听说阅读大篇幅更有效率。
哲学是什么?“最佳”缓冲内核的任务,所以当我调用它时它已经被缓冲了fgetc()
?还是建议我处理它以获得最佳效率?
此外,除了所有的哲学:这里的 Linux 的现实是什么?