你能多快打开 1000 个文件? – Daniel Lemire 的博客

主要观点:Bun JavaScript 引擎的主要作者 Jarred Sumner 称 macOS 上打开很多文件可能因线程竞争而变慢,作者对此进行测试。
关键信息:

  • 编写小 C++程序打开 10000 个文件,测试 1 线程、2 线程、8 线程、16 线程及带线程池的情况。
  • 线程池需获取线程、分配任务并等待完成,小单元工作时效率不高,批量分配任务更快。
  • 在苹果 M2 笔记本(8 核)和 Linux 64 核服务器上测试,macOS 系统磁盘、内存和核心更快,但测试中打开文件明显更慢。
  • 两种情况下,常规使用 2 线程可使运行时间最小,大机器上使用 4 线程或更多线程池比常规方法快。
  • MacBook 每秒最多打开约 120000 个文件,Linux 服务器可达每秒 400000 个文件。

重要细节:

  • 测试代码位于 GitHub:https://github.com/lemire/Cod...
  • 不同线程数在 macOS 和 Linux 下的测试总时间数据:在 M2 笔记本上,1 线程 100ms、2 线程 75ms、4 线程 90ms、8 线程 240ms、16 线程 250ms;在 Linux 服务器上,1 线程 34ms、2 线程 25ms、4 线程 31ms、8 线程 36ms、16 线程 42ms,带线程池时相应时间有所增加。
阅读 6
0 条评论