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

本文关键字:最佳 方式 高性能 映像 文件 访问 | 更新日期: 2023-09-27 17:50:25

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

但是会影响性能。有没有更好的方法来提高性能?

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

使用并行类(ForEach或For)

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

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

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

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

如果你仍然需要在c#上执行,把你的代码改为使用Parallel。Foreach而不是Foreach,并检查在执行过程中是否有增益。尝试一个示例,一个目录中可能有50-100个文件,并检查两种实现之间的执行时间。

祝大家好运!