gpt4 book ai didi

c# - ImageProcessorCore : Opening image takes >11seconds, 我错过了什么?

转载 作者:行者123 更新时间:2023-11-30 23:20:19 25 4
gpt4 key购买 nike

我目前正在检查 ImageProcessorCore,我遇到了一个让我觉得我遗漏了什么的问题:关于他的 website开发人员展示了一些基准测试,其性能与我在示例程序中测量的时间完全不同。我有一个 2.3 MB (3853x2569) jpg 图像,我只想从中获取宽度和高度(目前),所以我创建了这个小的 .NET 核心控制台测试应用程序:

using ImageProcessorCore;
using System;
using System.IO;

namespace ImageProcessorCoreTest
{
public class Program
{
public static void Main(string[] args)
{
using (FileStream input = File.OpenRead(@"c:\test\a.jpg"))
{
DateTime start = DateTime.Now;
Image image = new Image(input);

int w = image.Width;
int h = image.Height;

double duration = (DateTime.Now.Subtract(start)).TotalMilliseconds;

Console.WriteLine("Image size is " + w.ToString() + "x" + h.ToString() + " Pixels (" + duration.ToString() + "ms)");
Console.ReadLine();
}
}
}
}

这个操作只需要 11 秒以上(与上述基准相比是 100 倍),仅用于读取图像和获取尺寸。我做错了什么?

我在 Windows 10 Pro 64 上使用 1.0.0 版。

(顺便说一句:我的开发机器是 i7-5820K,配备 16G RAM 和 Samsung Pro 950 NVMe 驱动器,所以我认为硬件很可能不会成为瓶颈。)

更新 1:不幸的是,重新编译 ImageProcessorCore 并创建一个发布 nuget 包,然后我在我的(发布)示例程序中使用它只会将持续时间缩短到 10 秒多一点。

更新 2:我刚刚将测试图像(外部)调整为 2000x1334 像素。这将时间显着缩短至 849 毫秒,考虑到在开发基准测试中读取、调整大小和再次写入的给定 56 毫秒,这仍然很奇怪。

更新 3:我现在使用可以与您分享的测试图像进​​行测试。新图像为 11416x6380 像素 (11.5 MB),使用上述代码耗时 >17 秒。您可以在这里下载:http://orig01.deviantart.net/92d3/f/2010/110/7/2/pla_sf_3_by_recon071.jpg

更新 4:当我使用 MyGet 存储库中的包时,最新测试图像(参见更新 3)的时间下降到 2.4 秒。

最佳答案

您在官方构建中获得了正确的性能,但在您自己的构建中却没有,这显然意味着您的构建参数有问题。像你一样,我克隆了 ImageProcessorCore并构建了我自己的包。毫不奇怪,我也像你一样表现不佳!对于您的 12.1 MB test.jpg 花费了大约 23 秒(官方构建需要大约 3 秒。)

问题实际上出在构建命令上。默认的 .NET Core 包命令 (dotnet pack) 在 Debug 配置中构建包。而调试构建的性能较差,因为它执行复杂的符号存储和其他辅助操作。

我使用以下命令在 Release 配置中构建了包:

dotnet pack --configuration Release

这次性能与官方构建完全相同(test.jpg ~3s!)

关于c# - ImageProcessorCore : Opening image takes >11seconds, 我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39805722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com