Linux批量mtime

时间:2018-06-17 13:06:50

标签: python linux performance system-calls stat

处理大量数据时,最大限度地减少数据库请求数量并进行批量操作会在性能方面有很大帮助。

问题:是否可以在Linux上一次/批量检索10,000个文件的mtimes?

我希望尽量减少系统调用。

在这里找不到任何内容:http://www.gnu.org/software/libc/manual/html_node/index.html

PS:目前,我使用python:os.walk检索这些文件名。

1 个答案:

答案 0 :(得分:0)

有点难以找到声称不存在某些东西的消息来源;)

Linux man page for fstat没有关于批量统计信息请求的任何内容,因此我认为它不存在。

此外,如果你接受使用python的大量性能损失,你不应该关心优化操作系统中最优化的东西之一。由于其动态的高级特性,Python本质上很慢,因此更有效的优化包括:

  • 在python中使用更快的算法
  • 通过multiprocessing分割计算工作,通过threads / coroutines分析网络工作
  • pypy(提供jit编译)下运行代码
  • cython中重写部分程序(编译为C的静态类型python)
  • 用C语言重写程序的一部分,并通过extentions
  • 将它们连接回python
  • 用C / C ++ / go / rust /任何其他编译语言编写程序

快速经验法则:直到您的程序没有消耗100%的CPU内核(或CPU的一个核心用于固有的无法归结的任务),您不应该考虑优化除当前代码之外的任何内容。算法,网络和并发级别。

语言设计的一部分是编程速度与执行平衡速度。实现更快的执行速度需要程序员提供更多的输入并减慢开发速度。如果您的程序最慢的地方是10000个系统调用 - 那么您绝对应该用C编写它,但我确信您可以在程序中找到许多其他内容来进行优化。

我建议使用分析器(例如内置于profile)来查看代码中的真实热点。