powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream и память
25 сообщений из 132, страница 2 из 6
Stream и память
    #40126247
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep

колекция UUID -по ней получаем из кэша- стрим объектов - мапим в стрим других объектов( например в лонги) фильтруем и считаем количество элементов

вот на каждом этом этапе интересует поведение памяти

Дьявол в деталях. Я - не специалист в Хазел. Я даже его не использовал. Но я использовал Apache Ignite.
Это такой себе брат-близнец по функционалу. И вот учет памяти в Ignite осложняется тем что объекты
не лежат в heap. Они лежат в оперативке но не в JavaHeap. Это одна деталь. Надо узнать как Хазел
хранит ключи и значения. Возможно он тоже как-то оптимизирует техники хранения. Это нужно
поскольку во всех in-memory кешах делают защиту от лишней активности GC кидая их нативную
память.

И еще одна деталь. Начиная с Java 14 появился новй API (кажется foreign memory) который чего-то
там улучшает для offheap. Проверь какая Java. На что влияет? Ну как всегда на удобства использования.
И надо проверить как это использует Hazel.

Что еще посмотреть? Посмотри JMX-компоненты которые мониторят память в Hazel. Желательно
их дампить в текстовый файл каждые 3-5 секунд и отображать в Graphana. Это важно во время твоего тестирования ключей.

Тоесть такой юзкейс который ты придумал как учёт количества ключей - вытекает в такой сложный
investigation.
...
Рейтинг: 0 / 0
Stream и память
    #40126248
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep
я думаю они будут целиком загружены в хип
слишком много "я думаю".
Если загружены то память не изменится. Если не загружены то памятью заведует ПО а не сборщик мусора.
И т.д. и т.п.
Без проверки твои догадки ноль.
...
Рейтинг: 0 / 0
Stream и память
    #40126250
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У хазел настройка по умолчснию хранить в памяти 1000 обьектов. Остыльные в хранилище.
Тут мы тыкаем палочкой в слона и даже не видим ответ.
Так как ТС не у компа и не у кода.
...
Рейтинг: 0 / 0
Stream и память
    #40126253
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep
в целом ты прав,но забываешь о том ,что объекты изнчально находятся в кеще(в данном случае это хезель каст) и чтобы стрим начал с ними работать я думаю они будут целиком загружены в хип
"Смешались в кучу кони, люди ..."
Если ваш Hazelcast работает в процессе вашей JVM, то рантайм, скорее всего, предоставит вам ссылки на объекты из кэша Hazelcast без дополнительных усилий с вашей стороны.
Ну или читатйте доки этого самого Hazelcast-а.
...
Рейтинг: 0 / 0
Stream и память
    #40126257
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Начиная с Java 14 появился новй API (кажется foreign memory) который чего-то
там улучшает для offheap.
Вот не надо этого ...
В Java14 появился JEP 352: Non-Volatile Mapped Byte Buffers для NIO и с ограничениями на поддерживаемые системы.
А JEP 393: Foreign-Memory Access API (Third Incubator) продолжал оставаться инкубаторе на Java16.
И в Java17 он тоже остаётся в инкубаторе как часть JEP 412: Foreign Function & Memory API (Incubator) .
...
Рейтинг: 0 / 0
Stream и память
    #40126259
adminDontSleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
adminDontSleep
в целом ты прав,но забываешь о том ,что объекты изнчально находятся в кеще(в данном случае это хезель каст) и чтобы стрим начал с ними работать я думаю они будут целиком загружены в хип
"Смешались в кучу кони, люди ..."
Если ваш Hazelcast работает в процессе вашей JVM, то рантайм, скорее всего, предоставит вам ссылки на объекты из кэша Hazelcast без дополнительных усилий с вашей стороны.
Ну или читатйте доки этого самого Hazelcast-а.

хезель каст в данном случае работает как отдельный процесс в докер контейнере
...
Рейтинг: 0 / 0
Stream и память
    #40126261
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep
Basil A. Sidorov
пропущено...
"Смешались в кучу кони, люди ..."
Если ваш Hazelcast работает в процессе вашей JVM, то рантайм, скорее всего, предоставит вам ссылки на объекты из кэша Hazelcast без дополнительных усилий с вашей стороны.
Ну или читатйте доки этого самого Hazelcast-а.

хезель каст в данном случае работает как отдельный процесс в докер контейнере
все таки ппреходим на тему - как работает хезель. Это будет правильнее.
...
Рейтинг: 0 / 0
Stream и память
    #40126277
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adminDontSleep
хезель каст в данном случае работает как отдельный процесс в докер контейнере
Тогда я опять худею:
1. Процессы изолированы и бессмысленно рассуждать откуда именно ваш процесс берёт объекты: они у него точно есть (вместе со всеми их данным) и они (все) - в куче.
2. "Оптимизация" использования памяти вашим процессом - оно точно надо???
...
Рейтинг: 0 / 0
Stream и память
    #40126279
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Он боится что выскочит райзе - Память кончилась.
...
Рейтинг: 0 / 0
Stream и память
    #40126331
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, не надо домысливать за человека.
Я, например, домысливаю, что он занимает преждевременной оптимизацией, но, всё-таки, не пытаюсь озвучивать свои домыслы.
...
Рейтинг: 0 / 0
Stream и память
    #40126333
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думаю тема топика - оптимизация памяти. Но мне кажется что она не про Java а про Хазелкаст.
Надо читать его мануалы и учебники. Если выборка всех ключей из Hazelcast - это антипаттерн, тогда
про это должно быть упоминание. Убежден что эта тема проскакивала в Quora, Stackover e.t.c.

По поводу стримов. Я очень сильно рекомендую автору переписать этот блок на обычный цикл for.

Код: java
1.
2.
3.
4.
5.
        return surveyResultIdentitiesPersistDelayedMap.keySet()
                .stream()
                .map(this::getCachedByIdentity)
                .filter(x -> x.getSurveyId() == surveyId)
                .count();



Это займет 5 минут. Всяко быстрее чем еще много страниц обсуждать несуществующие технические долги.
И тогда все вопросы по Java стримам отпадут и останутся только чистые вопросы эксплуатации Хазелкаст.

Будем рубить ненужные хвосты.
...
Рейтинг: 0 / 0
Stream и память
    #40126336
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
PetroNotC Sharp, не надо домысливать за человека.
Я, например, домысливаю, что он занимает преждевременной оптимизацией, но, всё-таки, не пытаюсь озвучивать свои домыслы.

Преждевременная оптимизация для чего?
Ответ - для того чтобы не было райзе по памяти. Или вы не память оптимизируете?
Очевидность а не домыслы))) LOL
...
Рейтинг: 0 / 0
Stream и память
    #40126337
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ничего он не поправит, не залогирует и не проверит.
Он выше сказал.
А значит топик тихо умрет.
...
Рейтинг: 0 / 0
Stream и память
    #40126343
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp, придержи коней

Если используется правильный LRU то чтение кеша вызовет только рециркуляцию сущностей
но не вызовет обязательно OutOfMemory.
...
Рейтинг: 0 / 0
Stream и память
    #40126345
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
PetroNotC Sharp, придержи коней

Если используется правильный LRU то чтение кеша вызовет только рециркуляцию сущностей
но не вызовет обязательно OutOfMemory.
разумеется.
Попробуй сам скажи для чего автор ОПТИМИЗИРУЕТ.
Цель то какая?
Слава богу в термине Оптимизация у нас консенсус
...
Рейтинг: 0 / 0
Stream и память
    #40126348
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может ему задачу такую поставили. Разобраться. Вот он сидит и разбирается.
Не всегда люди приходят в sql.ru с конкретными вопросами. Иногда с сомнениями.
Вот почитай посты Андрейки. О чем там? Я не понимаю. Просто эмоциональный блог.
...
Рейтинг: 0 / 0
Stream и память
    #40126351
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот выборка ключей по предикату

https://docs.hazelcast.com/hazelcast/5.0/query/querying-maps-predicates

Наподобие SELECT .. WHERE в базах данных.
...
Рейтинг: 0 / 0
Stream и память
    #40126355
adminDontSleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Может ему задачу такую поставили. Разобраться. Вот он сидит и разбирается.
Не всегда люди приходят в sql.ru с конкретными вопросами. Иногда с сомнениями.
Вот почитай посты Андрейки. О чем там? Я не понимаю. Просто эмоциональный блог.

все верно есть задача - а я выбираю как лучше сделать,объекты находятся в кеше( хезель каст) -
нужно взять все имеющиеся там объекты взять у них атрибут по нему отфильтровать и посчить сумму объектов

чтобы это сделать можно пойти несколькими путями
1.достать из кеша все эти объекты и сделать то о чем я писал в начале топика- но меня смушает тот факт что я буду тянуть в хип по сути не нужные мне объекты чтобы их просто посчитать
2.можно сделать это средствами хезель каста - тоже не выглядит как суперпроизводительное решение

да все верно это преждевременная оптимизация- но и собственно интерес к тому,как это будет выглять в памяти
...
Рейтинг: 0 / 0
Stream и память
    #40126358
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот чудак. Делай средствами Хазелькаста. Или ты думаешь что ты умнее и хитрее его создателей?
...
Рейтинг: 0 / 0
Stream и память
    #40126363
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Может ему задачу такую поставили. Разобраться. Вот он сидит и разбирается.
Не всегда люди приходят в sql.ru с конкретными вопросами. Иногда с сомнениями.
Вот почитай посты Андрейки. О чем там? Я не понимаю. Просто эмоциональный блог.
ну ему и сказано. Без работы руками а просто бла бла топик умрет.
Ему решать)
...
Рейтинг: 0 / 0
Stream и память
    #40126364
adminDontSleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Вот чудак. Делай средствами Хазелькаста. Или ты думаешь что ты умнее и хитрее его создателей?

хорошо вот средствами хезелькаста

Код: java
1.
2.
3.
4.
5.
public long getSurveyResultInProgressCount(long surveyId) {
    PredicateBuilder.EntryObject e = Predicates.newPredicateBuilder().getEntryObject();
    Predicate predicate =e.get("surveyId").equal(surveyId);
    return surveyResultIMap.values(predicate).size();
  }



я правильно понимаю что вот эта строчка
Код: java
1.
surveyResultIMap.values(predicate)

все таки вытащит в хип джава процесса эту коллекцию - пусть и уже отфильтрованную ,либо же в хип попадет только size()
...
Рейтинг: 0 / 0
Stream и память
    #40126369
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бы простыми словами...

Вот у тебя в базе лежит 10 000 результатов опросов (survey) к примеру. Из них по ключу ты выберешь
допустим 5%. Почему 5? Я не знаю. Я просто так решил. Можешь взять 20% неважно.

Но я думаю что Хазел умеет срезать углы на поворотах и для подсчета штук сделат
ровно тот объем вычислений что надо. Но не будет процессить 100% сущностей.

Вот я так рассуждаю.
...
Рейтинг: 0 / 0
Stream и память
    #40126374
adminDontSleep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton
Как бы простыми словами...

Вот у тебя в базе лежит 10 000 результатов опросов (survey) к примеру. Из них по ключу ты выберешь
допустим 5%. Почему 5? Я не знаю. Я просто так решил. Можешь взять 20% неважно.

Но я думаю что Хазел умеет срезать углы на поворотах и для подсчета штук сделат
ровно тот объем вычислений что надо. Но не будет процессить 100% сущностей.

Вот я так рассуждаю.


ну я с тобой тут согласен - но мы все таки явно не выяснили как под капотом ведет себя стрим- может ( конечно нет,но всеже)
тут ворпос тоже ребром - кеш так же будет процессиить эту мапу,и так же тратить ресурсы свои на это и тут вопрос где будет оптимальней
так же мы в случае с хезель часть работы возложим на кеш часть вытащим в джава процесс - тоесть не все так однозначно как ты говоришь
...
Рейтинг: 0 / 0
Stream и память
    #40126379
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Померяй время отклика в двух случаях.
...
Рейтинг: 0 / 0
Stream и память
    #40126380
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Померяй время отклика в двух случаях.
вооооот)).
Без работы руками никак
...
Рейтинг: 0 / 0
25 сообщений из 132, страница 2 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream и память
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]