реклама на сайте
подробности

 
 
> Экономия RAM.
Jenya7
сообщение Mar 8 2016, 07:38
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Камень STM32f107VC. получил неприятный сюрприз – закончился RAM. а я еще даже не начал писать.
в связи с этим хотел задать несколько вопросов.
1. если я объявил глобальную переменную uint8_t под нее все равно выделиться регистр?
2. если я засунул стринг или какую нибудь переменную во флэш - при обращении к нему он копируется в RAM или я обращаюсь в область text?
3. может есть какие нибудь трюки позволяющие экономить RAM?

Сообщение отредактировал Jenya7 - Mar 8 2016, 11:13
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Mar 14 2016, 04:48
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Создать глобальное объединение (union) из массивов всех нужных типов, максимально необходимого размера, и пользоваться им по мере необходимости вместо кучи. Годится?
Хочу понять, как куча может помочь сэкономить память? Если требуется хранить глобальные переменные, но никуда не денешься, придется выделить для них память сразу и навсегда. Если локальные, так они где создаются - в стеке или в куче? Кто (что) решает?

P.S. Или приведением указателя к нужному типу пользоваться массивом целых и в хвост и гриву.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 14 2016, 08:24
Сообщение #3


Гуру
******

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



Цитата(ViKo @ Mar 14 2016, 10:48) *
Создать глобальное объединение (union) из массивов всех нужных типов, максимально необходимого размера, и пользоваться им по мере необходимости вместо кучи. Годится?
Хочу понять, как куча может помочь сэкономить память?

Никак. Может привести только к бОльшему расходу памяти.
Куча полезна только если нужно запускать различные задачи, заранее не известные (когда и какую), с заранее неизвестными требованиями к памяти. Но и то - нужна обработка случая нехватки памяти. Да и дефрагментация периодическая или после завершения каждой задачи. Это случай Linux-а и подобных ему систем.

Обычно для ембеддед достаточно:
union MemShare {
struct MemMode1 {
int member1, member2;
...
} memMode1;
struct MemMode2 {
int member1, member2;
...
} memMode2;
...
} memShare;
где Mode1, Mode2, ... - состояния работы устройства с неперекрывающимися структурами данных; которые в свою очередь могут быть union и делиться дальше.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Экономия RAM.   Mar 8 2016, 07:38
- - aaarrr   Цитата(Jenya7 @ Mar 8 2016, 10:38) 1. ес...   Mar 8 2016, 11:19
|- - Jenya7   Цитата(aaarrr @ Mar 8 2016, 17:19) Какой ...   Mar 8 2016, 11:46
||- - aaarrr   Цитата(Jenya7 @ Mar 8 2016, 14:46) а если...   Mar 8 2016, 12:20
||- - adnega   Цитата(aaarrr @ Mar 8 2016, 15:20) Зависи...   Mar 8 2016, 14:31
||- - aaarrr   Цитата(adnega @ Mar 8 2016, 17:31) Я дума...   Mar 8 2016, 14:33
|- - zltigo   QUOTE (aaarrr @ Mar 8 2016, 13:19) Какой ...   Mar 8 2016, 12:34
|- - aaarrr   Цитата(zltigo @ Mar 8 2016, 15:34) Вообще...   Mar 8 2016, 13:19
|- - zltigo   QUOTE (aaarrr @ Mar 8 2016, 15:19) Компил...   Mar 8 2016, 13:26
|- - aaarrr   Цитата(zltigo @ Mar 8 2016, 16:26) Конкре...   Mar 8 2016, 13:33
|- - zltigo   QUOTE (aaarrr @ Mar 8 2016, 15:33) но смы...   Mar 8 2016, 13:47
- - AlexandrY   Цитата(Jenya7 @ Mar 8 2016, 09:38) 3. мо...   Mar 8 2016, 11:49
|- - Jenya7   Цитата(AlexandrY @ Mar 8 2016, 17:49) Пер...   Mar 8 2016, 11:51
- - adnega   А посмотреть листинг и понять куда RAM ушла можно?   Mar 8 2016, 13:39
|- - Jenya7   Цитата(adnega @ Mar 8 2016, 19:39) А посм...   Mar 8 2016, 13:47
- - Jenya7   и все таки? To byte or not to byte? 1 байт или 4 б...   Mar 8 2016, 13:40
|- - zltigo   QUOTE (Jenya7 @ Mar 8 2016, 15:40) и все ...   Mar 8 2016, 13:55
- - aaarrr   1 байт. Что легко можно проверить самостоятельно.   Mar 8 2016, 13:41
- - aaarrr   Цитата(zltigo @ Mar 8 2016, 16:47) Смысл ...   Mar 8 2016, 14:01
|- - zltigo   QUOTE (aaarrr @ Mar 8 2016, 16:01) Мы, ка...   Mar 8 2016, 14:08
|- - aaarrr   Цитата(zltigo @ Mar 8 2016, 17:08) Трудно...   Mar 8 2016, 14:23
|- - zltigo   QUOTE (aaarrr @ Mar 8 2016, 16:23) Это др...   Mar 8 2016, 14:37
- - adnega   Есть версия, что v1 займет 1 байт (sizeof(v1) = 1)...   Mar 8 2016, 14:48
- - zombi   Даже прочитать всё это сложно! не говоря уже о...   Mar 8 2016, 15:16
|- - Jenya7   Цитата(zombi @ Mar 8 2016, 21:16) Даже пр...   Mar 8 2016, 15:39
|- - zltigo   QUOTE (Jenya7 @ Mar 8 2016, 17:39) как вы...   Mar 8 2016, 16:07
|- - Jenya7   Цитата(zltigo @ Mar 8 2016, 22:07) Какая ...   Mar 8 2016, 16:16
||- - adnega   Цитата(Jenya7 @ Mar 8 2016, 19:16) предст...   Mar 8 2016, 16:45
|||- - Jenya7   Цитата(adnega @ Mar 8 2016, 22:45) Адресн...   Mar 8 2016, 17:15
|||- - jcxz   Оптимизировать нужно там, где наибольший расход. 2...   Mar 8 2016, 17:32
||||- - Jenya7   Цитата(jcxz @ Mar 8 2016, 22:32) Оптимизи...   Mar 8 2016, 19:15
|||- - HardEgor   Цитата(Jenya7 @ Mar 8 2016, 23:15) такой ...   Mar 10 2016, 07:46
||- - HardEgor   Цитата(Jenya7 @ Mar 8 2016, 22:16) ну что...   Mar 8 2016, 17:00
|- - zombi   Цитата(zltigo @ Mar 8 2016, 19:07) Очевид...   Mar 8 2016, 16:31
|- - zltigo   QUOTE (zombi @ Mar 8 2016, 18:31) В низко...   Mar 8 2016, 18:32
|- - jcxz   Цитата(zltigo @ Mar 9 2016, 00:32) Слова ...   Mar 8 2016, 18:46
|- - zombi   Цитата(zltigo @ Mar 8 2016, 21:32) Поскол...   Mar 8 2016, 18:53
|- - zltigo   QUOTE (zombi @ Mar 8 2016, 20:53) Еще и т...   Mar 8 2016, 20:33
- - ar__systems   Ставьте 16МБ SDRAM и не придется париться :-)   Mar 8 2016, 23:23
|- - Jenya7   Цитата(ar__systems @ Mar 9 2016, 05:23) С...   Mar 9 2016, 07:27
|- - zltigo   QUOTE (Jenya7 @ Mar 9 2016, 09:27) а я мо...   Mar 9 2016, 14:51
||- - Jenya7   Цитата(zltigo @ Mar 9 2016, 20:51) Не пон...   Mar 9 2016, 15:24
||- - zltigo   QUOTE (Jenya7 @ Mar 9 2016, 17:24) как же...   Mar 9 2016, 17:17
||- - zombi   Цитата(zltigo @ Mar 9 2016, 20:17) Что то...   Mar 9 2016, 23:14
||- - adnega   Цитата(zombi @ Mar 10 2016, 02:14) Ну так...   Mar 10 2016, 06:29
||- - zltigo   QUOTE (adnega @ Mar 10 2016, 08:29) А дик...   Mar 10 2016, 07:21
||- - adnega   Цитата(zltigo @ Mar 10 2016, 10:21) Один ...   Mar 10 2016, 07:32
|||- - zltigo   QUOTE (adnega @ Mar 10 2016, 09:32) Лет 1...   Mar 10 2016, 07:46
|||- - adnega   Цитата(zltigo @ Mar 10 2016, 10:46) Но уп...   Mar 10 2016, 07:58
||- - zombi   Цитата(zltigo @ Mar 10 2016, 11:21) Один ...   Mar 10 2016, 08:01
||- - adnega   Цитата(zombi @ Mar 10 2016, 11:01) Америк...   Mar 10 2016, 08:19
||- - zombi   Цитата(adnega @ Mar 10 2016, 11:19) Обсуж...   Mar 10 2016, 09:15
|||- - adnega   Цитата(zombi @ Mar 10 2016, 12:15) Это Вы...   Mar 10 2016, 09:19
||- - zltigo   QUOTE (adnega @ Mar 10 2016, 10:19) Обсуж...   Mar 10 2016, 10:17
||- - zombi   Цитата(zltigo @ Mar 10 2016, 14:17) Тольк...   Mar 10 2016, 21:37
||- - zltigo   QUOTE (zombi @ Mar 10 2016, 23:37) Интере...   Mar 10 2016, 21:41
|||- - zombi   Цитата(zltigo @ Mar 11 2016, 01:41) Но то...   Mar 10 2016, 22:07
||- - Jenya7   Цитата(zombi @ Mar 11 2016, 02:37) Интере...   Mar 13 2016, 10:25
||- - zombi   Цитата(Jenya7 @ Mar 13 2016, 14:25) помог...   Mar 13 2016, 11:22
||- - adnega   Цитата(zombi @ Mar 13 2016, 14:22) Т.е. с...   Mar 13 2016, 11:31
||- - zombi   Цитата(adnega @ Mar 13 2016, 14:31) Почит...   Mar 13 2016, 11:54
||- - adnega   Цитата(zombi @ Mar 13 2016, 14:54) Т.е. н...   Mar 13 2016, 12:17
||- - zombi   Цитата(adnega @ Mar 13 2016, 16:17) Отриц...   Mar 13 2016, 12:25
||- - adnega   Цитата(zombi @ Mar 13 2016, 15:25) Обвиня...   Mar 13 2016, 14:14
|- - Kabdim   Цитата(Jenya7 @ Mar 9 2016, 10:27) а я мо...   Mar 10 2016, 11:44
- - amaora   В динамическом выделении будет смысл если, освобод...   Mar 9 2016, 12:24
- - Jenya7   я вот думаю а что если использовать внешнюю память...   Mar 9 2016, 13:15
- - sigmaN   Хахаха у zombi бомбануло прям так не слабо по ходу...   Mar 13 2016, 07:56
|- - zombi   ...   Mar 13 2016, 20:38
- - ViKo   В однозадачном режиме использовать кучу безопасно....   Mar 13 2016, 11:06
|- - Jenya7   Цитата(ViKo @ Mar 13 2016, 17:06) В одноз...   Mar 13 2016, 12:20
- - adnega   Тема исчерпана - неплохо бы закрыть и последнее по...   Mar 13 2016, 20:40
|- - zombi   Цитата(adnega @ Mar 14 2016, 00:40) Тема ...   Mar 13 2016, 21:19
|- - zltigo   QUOTE (jcxz @ Mar 14 2016, 10:24) Никак. ...   Mar 14 2016, 09:32
|- - jcxz   Цитата(zltigo @ Mar 14 2016, 15:32) Разум...   Mar 14 2016, 14:00
|- - zltigo   QUOTE (jcxz @ Mar 14 2016, 16:00) Прочита...   Mar 14 2016, 14:57
- - zombi   ТС вопрошает Цитата(Jenya7 @ Mar 8 2016, 11...   Mar 14 2016, 22:38
|- - zltigo   QUOTE (zombi @ Mar 15 2016, 00:38) Вниман...   Mar 14 2016, 23:19
- - sigmaN   ЦитатаА помогли ли ТС ваши советы? И где конкретно...   Mar 16 2016, 07:22
- - ar__systems   Неужели наконец-то всю память сэкономили?   Mar 23 2016, 04:41
- - Jenya7   Цитата(ar__systems @ Mar 23 2016, 09:41) ...   Mar 23 2016, 07:34


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 02:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01493 секунд с 7
ELECTRONIX ©2004-2016