|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
Когда выделять память08.10.2020, 18:18. Показов 15584. Ответов 201
Метки динамическая память (Все метки)
вот завис в моём понимании этот пункт:
когда выделять поток - в принципе поняла, когда выделять класс - в принципе поняла (чтобы разорвать зависимости) КОГДА выделять память?.. - всё-таки ещё не всегда очень хочется её выделять, чтобы потом удалять... но даже не в этом суть... а смысл первой цитаты? поделитесь please опытом кто-нибудь - когда вы выбираете создать объект на стеке, а когда вы выбираете создать объект в куче?. - какие есть предпосылки для вашего выбора? не хочу потом всё переделывать - а мне всё равно кажется, что на стеке всегда быстрее, а когда и почему лучше куча не знаю... а то ведь могу написать что попало...логично, что на стеке - определена последрвательность, но ведь при обращении к разным объектам проблем вроде не бывает... имхо... и понятно, что через стек идут параметры функций - так что получается, всё остальное, т.е. вообще всё лучше располагать в куче? какую проблему можно получить, если всё располагать на стеке? и в каком случае вообще app не запуститься при таком подходе (есть ли такая опасность)?.. есть ли какие-то критерии "must do"? и никак иначе
0
|
|||
| 08.10.2020, 18:18 | |
|
Ответы с готовыми решениями:
201
Как лучше выделять память: динамичски или в стэке?
Как динамически выделять память на один элемент массива? |
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 09.10.2020, 10:21 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 09.10.2020, 10:44 [ТС] | ||
|
т.е. по вашему линку надо изучить, как всё по логике... а если её нарушить - то будут косяки со временем жизни - пока беглым взглядом, вижу так... (пока решаю др sub-задачу практически - скоро дойду до кучи - ? вот кстати объект класса WorkerThread - ГДЕ лучше создать - на стеке или на куче ?? - если таких инстансов планируется подрядить несколько - ведь если большой - то лучше на куче??)
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.10.2020, 10:51 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 09.10.2020, 11:01 [ТС] | |
|
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 09.10.2020, 11:02 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 09.10.2020, 11:23 [ТС] | ||
|
тоже извините
не сразу сама поправила... думаю пока о другом - ... конечно, с разными функциями - ведь можно в фоне выполнять что угодно Добавлено через 8 минут вообще - идея наверно глупая - плодить много сущностей... оставлю инициализацию thread(s) в myGUI, а потом просто move его (их) каждого в thread_guard - чтобы время жизни обоих не противоречило логике их жизненного цикла... имхо
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.10.2020, 11:25 | ||
Сообщение было отмечено JeyCi как решение
РешениеНе забывай, что у объектов-на-стеке короткое время жизни и они удаляются автоматически. Соответственно, предавать ссылки на такие объекты в поток надо очень аккуратно. Внутри же функции потока можешь создавать на стеке (но, помнить о размере).
1
|
||
|
Комп_Оратор)
|
|||
| 09.10.2020, 11:27 | |||
|
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 09.10.2020, 11:34 [ТС] | ||
|
0
|
||
|
Комп_Оратор)
|
||
| 09.10.2020, 11:43 | ||
|
И ещё. Любой код для себя, это библиотека для себя. Если в коде больше пары сотен строк, - через год он становится "сторонней библиотекой", когда смотришь и спрашиваешь себя,- "кто это писал?". Но если оно организованно, более-менее прилично, то это очень дружественный жест по отношению к тому, кто смотрит из зеркала. JeyCi, зачем я вас убеждаю? Уже просто и не знаю. Мне всё больше и больше кажется что вам, конкретно, можно и не выделять память. Контейнеров (со стандартным аллокатором) и смартпойнтеров - хватает? Ну и ладно.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 09.10.2020, 11:51 [ТС] | ||
что мне сейчас нужен не API, а прикладное по (чуть шире, чем утилита) - что если что-то уже есть во Фреймворке в приемлемом виде, - то я не буду тратить время на разработку того, что есть, когда список (под-)задач шире... принимаю на заметку все советы, выстраиваю свой путь знакомства с языком - без отрыва от текущих задач... спасибо за советы
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 09.10.2020, 12:15 | ||
|
1
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 09.10.2020, 12:23 | |||
|
Добавлено через 3 минуты Добавлено через 2 минуты
1
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||
| 09.10.2020, 19:35 [ТС] | ||||||
при выходе из scope'a... включая время жизни локальных и др. переменных и констант этого класса...вообще логично - а то вдруг захочу весь этот(эти) поток(и) не в GUI выводить, а перекроить на консольный вывод... убедили - если будет разрастаться из утилиты вширь...а пока живёт в myAppWindow - и scope_guard не нужен... Добавлено через 31 минуту storage duration vs lifetime
Добавлено через 4 часа 56 минут Умные указатели Сырые указатели и Умные указатели Как “научить” Указатель определять, что сам Объект уже удален? Добавлено через 3 минуты и лезть на более низкий уровень тем более...Добавлено через 35 минут и про права владения (это как раз и есть этот new - логично: кто создатель, там и деструктор) - пример: Передача указателя в класс на объект другого класса
0
|
||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 13.10.2020, 11:17 [ТС] | ||
|
вот что, действительно порадовало!
reinterpret_cast(&block) % alignof(Avx_block); и вряд ли будет мной использоваться...но всё-таки возник вопрос на уточнение - ? выделяя new для каких-нибудь structure или user-defined class objects - обязана ли я делать это выравнивание в принципе ?? или всё уже учтено как-то в моих user-defned классах?... наверно, всё-таки учтено...
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|||
| 13.10.2020, 12:01 | |||
|
Выравнивание выполняется автоматически на адекватную на текущей архитектуре\системе величину. Влезать в это нужно только если вам нужно получить отличное от принятого по умолчанию значение выравнивания. Добавлено через 4 минуты Она всегда отдает правильно выровненную память для дефолтного значения выравнивания системы.
1
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 13.10.2020, 12:06 | ||
|
1
|
||
| 13.10.2020, 12:06 | |
|
Подскажите пожалуйста, правильно выделять память под lua состояние
Можно ли, используя make_shared<T> выделять память под массивы, по аналогии с функцией make_unique<T>?
Можно ли выделять память под объект класса с помощью функций calloc, malloc или realloc? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал.
Оно само - говорит.
Кто слышит тот слышит.
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
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 и то, что с ним. . .
|