我正在构建Xamarin应用程序,并使用 ImageSharp 进行图像处理。
我注意到ImageSharp操作在模拟器中非常慢,而在部署到物理设备(Galaxy Note 8)上时,非常很慢。
进展缓慢的事物:
// Load image (very slow)
var image = SixLabors.ImageSharp.Image.Load(stream);
// Manipulate image (equally slow)
image.Mutate(i => i.Resize(new ResizeOptions
{
Mode = ResizeMode.Pad,
Position = AnchorPositionMode.Top,
Size = new SixLabors.Primitives.Size(600,400))
}));
请注意,图像加载正常(尽管速度较慢),并且调整大小的正常工作,但速度非常慢(30-60秒)。
从.NET Core控制台程序中执行相同的代码可将加载和操作时间减少到大约1-2秒。
在附加了调试器的情况下,当运行ImageSharp操作时,我看到了其中的大量信息:
GC_MINOR :(托儿所已满)
我不确定如何解决此问题,这是克隆ImageSharp存储库并使用自定义版本进行调试的唯一选择吗?
编辑:不确定是否与this issue有关?
编辑#2:我放弃了ImageSharp,并且对OpenCV进行了无济于事的测试,然后选择了 SkiaSharp ,它开箱即用。 >