我正在尝试一种更有效的方式在Linux中读取文件内容而不使用“cat”命令,特别是对于较大的文件内容,因为在这种情况下cat
只会在服务器上启动内存和CPU
我想到的一件事是使用grep -v "character-set-which-is-unlikely-in-the-file" filename
但每次使用不同的字符集并希望它不会出现在文件中,效率不高。
还有其他想法吗?
答案 0 :(得分:1)
如果你只想阅读文件,那么它会被缓存,最简单的方法可能就是这样:
cat filename > /dev/null
请注意,您无需在屏幕上显示数据即可从磁盘读取数据。该命令读取文件,并通过将其转储到/ dev / null中来忽略内容,但它仍然会读取所有数据。
如果CPU负载上升,那可能是好的事情,这意味着计算机正在努力工作,并且将尽快完成。但是,如果崩溃,则还有其他问题。
如果您有某些特定原因不使用“cat”命令,则可以尝试使用“dd”,但写入更复杂并且速度更快:
dd if=filename of=/dev/null bs=1M
附录:
这激励我进行一些测试。在我的特定计算机上,“cat”和“dd”在机器磁盘尚未缓存时读取大型文件需要24.27-24.31秒,缓存时为0.39-0.40秒。 (每种情况的三次测试,变化很小。)
这两个程序都包含编写数据的代码,即使它被转储到/ dev / null,因此人们可以预期专门写入的程序会稍微快一点,但是当我尝试时,我得到了相同的时间这一点。