Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Linux批量mtime_Python_Linux_Performance_System Calls_Stat - Fatal编程技术网

Python Linux批量mtime

Python Linux批量mtime,python,linux,performance,system-calls,stat,Python,Linux,Performance,System Calls,Stat,在处理大量数据时,最小化数据库请求的数量并执行大容量操作反而在性能方面有很大帮助 问题:是否可以在Linux上一次性/批量检索10000个文件的时间 我希望尽量减少系统调用 在此处找不到内容: PS:目前,我使用python:os.walk检索这些文件名。很难找到声称不存在某些内容的源代码;) 没有链接到任何关于批量统计请求的内容,所以我假设它不存在 此外,如果您正在接受使用python带来的巨大性能损失,那么您不应该关心优化操作系统中最优化的东西之一。由于Python具有动态的高级特性,因此其

在处理大量数据时,最小化数据库请求的数量并执行大容量操作反而在性能方面有很大帮助

问题:是否可以在Linux上一次性/批量检索10000个文件的时间

我希望尽量减少系统调用

在此处找不到内容:


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

很难找到声称不存在某些内容的源代码;)

没有链接到任何关于批量统计请求的内容,所以我假设它不存在

此外,如果您正在接受使用python带来的巨大性能损失,那么您不应该关心优化操作系统中最优化的东西之一。由于Python具有动态的高级特性,因此其固有的速度较慢,因此更有效的优化包括:

  • 在python中使用更快的算法
  • 通过拆分计算工作和网络工作/
  • 在下运行代码(提供jit编译)
  • 用(编译成C的静态类型python)重写部分程序
  • 用C语言重写部分程序,并通过
  • 只是用C/C++/go/rust/任何其他编译语言编写程序

快速经验法则:直到你的程序不消耗CPU的所有内核的100%(或者CPU固有的不可并行化任务的一个核心)时,你不应该考虑在算法、网络和并发级别上优化除当前代码之外的任何东西。p> 语言设计的一部分是编程速度与执行速度的平衡。实现更快的执行速度需要程序员更多的输入,这会减慢开发速度。如果您的程序最慢的位置是10000个系统调用,那么您肯定应该用C编写它,但我相信您可以在您的程序中找到许多其他东西来优化它


我建议使用探查器(例如内置)查看代码中的真正热点。

我认为批量mtime请求是不可能的,但检索10000个文件的mtime并不是最慢的操作。你试过分析你的代码并找到其他慢的部分吗?也许优化这些是值得的……如果这是否定的,并且你有一些来源/参考资料,你可以给出答案,我会接受的。猜猜为什么引用db查询?;-)已经优化了。我还发现系统调用比函数调用慢20-100倍:其他慢的部分指的是其他任何东西,db和syscalls并不是使程序慢的唯一因素。如果您对数据执行一些O(n^2)操作,那么无论数据库和系统调用如何优化,您的程序都会很慢。我有点过于优化的感觉:如果你用python这样的高级语言编写,那么100倍纳秒长的调用优化将不会产生任何明显的整体执行速度提高。如果你需要优化你的代码,直到函数调用——抛弃python,用C写,你会获得更大的加速。不,你仍然需要dirwalk+每个文件一个stat()系统调用。要对程序进行基准测试,请将其与
find进行比较-ls>/dev/null
,就系统调用而言,本质上也是这样。除此之外,我预计python开销不会超过约10%。仅使用STATX_MTIME标志(没有其他标志)可能会比
stat
稍微更有效,但需要对其进行基准测试。