|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
Когда выделять память08.10.2020, 18:18. Показов 15649. Ответов 201
Метки динамическая память (Все метки)
вот завис в моём понимании этот пункт:
когда выделять поток - в принципе поняла, когда выделять класс - в принципе поняла (чтобы разорвать зависимости) КОГДА выделять память?.. - всё-таки ещё не всегда очень хочется её выделять, чтобы потом удалять... но даже не в этом суть... а смысл первой цитаты? поделитесь please опытом кто-нибудь - когда вы выбираете создать объект на стеке, а когда вы выбираете создать объект в куче?. - какие есть предпосылки для вашего выбора? не хочу потом всё переделывать - а мне всё равно кажется, что на стеке всегда быстрее, а когда и почему лучше куча не знаю... а то ведь могу написать что попало...логично, что на стеке - определена последрвательность, но ведь при обращении к разным объектам проблем вроде не бывает... имхо... и понятно, что через стек идут параметры функций - так что получается, всё остальное, т.е. вообще всё лучше располагать в куче? какую проблему можно получить, если всё располагать на стеке? и в каком случае вообще app не запуститься при таком подходе (есть ли такая опасность)?.. есть ли какие-то критерии "must do"? и никак иначе
0
|
|||
| 08.10.2020, 18:18 | |
|
Ответы с готовыми решениями:
201
Как лучше выделять память: динамичски или в стэке?
Как динамически выделять память на один элемент массива? |
|
|
|
| 13.10.2020, 12:07 | |
|
https://www.coursera.org/lectu... -new-jSggV - тут есть немного про это.
1
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 13.10.2020, 12:33 | ||
|
На "стеке" мы и так можем начиная с С++11 выровнять память как нам надо с использованием alignas. А вот "обычный" new всегда возвращает дефолтно-выровненную память. И повлиять на это выравнивание непосредственно было нельзя.
0
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 13.10.2020, 12:39 | |
|
Avazart, чтобы выровнять динамическую память для работы с SSE, например. При этом стандартными средствами.
Добавлено через 2 минуты Или для того, чтобы выровнять по единичке динамический буфер, который заведомо будет использоваться в качестве хранилища "сырых" байт. До этого стандартный new все равно делал (мог делать) стандартное выравнивание. В итоге кусочек байт, в количестве от 4 до 16 (в зависимости от) уходил на выравнивание, которое никому не нужно.
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 13.10.2020, 12:51 [ТС] | ||
|
Вобщем, действительно, - -
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 13.10.2020, 13:55 [ТС] | |||
- и даже начинать пока не хочется, раз есть c++ - пока его осилю...
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||
| 13.10.2020, 13:59 | ||
|
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 13.10.2020, 14:20 [ТС] | |
|
всё-таки потоки потоками, а в оперативку (т.е. кучу) вмещаться хочется нормально, а не съедать её всю... за пояснения по "сырым" спасибо, но hand-made allocator я пока точно делать не буду... вектор Фреймворка или array (reading from txt) меня устраивает
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 13.10.2020, 14:21 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 13.10.2020, 15:06 [ТС] | |
|
ну я же не всегда верю "на-слово"
- мне показалось...========= просто думаю... вот распараллеливаем, например, задачу - а память ведь может забиться до отказа? - при том что потоки ещё будут стоять в очередь на ядро (да ещё со всем захваченным, получается многократно, контекстом - если потоков много)... не рационально, вероятно, получается... = это в случае, если каждый поток выделять на куче...
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 13.10.2020, 15:14 | ||
|
Но забить память до отказа ты можешь и без потоков. От них это совершенно не зависит.
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 13.10.2020, 15:23 [ТС] | |
|
просто подумала, что на куче под 100 потоков резервируется памяти в 100 раз больше, чем под один поток...
![]() если их создавать на куче... хотя если функции для них на стеке - то согласна - проблема, вероятно, надуманая... спасибо (что будет твориться в этих функциях важнее для такой проблемы - главное в самой функции много мусора не плодить и аккуратненько данные ворочать на куче из этих функций)
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 13.10.2020, 17:22 | |||
|
Добавлено через 1 минуту
1
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 13.10.2020, 19:34 [ТС] | ||
|
Не по теме: а печалька была - когда RAM забивается до отказа и комп падает (понимаю, что оперативка, помню, что AutoCAD, верю, что графики много в нём - просто не знаю внесли ли ещё какие его потоки вклад в это)
0
|
||
|
фрилансер
6496 / 5727 / 1133
Регистрация: 11.10.2019
Сообщений: 15,289
|
|
| 13.10.2020, 19:53 | |
|
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 13.10.2020, 20:03 [ТС] | ||
|
а CPU - это процессор, у него тоже есть стэк (он маленький и быстрый - 1мб), через который гоняются функции и их аргументы... и, вероятно, объекты расположенные на стэке - всегда так думала - в этом суть ветки - когда это добрО переносить на кучу - в RAM - которая медленнее... (в начале ветки - уже вроде разобрались)
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 13.10.2020, 20:07 | ||
|
У потока есть стек, у процессора - кэш
0
|
||
| 13.10.2020, 20:16 | |
|
0
|
|
| 13.10.2020, 20:16 | |
|
Подскажите пожалуйста, правильно выделять память под lua состояние
Можно ли, используя make_shared<T> выделять память под массивы, по аналогии с функцией make_unique<T>?
Можно ли выделять память под объект класса с помощью функций calloc, malloc или realloc? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её.
Всё это стресс конечно. Почему?. . .
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|