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

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

18.03.2024, 02:23. Показов 4231. Ответов 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
270 / 202 / 30
Регистрация: 26.11.2022
Сообщений: 879
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 / 122 / 11
Регистрация: 24.04.2019
Сообщений: 891
19.03.2024, 19:28
Цитата Сообщение от Georgy van Ral Посмотреть сообщение
Первая картинка - первое изменение размера вектора, заняло около 15 секунд. Вторая картинка - все последующие ресайзы, происходит за 1-2 секунды. Третья картинка - когда вектор уничтожен.
Немного не то пальто. У вас достаточно физической памяти, поэтому процент использования файла подкачки на нуле. Нужно смотреть либо ошибки страниц, либо процент использования жесткого диска.
0
фрилансер
 Аватар для Алексей1153
6495 / 5724 / 1133
Регистрация: 11.10.2019
Сообщений: 15,286
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
2894 / 1400 / 412
Регистрация: 11.08.2017
Сообщений: 4,482
Записей в блоге: 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,469
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
Ответ Создать тему
Новые блоги и статьи
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru