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 ответов

5 просмотров

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

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

@kekekeks

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

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

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

Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Hi guys, I'm looking for a good LLM course. Is there any course to learn LLMs in advanced? I'm aiming to use them in my apps, so a perfect course in my openion, is not only a ...
Taha
14
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
Всем привет. Подскажите, пожалуйста, как вы реализовываете следующий функционал. Допустим есть форма, в которой имеется выпадающий список со значениями. Значения хранятся в БД...
Евгений
7
Хех, данные на форме всегда будут "из прошлого", т.к. перезаполнять поля формы в процессе редактирования пользователем - так себе идея. Пользователь может открыть форму редакт...
Alexander Somov
7
Flutter or React native?
Siddharth Goswami
8
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Карта сайта