Я создаю приложение Xamarin, используя ImageSharp для работы с изображениями.
Я заметил, что операции ImageSharp очень медленные в эмуляторе и смехотворно медленный при развертывании на физическом устройстве (Galaxy Note 8).
Вещи, которые way slow:
// 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: (Nursery full)
Я не совсем уверен, как решить эту проблему, мой единственный вариант - клонировать репозиторий ImageSharp и отлаживать его с помощью пользовательской сборки?
Редактировать: Не уверен, может ли это быть связано с эта проблема ?
Правка № 2: Я сдалсяна ImageSharp, а также протестировал OpenCV без особой пользы, а затем остановился на SkiaSharp , который отлично работает прямо из коробки.