@scala_ru

Страница 633 из 1499
Aleksey
29.04.2017
11:13:27
Хотя нет. Int это 2 гига.

Nick
29.04.2017
11:13:28
ну если ток ты не шипилев

Хотя нет. Int это 2 гига.
я поэтому и написал, имеет смысл если тебе нужна работа с большими файлами, 2гб эт мало

Aleksey в твоем случае есть смысл избавится от gc, как примеру сделал это netty

Google
Nick
29.04.2017
11:15:34
чтоб не было пауз

Aleksey
29.04.2017
11:15:52
Мне и так понятно как избавляться от gc. Вопрос только в том где хранить байты. Это должен быть либо обычный байтбуфер, либо direct.

Aleksei
29.04.2017
11:16:17
Ты прямо очень влюблён в нетти, постоянно про него пишешь, как будто сначала был нетти, а только потом хранимки на постгрессе

Nick
29.04.2017
11:16:33
от gc никак не избавиться, но тебе можно будет юзать какой-нибуль parallelgc сборщик, и делать сборки редко

Aleksey
29.04.2017
11:17:04
от gc никак не избавиться, но тебе можно будет юзать какой-нибуль parallelgc сборщик, и делать сборки редко
Это не подходит. Хорошая библиотека должна выдавать приемлимый результат без тюнинга.

Kirill
29.04.2017
11:17:09
опять же смотря что больше надо - меньше напряга для gc или меньше затраты времени на выделение в куче

Aleksey
29.04.2017
11:18:18
опять же смотря что больше надо - меньше напряга для gc или меньше затраты времени на выделение в куче
Выделение в куче быстрые (я вчера в Шипилева спрашивал), дайрект выделяется немного медленнее чем обычный. В моем случае это вообще не принципиально.

Nick
29.04.2017
11:18:23
кстати почему никто не спросил, почему я посоветовал pargc

Aleksei
29.04.2017
11:18:47
Потому что ты любишь давать советы о которых никто не просил

Nick
29.04.2017
11:19:15
я советы не давал, я лишь спросил, почему Алексей решил делать байт буферы

Aleksei
29.04.2017
11:19:23
@gurinderu кстати, я не сноб, но вот тебе http://tsya.ru

Google
Kirill
29.04.2017
11:19:23
кстати почему никто не спросил, почему я посоветовал pargc
потому что он обеспечивает нормальный thrpt в отличие от того же g1

Aleksey
29.04.2017
11:19:52
кстати почему никто не спросил, почему я посоветовал pargc
Шаблоны в Королеве это бутылочное горлышко. Это было понятно с самого начала. Ни один GC не спасет от 10000 аллокаций на каждый чих.

Kirill
29.04.2017
11:20:28
Выделение в куче быстрые (я вчера в Шипилева спрашивал), дайрект выделяется немного медленнее чем обычный. В моем случае это вообще не принципиально.
Тогда всё опять же зависит от того, насколько у тебя будет много этих объектов и насколько большие, если так, то может и есть смысл в оффхипе

Nick
29.04.2017
11:20:35
тогда эт имеет смысл

Kirill
29.04.2017
11:20:43
дай пятюню бро)
доклады Шипилева?

Nick
29.04.2017
11:21:08
доклады Шипилева?
ну про мутаторы я и без него знал) ну да ладно, все равно они полезные

@gurinderu кстати, я не сноб, но вот тебе http://tsya.ru
ты даешь советы, о которых тебя никто не просил

Aleksei
29.04.2017
11:21:57
@gurinderu у меня отличный учитель

Nick
29.04.2017
11:22:34
@fomkin но мне кажется эт будет очень сложным решением

Kirill
29.04.2017
11:22:38
токсичненько

Aleksei
29.04.2017
11:22:42
Сорвалось дол

Aleksey
29.04.2017
11:22:51
Тогда всё опять же зависит от того, насколько у тебя будет много этих объектов и насколько большие, если так, то может и есть смысл в оффхипе
Это и хочется понять. По идее дайрект должен начинать работать нормально от 4k (дефолтный размер страницы). С бенчмарками @gurinderu что-то не так, потому что DirectBB должен быстрее (достаточно почитать код).

@fomkin но мне кажется эт будет очень сложным решением
А что делать? Вот у меня есть шаблоны которые не делают аллокаций. Первый шаг сделан. Теперь надо сделать что бы дифы рассчитывалсь без выделений.

Aleksey
29.04.2017
11:24:41
да с чего ты эт взял то?) наверняка он какой-нибудь malloc внутри себя юзает (над глянуть(
Обычный использует обычный array[]. Дайрект юзает маллок, совершенно верно.

Nick
29.04.2017
11:25:11
ну дык вот и ответ, malloc не такой быстрый

Google
Aleksey
29.04.2017
11:25:32
ты пошел быстро вверх по кривой Шипилева))
Просто у меня из за алокаций в шаблонах действительно все плохо. 100 юзеров на ноду это вообще не дело.

Nick
29.04.2017
11:25:40
правда эт на put и get не должно влиять

Aleksey
29.04.2017
11:25:43
Kirill
29.04.2017
11:25:53
ну типо нативные вызовы, оверхед и всё такое, вопрос будет ли этот оверхед большим по сравнению с затратами ресурсов на gc

Nick
29.04.2017
11:26:01
Aleksey
29.04.2017
11:27:05
ну типо нативные вызовы, оверхед и всё такое, вопрос будет ли этот оверхед большим по сравнению с затратами ресурсов на gc
Обращения к выделенной памяти это не сисколы. После маллока процесс может свободно ходить по выделенным страницам.

Nick
29.04.2017
11:27:26
в общем над глянуть код

Nick
29.04.2017
11:27:36
возможно там какие т проверки есть

Kirill
29.04.2017
11:28:17
В общем, @fomkin тебе нужно оба варианта попробовать, на самом деле замена одного на другое - процесс нехитрый же

Nick
29.04.2017
11:28:36
direct то тож проверки разные делает

Aleksey
29.04.2017
11:28:36
после - да, конечно, я про первоначальное выделение говорил
Оно не имеет значения. Одно одно на каждую сессию в момент подключения. 300 микросекунд на минутную сессию в случае директа против 100 микросекунд на минутную сессию в случае обычного буфера.

Aleksey
29.04.2017
11:29:41
direct то тож проверки разные делает
Меньше. Он интринсиками инты забирает из памяти (если нэтив ордеринг влючен), тогда как обычный буфер вынужден по одному за раз таскать.

Kirill
29.04.2017
11:29:48
да тут чё рассуждать, на самом деле, заменой по сорцам allocate на allocateDirect и всё, другой способ пробовать ) главное бенчи нормальные на это дело

Nick
29.04.2017
11:29:55
да нет там никакого оверхеда

запустите плиз бенчмарк на линуксе

Kirill
29.04.2017
11:30:19
все же дома сидят, какой линукс

Nick
29.04.2017
11:30:27
@fomkin как вариант можно unsafe.get без проверок делать

Aleksey
29.04.2017
11:30:56
@fomkin как вариант можно unsafe.get без проверок делать
Мне нужна функиональность ByteBuffer.

Nick
29.04.2017
11:31:09
@fomkin запусти бенч на линуксе

Google
Nick
29.04.2017
11:31:15
сдается мне, эт маковская фишка

Kirill
29.04.2017
11:32:07
@fomkin как вариант можно unsafe.get без проверок делать
ну нахер этот ансейф, его уберут и че, как ОК сидеть и ныть на эту тему или ждать panama?

Nick
29.04.2017
11:32:49
ну direct тож unsafe юзает)

Kirill
29.04.2017
11:33:08
ну direct тож unsafe юзает)
только директ останется и дальше в паблик апи

Aleksey
29.04.2017
11:33:23
ну direct тож unsafe юзает)
Когда его уберут, он будет юзать что-нибудь другое. На то это приватное API. Его просто заменят на более приватное.

Nick
29.04.2017
11:33:26
да никуда unsafe не денется

пока не парьтесь

Arthur
29.04.2017
11:33:39
честно честно?)

Admin
ERROR: S client not available

Kirill
29.04.2017
11:33:43
он же в 9 уже с ключом только

Aleksey
29.04.2017
11:33:48
сдается мне, эт маковская фишка
Здается мне что это слишком простой бенчмарк.

Nick
29.04.2017
11:34:00
@fomkin возможно

Vadim
29.04.2017
11:34:06
@fomkin а я все ще сомневаюсь, что ты правильно проблему идентифицировал. у тебя объекты маленькие и хранить их за пределами хипа тебе же накладнее будет.

Nick
29.04.2017
11:34:32
Vadim дерево то не маленький обьект

Aleksey
29.04.2017
11:34:38
Вот тут картина совершенно другаяю https://www.javacodegeeks.com/2013/08/which-memory-is-faster-heap-or-bytebuffer-or-direct.html

Nick
29.04.2017
11:34:47
@fomkin там и год другой

Kirill
29.04.2017
11:35:13
"Java is becoming new C/C++ "

Aleksey
29.04.2017
11:35:29
@fomkin а я все ще сомневаюсь, что ты правильно проблему идентифицировал. у тебя объекты маленькие и хранить их за пределами хипа тебе же накладнее будет.
Дерево вообще не маленькое. Тысячи объектов которые могут попасть в старое поколение и десятки тысяч объектов функцонального мусора.

Nick
29.04.2017
11:36:14
Aleksey тем не менее у тебя будут убиваться ноды в дереве в оффхипе?

или ты их просто перезаписывать будешь?

Google
Kirill
29.04.2017
11:36:44
Aleksey тем не менее у тебя будут убиваться ноды в дереве в оффхипе?
и вообще, че ты тут сидишь лясы точишь, иди SN пили, само не запилится )))

Nick
29.04.2017
11:37:09
а еще момент интересен, а если дерево с другого треда решат посмотреть?

Aleksey
29.04.2017
11:37:45
Aleksey тем не менее у тебя будут убиваться ноды в дереве в оффхипе?
Не будет дерева больше. Будет последовательность опкодов.

Nick
29.04.2017
11:38:34
@fomkin я пока не понимаю, что ты сделать хочешь)

Aleksey
29.04.2017
11:40:19
@fomkin я пока не понимаю, что ты сделать хочешь)
Есть RenderContext https://github.com/fomkin/levsha/blob/master/src/main/scala/levsha/TemplateContext.scala#L17. У него есть текстовая версия https://github.com/fomkin/levsha/blob/master/src/main/scala/levsha/TemplateContext.scala#L26 и будет версия которая пишет в буфер опкоды. Потом я в цикле по этим опкодам прохожусь и получаю ченьджсет.

Nick
29.04.2017
11:43:48
хм

да, диф искать будет фаном)

Aleksey
29.04.2017
11:52:30
да, диф искать будет фаном)
Какие сложности ты видишь?

Nick
29.04.2017
11:53:36
я вижу сложность использования for

для большого дерева

хотя если есть offset то может быть норм

Aleksey
29.04.2017
11:55:44
я вижу сложность использования for
Фор - дорого. Там лямбда и итератор. Будет вайл.

Kirill
29.04.2017
11:58:48
вот вам и ФП :)

Nick
29.04.2017
12:00:33
Фор - дорого. Там лямбда и итератор. Будет вайл.
не принципиально, по гигабайтному дереву бегать стремно)

Bernal
29.04.2017
15:31:11
/stat@combot

Combot
29.04.2017
15:31:11
combot.org/chat/-1001034178083

combot.org/chat/-1001034178083

Pavel
29.04.2017
21:28:09
вопрос, а какой клиент обычно юзают для работы с кафкой? Или все сами оборачивают java либу?

я что-то не могу догнать

Страница 633 из 1499