我正在尝试使用Laravel的Storage类一次生成并计数大量的小json文件(例如数百万个)。
我尝试了count(Storage::files(PATH))
,但由于有数百万个事实,因此无法正常工作。
首先,它返回执行时间超过30秒的错误,因此我尝试了max_execution_time
的运行,但是现在运行了一段时间后,它返回了空白页,不知道出了什么问题
我希望有一种巧妙的方法来有效地计算所有文件 也许作为块(我不认为存储具有功能) 或对过程进行任何形式的优化,可能有助于阻止它崩溃
有什么帮助吗?
答案 0 :(得分:3)
我将使用PHP
的{{1}}进行此操作-您的操作系统已经知道目录中的文件数。它会对其进行索引,那么为什么不使用它呢?超级干净。
exec
请注意,该<?php
exec('ls -l /path/to/your/json/files | grep ^- | wc -l', $out);
echo $out[0];
返回一个数组-因此,您需要在exec
更新 –我使用以下工具测试了3,000,000个文件的运行情况–生成的php $out
函数在<20秒内运行。
exec
答案 1 :(得分:0)
即使将max_execution_time
增加到1小时,它肯定也会在10分钟左右的任何时间超时,这就是为什么页面空白的原因。
@Zak的解决方案是您最好的选择。