А в памяти моей такая скрыта мощь...
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
А в памяти моей такая скрыта мощь...
По моим многолетним (хоть и ограниченным) наблюдениям я практически никогда не видел чтобы при планировании, дизайне систем учитывался расход памяти.
Экономим время разработки, стоимость сопровождения, на худой конец CPU time, но не стоимость памяти.
Например: добавить "слой" веб сервисов, который принимают запросы от других сервисов и перебрасывают далее по инстанциям - нет проблем...
Или кэш: все что читаем из базы или иного внешнего ресурса - отбросим в кеш, авось пригодится. Или вообще - загрузим в память заранее (in memory storage...)
Martin Fowler говорил о cache invalidation, как одной из главных проблем CS.
А о том что насколько реально этот кеш помогает, какой процент записей читается из кеша - как-то редко думают...
Но я уже много лет живу под камнем, трендов не улавливаю.
Мне интересно как в современных системах с этим обстоит дела?
Особенно в облаках: сколько можно сэкономить "в масштабах страны" если хотя бы отчасти пытаться расходовать память не совсем безумно?
Есть ли сейчас тренд на экономию памяти?
Экономим время разработки, стоимость сопровождения, на худой конец CPU time, но не стоимость памяти.
Например: добавить "слой" веб сервисов, который принимают запросы от других сервисов и перебрасывают далее по инстанциям - нет проблем...
Или кэш: все что читаем из базы или иного внешнего ресурса - отбросим в кеш, авось пригодится. Или вообще - загрузим в память заранее (in memory storage...)
Martin Fowler говорил о cache invalidation, как одной из главных проблем CS.
А о том что насколько реально этот кеш помогает, какой процент записей читается из кеша - как-то редко думают...
Но я уже много лет живу под камнем, трендов не улавливаю.
Мне интересно как в современных системах с этим обстоит дела?
Особенно в облаках: сколько можно сэкономить "в масштабах страны" если хотя бы отчасти пытаться расходовать память не совсем безумно?
Есть ли сейчас тренд на экономию памяти?
-
- Уже с Приветом
- Posts: 549
- Joined: 07 Jan 2016 13:04
Re: А в памяти моей такая скрыта мощь...
В подавляющем большинстве случаев выгоднее купить еще серверов, чем тратить бабло и время на оптимизацию. Опять же у большинства продуктов жизненный цикл довольно короткий.
-
- Уже с Приветом
- Posts: 15770
- Joined: 01 Mar 2008 15:14
Re: А в памяти моей такая скрыта мощь...
В каких нибуть встроенных системах имеет смысл, а так память стоит копейки или ее все равно пользователь покупает, какой смысл?
Нужно понимать, что основная цель прогресса в IT = уменьшить стоимость разработки ПО
Нужно понимать, что основная цель прогресса в IT = уменьшить стоимость разработки ПО
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: А в памяти моей такая скрыта мощь...
Если вы в пещере на мейнфреме, то придется память экономить
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: А в памяти моей такая скрыта мощь...
Учитывая что в современные сервера уже террабайты памяти можно ставить, думаю что не актуально.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
Re: А в памяти моей такая скрыта мощь...
И для облаков это не проблема?
Когда куча VM на одном сервере - разве память не становится более критичным ресурсом?
Например - участвует ли ли объём памяти в ценообразовании? Или только время работы?
Когда куча VM на одном сервере - разве память не становится более критичным ресурсом?
Например - участвует ли ли объём памяти в ценообразовании? Или только время работы?
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: А в памяти моей такая скрыта мощь...
Становится. VM по разному стоят.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 8485
- Joined: 02 Aug 2003 01:32
- Location: SPb->SFBA
Re: А в памяти моей такая скрыта мощь...
В embedded приложениях всегда бюджет памяти специфицируется на все.
В облаках response time обычно важен, а сколько оно памяти там жрет в какой-то виртуалке - какая нафиг разница. Начнет падать - добавят памяти.
В облаках response time обычно важен, а сколько оно памяти там жрет в какой-то виртуалке - какая нафиг разница. Начнет падать - добавят памяти.
-
- Уже с Приветом
- Posts: 6677
- Joined: 02 Sep 2003 15:19
- Location: Через речку от Манхэттена
Re: А в памяти моей такая скрыта мощь...
каждое утро начинаю с того, что прибиваю пару процессов Файрфокса, который умудряется в спящем режиме сожрать всю доступную память ))))))
и ведь куча лет этой софтине, а с памятью так и не научилась работать )))
Резюме — это список дел, которые ты больше никогда не хочешь делать.
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
Re: А в памяти моей такая скрыта мощь...
То есть - устойчивый консенсус в том, что память всегда можно взять из тумбочки, и добавить?В embedded приложениях всегда бюджет памяти специфицируется на все.
В облаках response time обычно важен, а сколько оно памяти там жрет в какой-то виртуалке - какая нафиг разница. Начнет падать - добавят памяти.
-
- Уже с Приветом
- Posts: 946
- Joined: 24 Sep 2013 05:58
- Location: US\GA
-
- Уже с Приветом
- Posts: 28294
- Joined: 29 Aug 2000 09:01
- Location: SPB --> Gloucester, MA, US --> SPB --> Paris
Re: А в памяти моей такая скрыта мощь...
На самом деле чем больше память, тем важнее писать cache-friendly code
Например, производительность двух фрагментов кода ниже отличается в 20 раз примерно:
Например, производительность двух фрагментов кода ниже отличается в 20 раз примерно:
Code: Select all
int sum = 0;
for (int i=0; i<10000; i++)
for (int j=0; j<10000; j++)
sum += A[i,j];
Code: Select all
int sum = 0;
for (int i=0; i<10000; i++)
for (int j=0; j<10000; j++)
sum += A[j,i];
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
-
- Уже с Приветом
- Posts: 6449
- Joined: 15 May 2003 00:04
- Location: LA
-
- Уже с Приветом
- Posts: 15311
- Joined: 30 Apr 2003 16:43
Re: А в памяти моей такая скрыта мощь...
Не экономить, а использовать разумно. Как впрочем и любой другой ресурс на МФ используются.
По части хранения данных БД в "кэшах" (buffer pools) DB2 представляет достаточно параметров чтобы понять насколько эффективно используется выделенная под них память. Кроме того, в зависимости от параметров, заданых в SLA, WLM совместно с DB2 способeн динамически изменять размер буферных пулов с тем чтобы обеспечить выполнение SLA.
-
- Уже с Приветом
- Posts: 15311
- Joined: 30 Apr 2003 16:43
Re: А в памяти моей такая скрыта мощь...
В системах с виртуальной памятью и "интеллекктуальным" механизмом "кражи" страниц в реальной памяти (frames) происходит адаптивный процесс накопления используемых страниц в реальной памяти.
Так что забивать реальную память неиспользуемыми страницами данных вовсе не обязательно, и даже глупо.
Так что забивать реальную память неиспользуемыми страницами данных вовсе не обязательно, и даже глупо.
-
- Уже с Приветом
- Posts: 5834
- Joined: 12 Apr 2001 09:01
- Location: нэподалеку от Ireland
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
Re: А в памяти моей такая скрыта мощь...
(и когда уже на wintel виртуальную память сделают?... )zVlad wrote: ↑13 Feb 2018 15:12 В системах с виртуальной памятью и "интеллекктуальным" механизмом "кражи" страниц в реальной памяти (frames) происходит адаптивный процесс накопления используемых страниц в реальной памяти.
Так что забивать реальную память неиспользуемыми страницами данных вовсе не обязательно, и даже глупо.
Засада в том, что приложения все данные которые читаются извне (даже с диска, который может иметь свой кеш, плюс кеш на уровне ОС) откладывают в кеш на уровне приложения (ассоциативный массив и проч.)
Таким образом для системы эта память вполне себе используемая, и отбросить её в долгий ящик невозможно.
-
- Уже с Приветом
- Posts: 15770
- Joined: 01 Mar 2008 15:14
Re: А в памяти моей такая скрыта мощь...
Вы же слышали о том, что преждевременная оптимизация - зло? Так зачем экономить память пока ее все еще хватает?
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
Re: А в памяти моей такая скрыта мощь...
Вообще-то неэкономия памяти, бездумное кеширование - тоже результат преждевременной оптимизации: во многих(большинстве) случаях никто не смотрит насколько кеширование реально помогает.
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
-
- Уже с Приветом
- Posts: 15311
- Joined: 30 Apr 2003 16:43
Re: А в памяти моей такая скрыта мощь...
Я не говорил что на wintel нет виртуальной памяти.....Palych wrote: ↑13 Feb 2018 15:30(и когда уже на wintel виртуальную память сделают?... )zVlad wrote: ↑13 Feb 2018 15:12 В системах с виртуальной памятью и "интеллекктуальным" механизмом "кражи" страниц в реальной памяти (frames) происходит адаптивный процесс накопления используемых страниц в реальной памяти.
Так что забивать реальную память неиспользуемыми страницами данных вовсе не обязательно, и даже глупо.
Засада в том, что приложения все данные которые читаются извне (даже с диска, который может иметь свой кеш, плюс кеш на уровне ОС) откладывают в кеш на уровне приложения (ассоциативный массив и проч.)
Таким образом для системы эта память вполне себе используемая, и отбросить её в долгий ящик невозможно.
-
- Уже с Приветом
- Posts: 946
- Joined: 24 Sep 2013 05:58
- Location: US\GA
-
- Уже с Приветом
- Posts: 13682
- Joined: 16 Jan 2001 10:01
Re: А в памяти моей такая скрыта мощь...
Извиняюсь, не догнал.zVlad wrote: ↑13 Feb 2018 16:30Я не говорил что на wintel нет виртуальной памяти.....Palych wrote: ↑13 Feb 2018 15:30(и когда уже на wintel виртуальную память сделают?... )zVlad wrote: ↑13 Feb 2018 15:12 В системах с виртуальной памятью и "интеллекктуальным" механизмом "кражи" страниц в реальной памяти (frames) происходит адаптивный процесс накопления используемых страниц в реальной памяти.
Так что забивать реальную память неиспользуемыми страницами данных вовсе не обязательно, и даже глупо.
Засада в том, что приложения все данные которые читаются извне (даже с диска, который может иметь свой кеш, плюс кеш на уровне ОС) откладывают в кеш на уровне приложения (ассоциативный массив и проч.)
Таким образом для системы эта память вполне себе используемая, и отбросить её в долгий ящик невозможно.
То есть - если данные кешируются, но кеш не используется - эти данные в итоге упадут в своп?
Я не спец во внутреннем устройстве современных систем, типа JVM.
Но на основании простого житейского опыта предположу что даже теоретически никуда эти данные не выпадут.
Прошу поправить мои доводы тех кто в теме:
1. На уровне ОС память распределяется/свопится страницами. JVM управляет объектами, которые неизбежно раскидываются между страницами.
2. Объекты в JVM постоянно "дергаются" сборщиком мусора.
-
- Уже с Приветом
- Posts: 143
- Joined: 29 Apr 2014 12:22
Re: А в памяти моей такая скрыта мощь...
Ну точно не в 20, а наверное раза в полтора, ну может в 2. A[i,j]? Что за языг?Dmitry67 wrote: ↑13 Feb 2018 12:28 На самом деле чем больше память, тем важнее писать cache-friendly code
Например, производительность двух фрагментов кода ниже отличается в 20 раз примерно:
Code: Select all
int sum = 0; for (int i=0; i<10000; i++) for (int j=0; j<10000; j++) sum += A[i,j];
Code: Select all
int sum = 0; for (int i=0; i<10000; i++) for (int j=0; j<10000; j++) sum += A[j,i];