【发布时间】:2016-11-22 19:42:21
【问题描述】:
我注意到,当我尝试调整位于包含超过 80k 个其他图像(同一级别没有子目录)的文件夹中的图像大小时,调整大小可能需要将近 2 秒。 (1.92s)
然而,同一张图片,在一个只有 10 张其他图片的文件夹中,几乎是即时的(0.02 秒)。
- 我正在
batch模式下对此进行测试,因为我的应用正在使用gm4java:1.1.0。 - 在 Windows 10 上运行
- NTFS(I thought this could be an issue,运行 contig.exe,但没有变化)
- GraphicsMagick 1.3.21
这是我的命令和输出:
GM> benchmark convert -size 200x200 "C:\lots-of-pics\image399.png[0]" -auto-orient -thumbnail 200x200 "C:\Users\user\AppData\Local\Temp\img-4518761374990603981.png"
Results: 1 threads 1 iter 1.94s user 1.94s total 0.514 iter/s 0.516 iter/cpu
GM> benchmark convert -size 200x200 "C:\less-pics\image399.png[0]" -auto-orient -thumbnail 200x200 "C:\Users\user\AppData\Local\Temp\img-4518761374990603981.png"
Results: 1 threads 1 iter 0.02s user 0.02s total 58.823 iter/s 64.000 iter/cpu
我在 SO 或 sourceforge 上找不到任何相关信息。任何想法为什么它这么慢?
【问题讨论】:
-
您是否向 GraphicsMagick 的人员提交了错误?
-
@alan 不,不确定这是不是一个错误。这通常是最好的方法吗?
-
这个问题似乎与编程无关,也没有与编程相关的答案——所以我认为这个问题对于 SO 来说是题外话。您已经观察到 GM 的意外行为,他们将是解决此问题的最佳来源。提交错误以及可重现的测试用例应该会加快该过程。
-
您可以尝试编写一个完全读取给定文件和基准测试的简单应用程序 - 如果仅读取文件需要更多时间,那么是的,您的文件系统有问题(也许是 @987654326 @?)。否则,如果要转换的文件旁边有很多文件,您使用的库的行为必须有所不同 - 您必须使用分析器、Sysinternals Process Monitor 或通过许多其他可能的方法进行调查。跨度>
-
您很惊讶 Windows 无法处理 80,000 个以
img-nnnnnnnn.png开头的文件?
标签: windows performance graphicsmagick disk-io