通过 USB 传输数据并将其写入内存以供进一步处理时,哪一种实现更有效(= 最快):

  • 从 USB 读取少量数据并多次重复写入内存。
  • 从 USB 读取大量数据并将其写入内存。
  • 最佳答案



    您应该记住,拥有内存引用总是最快的。绝对没有竞争,但是,在内存方面,始终在内存中保存大量数据可能并不总是理想的。

    在您的两个问题中,第二个选项不仅是快速访问的最佳选择,而且是清洁度的最佳选择。它将显着减少获取数据的 I/O 流数量。

    打开和关闭太多次的问题(如果您选择第一个选项,这将是一个问题)会导致磁盘阻塞,直到可以刷新所有数据(每次关闭时)。这不仅会损害磁盘缓存机制,而且 IO 会一直阻塞,直到它可以一遍又一遍地完成。这可能会导致更长的时间。

    除非您绝对必须使用 1,否则 2 通常是更好的选择。然而,与往常一样,最好的检查方法是进行基准测试。对你有用的东西可能对其他人不起作用。

    这个 stackoverflow 讨论可能会让你感兴趣,它没有明确地关于 C(而是它的 C++),但是基本的想法是一样的:Many small files or one big file? (Or, Overhead of opening and closing file handles) (C++)

    关于c - 哪种 USB 读取模式更有效 : Multiple reads or one big read?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55916108/

    10-11 22:46
    查看更多