|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||||
Память, выделенная для строки22.11.2016, 11:35. Показов 3175. Ответов 10
Метки нет (Все метки)
Имеется код
1. Память возвращается менеджеру памяти или ОС и приводит ли это к переключению контекста между программным контекстом и контекстом ОС? 2. Как этого можно избежать? Допустим мне не нужно что бы выполнялись лишние телодвижения для возврата памяти пока capacity не превысит определенного значения или что бы capacity был всегда равен максимальному значению самой длинной строки которая побывала в определенном std::string
0
|
||||||
| 22.11.2016, 11:35 | |
|
Ответы с готовыми решениями:
10
Динамически выделенная память Резкий выход из проги: куда девается выделенная переменной память? Ссылка, Указатель, Область памяти выделенная оператором new для указателя |
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 22.11.2016, 11:41 | ||
|
http://www.cplusplus.com/refer... /capacity/
1
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 22.11.2016, 11:47 [ТС] | ||
|
С++ так хорош, но блин столько вроде бы нужных вещей не реализованы. Печально. Сделали бы флаг (уменьшать выделенную память или нет) и все... вместо этого надо писать аллокатор
0
|
||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 22.11.2016, 12:03 | ||
|
Можете использовать вектор из char, если хотите. Он память не освобождает "сам по себе".
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 22.11.2016, 12:06 [ТС] | ||
![]() Но то что он освобождает память когда сам решил это не очень хорошо если нет возможности ему это запретить Ведь освобождение памяти занимает рерсурсы. Там где преимущество отдается скорости а не памяти это не очень хорошее решение
0
|
||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||||
| 22.11.2016, 12:10 | ||||
|
Если вам надо зарезервировать много места - используйте reserve()
1
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|||
| 22.11.2016, 12:16 [ТС] | |||
|
Это будет дорого стоить если такая операция может приводить к смене контекста от программы на ОС. Из за этого выше спрашивает про смену контекста
0
|
|||
|
Форумчанин
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 22.11.2016, 12:21 | ||
|
0
|
||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||
| 22.11.2016, 12:25 [ТС] | ||
|
Но я не уверен что для std::string такая ситуация имеет место быть Вот бы разъяснил бы кто
0
|
||
|
Неэпический
|
||||
| 22.11.2016, 13:44 | ||||
|
Попробуйте на больших размерах строк,
желательно, чтобы содержимое строк было неизвестно во время компиляции, иначе компилятор может применить оптимизацию SSO, и все Ваши замеры и предположения будут неверными. Плюс ко всему, в подобных вопросах очень сильно влияет компилятор и ключи, с которыми собиралось приложение, Вы этого не указали. Здесь: http://rextester.com/MRCDL93116 получили
1
|
||||
|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
|
| 22.11.2016, 14:06 [ТС] | |
|
Croessmah,
Ясно, спасибо за информацию Добавлено через 20 секунд Сам на gcc проверял
0
|
|
| 22.11.2016, 14:06 | |
|
Помогаю со студенческими работами здесь
11
Realloc выделяет память для массива int и не выделяет память для массива double Может ли закончится память, выделенная под использование программы Освобождается ли память выделенная под список и массив после завершения работы метода? Выделить из строки подстроки, не содержащих знаков: больше, меньше, равно. Каждая выделенная подстрока должна быть выведена с новой строки.
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|