2.2 (но суть наверное не в этом). Программа для обработки фотографий нейронкой (object detection).
У меня есть очень странный баг.
Программа загружает фотографии в галерею.
И потом можно их скроллить выбирать и так далее.
На Linux/Cent OS/MacOs все работает хорошо.
Программа асинхронно в несколько потоков грузит фотографии. Потребление памяти не больше и не растёт. Всё хорошо.
На Windows программа также работает хорошо но до какого то момента.
Если ей на вход подать более 400-500 фотографий то она где-то после 300-400 фото начинает ооочень медленно грузить фотки и потом вообще виснит и отваливается.
Притом потребление памяти такое же как на Linux. То есть не больше примерно 1.5-2gb и не растёт (это происходит потому что при загрузке фото она их жмёт в миниатюры для превью в галерее) а потом когда фотографии загружены то потребление памяти снижается до 300мб. И тоже не растёт если увеличивать количество фото.
Мне кажется что это проблема не в программе а в проводнике?
Проводник Шindoшs не умеет в индексацию большого количества файлов и не отдаёт их?
Или в чем может быть проблема.
На Linux я загружал 1 000 000 фото 4000x4000 px. И программа справлялась и нигде не висла. И потребление памяти не росло.
А на винде... Если в папке больше 400-500 фото такого же размера то после 300 фото прога начитает тормозиь.
Притом если там допустим 390 фото то программа их кушает нормально.
Вот код загрузки фотографии
Загрузка самого кадра:
60 строчка
https://github.com/lizaalert/lacmus/blob/master/RescuerLaApp/Models/Frame.cs#L60
Вот код в vm (открывается проводник берутся файлы...)
239 строчка
https://github.com/lizaalert/lacmus/blob/master/RescuerLaApp/ViewModels/MainWindowViewModel.cs#L239
Вот этот же код но только вырезанный
var loadingFrames = new List<Frame>();
foreach (var fileName in fileNames)
{
...
frame.Load(fileName, Enums.ImageLoadMode.Miniature);
loadingFrames.Add(frame);
}
@Avalonia https://gitter.im/AvaloniaUI/Avalonia
@kekekeks
1) аппаратное ускорение включил?
Обсуждают сегодня