C语言中读取大缓冲区的高效技术
我正在用C语言编程。有时,我们必须从通常使用fread或read系统调用的文件中读取大数据,这意味着流I/O或系统调用I/O 我想问,如果我们正在读取如此大的数据,然后计算块大小并根据它进行读取,它会以任何方式帮助我们高效地读取数据吗 我知道通过系统调用读取数据会使速度变慢,还有其他一些情况,比如如果我们必须处理网络套接字,那么我们应该使用它们,而不是使用基于流的I/O,这将给我们带来优化的结果。像wise一样,我需要一些技巧和技巧来读取文件中的大数据以及需要处理的事情 此外,如果mmap比这些常规I/O更为有利,请详细说明它将在什么情况下发挥作用C语言中读取大缓冲区的高效技术,c,linux,file-io,C,Linux,File Io,我正在用C语言编程。有时,我们必须从通常使用fread或read系统调用的文件中读取大数据,这意味着流I/O或系统调用I/O 我想问,如果我们正在读取如此大的数据,然后计算块大小并根据它进行读取,它会以任何方式帮助我们高效地读取数据吗 我知道通过系统调用读取数据会使速度变慢,还有其他一些情况,比如如果我们必须处理网络套接字,那么我们应该使用它们,而不是使用基于流的I/O,这将给我们带来优化的结果。像wise一样,我需要一些技巧和技巧来读取文件中的大数据以及需要处理的事情 此外,如果mmap比这些
平台:Linux,gcc编译器我认为分块阅读总是一个好主意。对于大型文件,我们显然不希望在堆中分配大量内存。
如果文件的大小为几MB,那么我认为我们可以在一个字符缓冲区中一次性读取整个文件,并使用该缓冲区处理数据。这比一次又一次地从文件中读取要快。我认为分块读取总是一个好主意。对于大型文件,我们显然不希望在堆中分配大量内存。 如果文件的大小为几MB,那么我认为我们可以在一个字符缓冲区中一次性读取整个文件,并使用该缓冲区处理数据。这比一次又一次地从文件中读取要快。您考虑过使用mmap的文件吗?您考虑过使用mmap的文件吗?您有没有咨询过,和?您有没有咨询过,和?