|
|
  |
Экономия RAM. |
|
|
|
Mar 10 2016, 07:21
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (adnega @ Mar 10 2016, 08:29)  А дикари научись различать "виртуальную память" и "кучу"? Увы, нет  , только "научились" слова, смысла которых не понимают, из "интеренету" в изобилии таскать. QUOTE (zombi @ Mar 10 2016, 01:14)  А не морочили людям голову! Пытаетесь морочить голову именно Вы. Тема называется "Экономия RAM" а не извлечение ее из эфира. Один их эффективых путей экономии это многократное и повторное использование ресурсов. Для этого можно использовать менеджеры памяти, или в чистом виде, или узкспециализированые решения постороенные на том же принципе динамического выделения памяти.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 10 2016, 07:32
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(zltigo @ Mar 10 2016, 10:21)  Один их эффективых путей экономии это многократное и повторное использование ресурсов. Для этого можно использовать менеджеры памяти, или в чистом виде, или узкспециализированые решения постороенные на том же принципе динамического выделения памяти. Лет 10 назад я разрабатывал устройство на AVR + asm. ОЗУ в наличии было мало, и для работы со статическим распределением всем бы не хватило. Сделал так: выделил большой кусок, в котором хранил таблицу при штатной работе. А в режиме обновления ПО, когда штатная работа прекращалась и таблицы были не нужны - использовал этот кусок для буфера связи с внешним миром и обновления ПО. Все работало, но про параллельное использование памяти нужно было помнить. На C с динамической памятью все куда прозрачнее, хотя смысл тот же - разделяемый по времени ресурс в виде ОЗУ.
|
|
|
|
|
Mar 10 2016, 07:58
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(zltigo @ Mar 10 2016, 10:46)  Но упаковался и еще осталость чуток. Видимо, для эффективной экономии ОЗУ нужно не только знать размеры переменных, но и знать архитектуру своего ПО. Хотя сейчас напрягаться не принято и проще поставить внешнюю SDRAM и/или выбрать МК с большим количеством набортного ОЗУ. В приложениях с таким функционалом, что приходится использовать TCP/IP, обсуждение размера переменной (1 или 4 байта) вызывает у меня определенные подозрения (что что-то не так).
|
|
|
|
|
Mar 10 2016, 08:19
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(zombi @ Mar 10 2016, 11:01)  Америку открыли Главное обеспечить невозможность одновременного выполнения процессов использующих эту общую область. Вроде, все не так. Никакой блокировки процессов нет. Процесс просит память, менеджер может выделить память или отказать в выделении. С выделенной памятью процесс может делать все что угодно, и другие процессы тут вообще никакой роли не играют. Отказ в выделении памяти процессу нужно как-то обработать. Цитата(zombi @ Mar 10 2016, 11:01)  И если такой возможности нет то и никакой мыныджер не поможет. Обсуждается ситуация, когда такая возможность есть. Может, вам стоит побольше вдумчивее читать и поменьше язвительно писать?
|
|
|
|
|
Mar 10 2016, 10:17
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (adnega @ Mar 10 2016, 10:19)  Обсуждается ситуация, когда такая возможность есть. Навязываемое Вами "обсуждение", откуда взять память, которой нет, абсолютно бессмысленно. Посему речь идет о памяти, котороая есть и которую надо пытаться использовать в разные моменты времени для разных целей. Если такой возможности нет, что практически НЕВЕРОЯТНО, или лениво думать как такое обеспечить, то и разговоров нет. Только Ваш треп ни о чем. QUOTE (adnega @ Mar 10 2016, 09:58)  Видимо, для эффективной экономии ОЗУ нужно не только знать размеры переменных, но и знать архитектуру своего ПО. Для вытягивания последних байтов надо знать уже все  . Но это уже на самом деле большая редкость. Я вот тоже на в работе о которой писал, тоже уже для M8C контроллера последние байты вытягивал, вытянул, плюнул, переделал принципиально, и стало 64 свободных байта. Ну придет серверу отказ на исполнение одной редкой команды, если звезды не так лягут, ну переспросит. QUOTE В приложениях с таким функционалом, что приходится использовать TCP/IP, обсуждение размера переменной (1 или 4 байта) вызывает у меня определенные подозрения (что что-то не так). Одиночной переменной - несомненно, но бывают и солидные массивы данных, где уже счет идет на тысячи таких переменных за каждым из тысяч процессов. При этом слово тысячи не должно особо пугать - на одном из проектов еще на i8085 у меня в свое время было 256 процессов. На первом из опробованных ARM LPC2114 - 1280 процессов. В обоих случаях прикол был в том, что процессы находились в разных состояниях и в статических состояниях обходились достаточно небольшим количеством данных. На переходных режимах процессам добавлялся блок памяти для обслуживания "развития" процесса.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|