访问图像文件以提高性能的最佳方式

Best way to access image files to improve performance

我正在使用 graphicmagick.exe(命令工具)将文件从一种格式转换为另一种格式:在那种情况下,我曾经传递输入路径和输出作为参数的转换路径。现在我正在使用 foreach 循环一个目录并一个一个地传递输入文件并转换为另一种格式。

但是影响性能。有没有更好的方法来提高性能?请推荐我。

勾选http://www.graphicsmagick.org/FAQ.html#how-can-i-process-many-files-at-once

我认为您的代码会在每个 for 上执行应用程序。所以,它非常昂贵。该应用程序具有多个文件处理选项。首先检查每个文件,而不是执行应用程序的代码。启动一个进程并在图像上应用更改与每个文件启动一个进程不同。

如果您仍然需要在 C# 上执行,请将您的代码更改为使用 Parallel.Foreach 而不是 foreach 并检查执行是否有收益。尝试一个示例,一个目录中可能有 50-100 个文件,并检查两个实现之间的执行时间。

问候,祝你好运!

使用并行 class(ForEach 或 For)。

Parallel.ForEach(files, file =>
{
    // do something with file
    ...
});

在这种情况下,您的所有处理器内核都将被加载。否则只有一个。 但请记住,您在 Parallel 块中编写的代码必须是线程安全的并且不会相互阻塞。