|
|
 |
Ответов
|
Jun 22 2012, 02:45
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Beginning @ Jun 21 2012, 14:30)  Я не очень понимаю выражения "не использовать кучу". Тут 2 варианта, либо ты резервируешь память раз и навсегда, либо динамически выдаёш, забираеш. В первом варианти торетически память в большинстве случаев будет простаивать. Во-втором случае будет простаивать как минимум в 2 раза большее кол-во памяти. Все кучефилы почему-то забывают об элементарной вещи, которая сводит на нет все +-ы кучи в embedded: если к примеру 2 потока используют периодически каких-то 2 блока памяти и зависимость во времени этих использований невозможно детерминировать и возможны моменты одновременного использования (т.е. - невозможно поместить эти 2 блока в union static), то они совершенно забывают, что если выделять эти блоки на куче, то тоже будут моменты одновременного использования, соответственно - объём памяти в куче должен быть равен не менее чем сумме размеров блоков (а в реальности - более из-за заголовков). Поэтому в типичном эмбеддед-приложении где нет запускаемых пользователем задач (которым при нехватке памяти можно отказать в запуске) или если нет таких потоков, выполнение которых можно остановить без ущерба функционированию системе при нехватке памяти, использование кучи не приводит к уменьшению требований по памяти, а наоборот - увеличивает требования к памяти + приводит к проблемам фрагментации. Поэтому обычное static-размещение + union для использований неперекрывающихся по времени, однозначно рулит. Поймите-же эту простую мысль, кучефилы, и творения ваши станут чуть менее глючными!!!
|
|
|
|
|
Jun 22 2012, 13:39
|
Местный
  
Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188

|
Цитата(jcxz @ Jun 22 2012, 05:45)  Поэтому в типичном эмбеддед-приложении... Поймите-же эту простую мысль, кучефилы, и творения ваши станут чуть менее глючными!!!  Ну чего уж так брутально... Для меня например уже долгое время типичными являются аппликации с несколькими альтернативными режимами. Динамическое создание и убиение соответствующих классов проходит "со свистом", а наоборот - не всегда... А если еще и компоненты оси присутствуют в качестве полей этих классов, то и перформенс улучшается (не то, чтобы я это ощущал, но сознавать приятно  ).
|
|
|
|
Сообщений в этой теме
Beginning Кто какую реализацию использует для распределения памяти на cortex? Jun 19 2012, 13:48 shmur Пользуемся tlsf, пока всем устраивает. Jun 19 2012, 13:59 Сергей Борщ Имени zltigo. И на Cortex и на ARM7 Jun 19 2012, 14:34 Beginning Блин, нашёл тему близнец тыц Можно склеить. Jun 19 2012, 14:51 IgorKossak Склеил бы, да руки не достают. Тем более, что здес... Jun 19 2012, 17:11 brag Вот и моя близняшка http://electronix.ru/forum/ind... Jun 19 2012, 22:28 Beginning Я тут немного поразмыслил и пришел к выводу что де... Jun 20 2012, 07:18 scifi Цитата(Beginning @ Jun 20 2012, 11:18) Ес... Jun 20 2012, 07:29 Beginning Картина собственно ясна. А теперь вопрос. Стоит ли... Jun 20 2012, 07:40 jcxz Цитата(Beginning @ Jun 20 2012, 13:40) Ка... Jun 20 2012, 09:13 brag Забудьте про дефраг. Дефрагментация уместна только... Jun 20 2012, 09:40 _Pasha Если Вы можете выделить сколь-нибудь детерминирова... Jun 20 2012, 11:43 Beginning Я уже писал про **p. Придётся везде лепить. А пото... Jun 20 2012, 12:05 maksimp Практическая реализация дефрагментации без аппарат... Jun 20 2012, 17:19 Beginning Я так понимаю это компромис. Зарезервировал память... Jun 20 2012, 18:35 aaarrr Цитата(Beginning @ Jun 20 2012, 22:35) По... Jun 20 2012, 18:37 maksimp Цитата(Beginning @ Jun 20 2012, 22:35) За... Jun 21 2012, 04:10 Beginning Не ну я прикидывал, мол если например кусок не раз... Jun 20 2012, 19:12 _Pasha Цитата(Beginning @ Jun 20 2012, 22:12) Не... Jun 20 2012, 20:21 Beginning Ну хотябы, если дефрагментация началась, то её уже... Jun 20 2012, 20:35 _Pasha Цитата(Beginning @ Jun 20 2012, 23:35) Ну... Jun 21 2012, 05:12 Beginning Наверняка так и есть. Но по поводу этого я не силь... Jun 21 2012, 06:16 _Pasha Цитата(Beginning @ Jun 21 2012, 09:16) Пр... Jun 21 2012, 07:39 _Pasha Цитата(Beginning @ Jun 21 2012, 11:30) Я ... Jun 21 2012, 09:22 Beginning Ну тут я вижу потенциальную проблему. Допустим пам... Jun 21 2012, 09:33 brag ЦитатаЯ уже писал про **p. Придётся везде лепить. ... Jun 21 2012, 09:58 maksimp Цитата(brag @ Jun 21 2012, 13:58) ЦитатаG... Jun 21 2012, 19:13 brag ЦитатаDeadlock - вряд ли.
легко: Поток 1 занял взя... Jun 21 2012, 22:53 brag Полностью согласен с jcxz, сам прорабатывал возмож... Jun 22 2012, 11:36 brag Цитатанесколькими альтернативными режимами
в моей ... Jun 22 2012, 17:23 Axel Цитата(brag @ Jun 22 2012, 20:23) ...и pl... Jun 23 2012, 06:33 brag практически да. только в моем случаи размер пула о... Jun 23 2012, 07:43 Axel Цитата(brag @ Jun 23 2012, 10:43) ...разм... Jun 24 2012, 04:01  ReAl Цитата(Axel @ Jun 24 2012, 07:01) А как В... Jun 24 2012, 06:47   Axel Цитата(ReAl @ Jun 24 2012, 09:47) Можно и... Jun 24 2012, 07:45 brag Тогда уж красивее так вроде, зачем лишний макро?
И... Jun 24 2012, 09:10 ReAl Ага, щас.
Заменяем (так быстрее, чем union редакти... Jun 24 2012, 12:30
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|