|
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
|
|
Изменение размера вектора векторов занимает много времени при первом запуске ОС18.03.2024, 02:23. Показов 3948. Ответов 30
Здравствуйте. Для представления последовательности изображений я использую вектор объектов своего класса, одним из атрибутов которых является другой вектор. По сути - вектор векторов.
При первом запуске программы изменение размерности каждого элемента вектора (изменение количества пикселей в каждом изображении) занимает много времени. Однако, при последующих запусках программы времени на это уходит гораздо меньше и так будет вплоть до перезапуска ОС. Использую Ubuntu 20.04, Qt, пробовал изменение размера через resize, застолбить память через reserve и добавлять элементы через emplace_back, ничего не помогло. В чём может быть проблема?
0
|
|
| 18.03.2024, 02:23 | |
|
Ответы с готовыми решениями:
30
Функция занимает много времени
OpenXML, Dispose занимает, много времени |
|
фрилансер
6449 / 5643 / 1129
Регистрация: 11.10.2019
Сообщений: 15,021
|
|
| 18.03.2024, 07:46 | |
|
Georgy van Ral, много = это сколько? Секунда? Минута?
Ну и как эти изображения хранятся, как загружаются? Сомневаюсь, что дело в векторе Добавлено через 41 секунду в общем-то, вектор из уравнения можно убрать, использовать new[]/delete[]
0
|
|
|
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
|
||||||
| 18.03.2024, 13:14 [ТС] | ||||||
|
На буфер размером в 2000 изображений 1440х1080 для этой операции требуется 15 секунд.
Изображения записываются непосредственно с камеры. Пример кода:
0
|
||||||
|
фрилансер
6449 / 5643 / 1129
Регистрация: 11.10.2019
Сообщений: 15,021
|
||||||
| 18.03.2024, 13:27 | ||||||
|
Georgy van Ral, какой тип у pImageBuff ?
что-то странное происходит в данной функции. А что должно делаться ? Почему бы тут просто не сделать
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
|
|
| 18.03.2024, 13:36 [ТС] | |
|
Вектор unsigned char.
Раньше так и было, но проблема была и в этом случае
0
|
|
|
фрилансер
6449 / 5643 / 1129
Регистрация: 11.10.2019
Сообщений: 15,021
|
||||||
| 18.03.2024, 14:01 | ||||||
|
если так и будешь партизанить, никто ничего не подскажет ))
Насколько я понимаю, требуется разом выделить память в районе 8 гигов. Столько озу реально есть на борту? Или там местный своп начинается (что там в линуксе, я не в курсе) насколько быстро создаётся такой объект?
0
|
||||||
|
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
|
||||||
| 18.03.2024, 14:30 [ТС] | ||||||
|
Не, максимальный вес итогового вектора выходит около 2.5 гиг.
Реальной озу 8 гиг, так как линукс на виртуальной машине.
Да я не партизаню, просто первый раз задаю вопрос и не знаю, что может быть важно, а что нет))
0
|
||||||
|
Модератор
|
|
| 18.03.2024, 16:09 | |
|
1440*1080*2000 = 3110400000 или 2.9Гб и то это при условии что на каждый пиксель по 1 байту, если по 4 байта (rgba) то будет 11.6Гб, если по 3 то 8.7Гб
Только если картинки сжатые то будет меньше памяти, но тогда с ними будет невозможно работать.
0
|
|
|
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
|
|
| 18.03.2024, 16:15 [ТС] | |
|
Проблема не в недостатке памяти, т. к. максимальный вес буфера я ограничиваю, читая из meminfo количество свободной памяти и оставляя запас в несколько гигов
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 18.03.2024, 16:19 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
|
|
| 18.03.2024, 16:27 [ТС] | |
|
Для того, чтобы пользователь мог записать с камеры видеопоследовательность. На самом деле размер не такой большой, для камеры с высокой скоростью съёмки это всего секунд 10 видео
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||
| 18.03.2024, 17:07 | ||||
|
Тогдв повторю вопрос : Что и занимает время. Потворный же запуск, должен быть почти мгновенен, не считая сбора данных с камеры.
0
|
||||
|
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
|
|
| 18.03.2024, 17:32 [ТС] | |
|
Такой размер необходим. Камеры будут фиксировать технологические операции, так что имеют высокую скорость съёмки. Так, при скорости съёмки 227 к/с в буфер на 2000 элементов попадёт менее 10 с процесса.
Естественно, чем больше будет вес отдельного изображения, тем меньше будет максимальный размер буфера, смещаясь от 2000 в меньшую сторону. "Запрос такого объема памяти одним куском, скорее всего вызывает систему дефрагментации памяти." Вряд ли, сейчас выявил, что резервирование памяти под подобный вектор (reserve) происходит практически мгновенно, а сам процесс добавления элементов-изображений в вектор уже и занимает всё время
0
|
|
|
46 / 114 / 11
Регистрация: 24.04.2019
Сообщений: 796
|
|
| 18.03.2024, 17:43 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 18.03.2024, 17:44 | |
|
0
|
|
|
46 / 114 / 11
Регистрация: 24.04.2019
Сообщений: 796
|
||
| 18.03.2024, 17:48 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
|
||
| 18.03.2024, 18:02 [ТС] | ||
|
Обнаружил ещё одну интересную особенность: Если во время добавления элементов прервать программу, например, на 1000-м элементе, то при следующем запуске до 1000 элемента всё выполнится практически мгновенно, а дальше снова медленно
0
|
||
|
46 / 114 / 11
Регистрация: 24.04.2019
Сообщений: 796
|
||
| 18.03.2024, 18:07 | ||
|
Добавлено через 48 секунд Ну или как там на линуксе это называется.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 18.03.2024, 19:32 | |
|
Georgy van Ral, кеширование есть во всех современных ОС.
Очень печально выдеть что вы этого не знаете.
0
|
|
|
Модератор
|
|
| 18.03.2024, 21:20 | |
|
А если с помощью ffmpeg кадры руками складывать в какой нибудь контейнер?
1
|
|
| 18.03.2024, 21:20 | |
|
Помогаю со студенческими работами здесь
20
Создание массива занимает много времени Процесс включения компьютера занимает много времени. Удаление строк занимает слишком много времени
Переход в гибернацию занимает слишком много времени Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|