170 похожих чатов

Чат у меня есть вопрос: Пишу программу на avalonia Ui+net core

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);
}

3 ответов

11 просмотров

@Avalonia https://gitter.im/AvaloniaUI/Avalonia

Georgy-Perevozchikov Автор вопроса

@kekekeks

1) аппаратное ускорение включил?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта