Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11

Изменение размера вектора векторов занимает много времени при первом запуске ОС

18.03.2024, 02:23. Показов 4335. Ответов 30

Студворк — интернет-сервис помощи студентам
Здравствуйте. Для представления последовательности изображений я использую вектор объектов своего класса, одним из атрибутов которых является другой вектор. По сути - вектор векторов.
При первом запуске программы изменение размерности каждого элемента вектора (изменение количества пикселей в каждом изображении) занимает много времени. Однако, при последующих запусках программы времени на это уходит гораздо меньше и так будет вплоть до перезапуска ОС.
Использую Ubuntu 20.04, Qt, пробовал изменение размера через resize, застолбить память через reserve и добавлять элементы через emplace_back, ничего не помогло.
В чём может быть проблема?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2024, 02:23
Ответы с готовыми решениями:

Функция занимает много времени
Добрый день. Есть функция по уменьшению картинки: function image_resize( $source_path, $destination_path, $newwidth, ...

Процесс выполнения занимает много времени
Тройка Пифагора - три натуральных числа a < b < c, для которых выполняется равенство {a}^{2} + {b}^{2} = {c}^{2} Например, {3}^{2} +...

OpenXML, Dispose занимает, много времени
В программе происходит подключение к файлам несколько раз(около 60) using (var doc = WordprocessingDocument.Open(filePath_, true)) ...

30
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 898
18.03.2024, 23:56
Студворк — интернет-сервис помощи студентам
а может нормально ручками выделить память - в программе запросить у ОС большой блок и далее линейным аллокатором нарезать на нужные блоки
0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
19.03.2024, 14:10  [ТС]
Цитата Сообщение от Дмитрий_1982 Посмотреть сообщение
Посмотрите через диспетчер задач.
Первая картинка - первое изменение размера вектора, заняло около 15 секунд. Вторая картинка - все последующие ресайзы, происходит за 1-2 секунды. Третья картинка - когда вектор уничтожен.
Миниатюры
Изменение размера вектора векторов занимает много времени при первом запуске ОС   Изменение размера вектора векторов занимает много времени при первом запуске ОС   Изменение размера вектора векторов занимает много времени при первом запуске ОС  

0
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
19.03.2024, 14:14  [ТС]
Цитата Сообщение от SmallEvil Посмотреть сообщение
Georgy van Ral, кеширование есть во всех современных ОС.
Сомневаюсь, что дело в этом, иначе почему такое большое количество времени уходит только при первом запуске в текущем сеансе работы ОС?

Добавлено через 2 минуты
Цитата Сообщение от alecss131 Посмотреть сообщение
А если с помощью ffmpeg кадры руками складывать в какой нибудь контейнер?
По множеству причин мне это не подходит
Цитата Сообщение от Aledveu Посмотреть сообщение
а может нормально ручками выделить память - в программе запросить у ОС большой блок и далее линейным аллокатором нарезать на нужные блоки
Так я пробовал запрашивать кусок памяти для вектора с помощью reserve, это не помогло. Память предоставляется практически мгновенно, а вот новые элементы добавляются долго
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.03.2024, 15:04
Цитата Сообщение от Georgy van Ral Посмотреть сообщение
Сомневаюсь, что дело в этом, иначе почему такое большое количество времени уходит только при первом запуске в текущем сеансе работы ОС?
Вот именно поэтому, часть файлов уже закеширована и нет нужды опять загружать их с камеры.
Цитата Сообщение от Georgy van Ral Посмотреть сообщение
а вот новые элементы добавляются долго
Вот не думал что придется тыкать носом.
Скорость загрузки такого объема с камеры сколько займет ???
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
19.03.2024, 15:41
Цитата Сообщение от Georgy van Ral Посмотреть сообщение
Первая картинка - первое изменение размера вектора, заняло около 15 секунд. Вторая картинка - все последующие ресайзы, происходит за 1-2 секунды. Третья картинка - когда вектор уничтожен.
Есть стойкое подозрение, что так в первый раз резервируется место в свопе.
Покажете, как настроен файл подкачки? Можно попробовать его убрать или настроить статический размер.
0
46 / 124 / 11
Регистрация: 24.04.2019
Сообщений: 918
19.03.2024, 19:28
Цитата Сообщение от Georgy van Ral Посмотреть сообщение
Первая картинка - первое изменение размера вектора, заняло около 15 секунд. Вторая картинка - все последующие ресайзы, происходит за 1-2 секунды. Третья картинка - когда вектор уничтожен.
Немного не то пальто. У вас достаточно физической памяти, поэтому процент использования файла подкачки на нуле. Нужно смотреть либо ошибки страниц, либо процент использования жесткого диска.
0
фрилансер
 Аватар для Алексей1153
6501 / 5734 / 1134
Регистрация: 11.10.2019
Сообщений: 15,352
19.03.2024, 19:34
Лучший ответ Сообщение было отмечено Georgy van Ral как решение

Решение

Цитата Сообщение от Georgy van Ral Посмотреть сообщение
так как линукс на виртуальной машине.
а не в этом ли дело? ВМ, наверное, может память от хоста сразу реально и не занимать. При первом обращении ВМ присваивает память (это и занимает время), а гость потом свободно гоняет туды-сюды
1
0 / 0 / 0
Регистрация: 13.03.2024
Сообщений: 11
25.03.2024, 22:46  [ТС]
Цитата Сообщение от Алексей1153 Посмотреть сообщение
а не в этом ли дело? ВМ, наверное, может память от хоста сразу реально и не занимать. При первом обращении ВМ присваивает память (это и занимает время), а гость потом свободно гоняет туды-сюды
Судя по всему вы правы. В документации на VMWare Workstation нашёл следующие строки:
"Параметр зарезервированной памяти определяет максимальный объем оперативной памяти хоста, который Workstation Pro может зарезервировать для всех работающих виртуальных машин. Зарезервированная память не выделяется заранее."
Однако, так как невиртуальной Ubunta у меня нет, был бы признателен, если бы кто-то прогнал на реальной убунте следующий пример, и сказал, были ли у него схожие проблемы:
C++
1
std::vector<char> v(0x8p30);//8 гиг
Благодарю всех за советы!
0
Модератор
Эксперт Java
 Аватар для alecss131
2896 / 1402 / 412
Регистрация: 11.08.2017
Сообщений: 4,491
Записей в блоге: 2
25.03.2024, 22:49
Можно попробовать wsl
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
25.03.2024, 22:59
Цитата Сообщение от Georgy van Ral Посмотреть сообщение
Судя по всему вы правы.
Вам подобное уже несколько раз сказали, но вам доходит толтько в лоб.
Не быть вам программистом.

Добавлено через 56 секунд
Цитата Сообщение от Georgy van Ral Посмотреть сообщение
на реальной убунте
Да, тут полно лохов.

Добавлено через 4 минуты
Цитата Сообщение от Georgy van Ral Посмотреть сообщение
Использую Ubuntu 20.04, Qt, пробовал изменение размера через resize, застолбить память через reserve и добавлять элементы через emplace_back, ничего не помогло.
В чём может быть проблема?
И да, где в вопросе инфа про виртуальную машину ???
Идите и повесьтесь.
0
Модератор
 Аватар для vxg
3410 / 2182 / 354
Регистрация: 13.01.2012
Сообщений: 8,473
26.03.2024, 07:23
Georgy van Ral, можно запихать дистрибутив на флешку и стартовать с нее в режиме "мне только посмотреть" и на такой "реальной" системе проверить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.03.2024, 07:23

Создание массива занимает много времени
Здравствуйте. Нужен совет. В процессе написания некой программы, возникла надобность в создании больших массивов объектов типа Label. В...

Процесс включения компьютера занимает много времени.
Здравствуйте, с некоторых пор случился косяк с компом, при включении долго не может включиться, щелкает оборудованием, лампочки мигают на...

Удаление строк занимает слишком много времени
Привет всем! Помогите справится с проблемой. Есть Excel таблица, в таблице 10000-30000 строк. Происходит поиск значений и при...

Деление больших чисел занимает много времени
Привет всем. Написал функцию для деления больших чисел, но к сожалению вычисления идут очень долго. Может кто-нибудь помочь с переделкой...

Переход в гибернацию занимает слишком много времени
Раньше такого не было, а сейчас уходит до 1 минуты! Или даже больше, точно не засекал - раньше 15 сек примерно!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru