@jvmchat

Страница 2777 из 2890
Anton
04.09.2018
09:02:32
я только что с поезда с нодой вышел
это ты зря, получше тырпрайза на jee, имхо. хотя по идее почти всё лучше тырпрайза

Enterpise
04.09.2018
09:02:39
апгрейд в xml на новую версию не помог

еще раз: в ноде ты будешь не разрабатывать микросервисы

Google
Enterpise
04.09.2018
09:04:02
ты будешь менять пакеты

Pavel
04.09.2018
09:04:43
Нужно сразу на уровне БД фильтровать.
оки :) так я тоже умею и делаю, когда можно

Anton
04.09.2018
09:05:02
ты будешь менять пакеты
нет же, значит ты просто не умеешь её готовить, не надо свдить по негативному опыту за всю технологию

Enterpise
04.09.2018
09:07:34
а фирмы

проект на нодье с треском провалился

Таир
04.09.2018
09:10:36
Mikhail
04.09.2018
09:10:45
проект на нодье с треском провалился
если фирма занимается hype-dirven development, то что угодно провалится

Таир
04.09.2018
09:10:50
что ты имеешь в виду?
в данном случае ты как делаешь?

Mikhail
04.09.2018
09:11:06
надо понимать, зачем и почему ты выбираешь какую-то технологию

Anton
04.09.2018
09:11:28
проект на нодье с треском провалился
всякое бывает, может там и вообще не нода была нужная, а другой интсрумент под ту задачу. или в принципе было мало компетенции по данной технологии, и это был откровенный риск

Luger
04.09.2018
09:11:41
Google
Mikhail
04.09.2018
09:11:58
если вы не подумав взяли технологию и провалились с ней - ну сорян, это вы виноваты, а не технология

Anton
04.09.2018
09:12:34
Ага, и умеешь ли ею пользоваться
ну... таки да, оче желательно

Enterpise
04.09.2018
09:12:45
https://stackoverflow.com/q/52162804/444079

Pavel
04.09.2018
09:13:21
в данном случае ты как делаешь?
в моём случае логика на джаве, в базе не могу её выполнить, и проблема не в логике (она быстрая, профиль же делал), а в том, что течёт память по строкам

Pavel
04.09.2018
09:14:33
а как ты понял, что она течет?
из 8ГБ сожрано 8 под char[], byte[], byte[][]

Таир
04.09.2018
09:15:02
из 8ГБ сожрано 8 под char[], byte[], byte[][]
ну это только симптом, а диагноз еще не факт что утечка

Таир
04.09.2018
09:15:40
просто если ты данные в память выгружаешь, то логично, что они забивают память

Pavel
04.09.2018
09:15:50
ну это только симптом, а диагноз еще не факт что утечка
но сами объекты даже целиком в памяти меньше отъедают, не говоря о том, что цель их выгружать вовремя

Таир
04.09.2018
09:16:14
в JDBC есть поточный режим, пробовал его?

Pavel
04.09.2018
09:16:40
в JDBC есть поточный режим, пробовал его?
нету, кроме новой либы, которую не пробовал

Таир
04.09.2018
09:17:30
нету, кроме новой либы, которую не пробовал
код показать можешь, где ты обрабатываешь ResultSet

?

Pavel
04.09.2018
09:18:03
могу, в личку файл кинуть?

не сюда же файлами кидаться

Tolegen
04.09.2018
09:18:56
из 8ГБ сожрано 8 под char[], byte[], byte[][]
8ГБ под жабу это как-то несерьёзно

Таир
04.09.2018
09:19:18
не сюда же файлами кидаться
лучше онлайн, если не секретный файл, чтобы другие тоже выразили мнение, я то не эксперт

коллективный разум и тп

Google
Pavel
04.09.2018
09:19:55
лучше онлайн, если не секретный файл, чтобы другие тоже выразили мнение, я то не эксперт
файл обработки ResultSet мало кто захочет смотреть по этой проблеме, я вангую

Nikita
04.09.2018
09:20:26
Vasili
04.09.2018
09:20:49
8ГБ под жабу это как-то несерьёзно
всё зависит от проекта :)

Tolegen
04.09.2018
09:21:03
Ну и почувствовать что твой код не так уж и плох тоже хороший бонус

Tolegen
04.09.2018
09:21:42
я прямо смущаюсь :)
Да ладна) все грешны)

Иннокентий
04.09.2018
09:21:50
А почему на уровне бд не фильтруешь? Какая логика мешает?

Pavel
04.09.2018
09:22:12
А почему на уровне бд не фильтруешь? Какая логика мешает?
бизнес-логика в джаве реализована, что можно, вываливается и так на БД

Иннокентий
04.09.2018
09:23:25
Наверное что то не так в проектировании бд

Pavel
04.09.2018
09:23:25
А почему на уровне бд не фильтруешь? Какая логика мешает?
ещё раз сакцентирую — проблема не в тормозах, проблема в отжирании памяти, зашкаливающем за все разумные границы

Tolegen
04.09.2018
09:24:02
А почему нельзя побольше памяти дать?)

Может ему хватит обработать

Pavel
04.09.2018
09:24:42
-> 8ГБ -> разумные пределы
есть понятие о том, сколько оно должно занимать, и с какой скоростью должно удаляться из памяти

Mikhail
04.09.2018
09:24:43
ещё раз сакцентирую — проблема не в тормозах, проблема в отжирании памяти, зашкаливающем за все разумные границы
Делаешь хипдамп, загружаешь его в mat и смотришь, что за объекты и почему они не выгружаются

Tolegen
04.09.2018
09:25:45
Кстати а какая у тебя JVM?

elefus
04.09.2018
09:25:53
char[], byte[], byte[][]
так ты ищи от корней, где хранятся ссылки на эти массивы

Google
Tolegen
04.09.2018
09:25:58
В новых вроде добавляли оптимизации по хранению строк

Mikhail
04.09.2018
09:26:08
char[], byte[], byte[][]
А кто ссылки на них держит?

Pavel
04.09.2018
09:26:33
Nikita
04.09.2018
09:27:08
char[], byte[], byte[][]
а вы вообще уверены, что для процессинга такого количества записей вашего размера хватит 8 гб? прикинуть примерный размер памяти как число записей * размеры колонки в БД

Иннокентий
04.09.2018
09:27:15
Лучше решать проблему в корне, например на уровне бд, чтоб не вытаскивать несколько лямов и оттуда отфильтровать 1000

Pavel
04.09.2018
09:27:19
А кто ссылки на них держит?
как бы понять ещё — по хипдампу я не уловил, но 95% уверен, что это строки

Nikita
04.09.2018
09:27:21
как уже говорили, оно может не течь, а тупо не вмещать в себя необходимый объём

Admin
ERROR: S client not available

Mikhail
04.09.2018
09:27:48
Иннокентий
04.09.2018
09:28:42
Pavel
04.09.2018
09:28:45
Чем не вариант?
тем, что логика в джаве должна отработать

Tolegen
04.09.2018
09:29:31
Попробуй на 10 жвм запуститься. Там хранение строк оптимизировали

Может и хватит 8 ГБ

Но что-то есть ощущение что для обработки миллионов записей БД этого мало

Читай данные порциями

Google
Pavel
04.09.2018
09:31:15
Читай данные порциями
я стримлю вообще, мне в единицу времени только одна нужна из них

Tolegen
04.09.2018
09:31:29
Читай буффером

И пускай в процессинг

Pavel
04.09.2018
09:31:46
Ну а зачем тогда миллионы читать в память?
я и пытаюсяь не читать их в память разом

мне их надо прокачать сквозь память

в этом процессе в памяти залипают [имхо] строки

И пускай в процессинг
у меня spliterator, чем не буффер

Tolegen
04.09.2018
09:33:27
у меня spliterator, чем не буффер
Так из БД в буфер читай)

Есть же BufferedInputStream как пример

elefus
04.09.2018
09:34:27
у меня spliterator, чем не буффер
а какой сплитератор?

Tolegen
04.09.2018
09:35:27
Увеличить память вдвое

Pavel
04.09.2018
09:35:44
а какой сплитератор?
IMMUTABLE | NONNULL | SUBSIZED | DISTINCT по JDBC из PostgreSQL

Увеличить память вдвое
это я услышал, это понятно

Dmitry
04.09.2018
09:37:14
@pled76 выскажу предположение: попробуйте проверить успевает ли gc убирать те количества объектов, которые создаются и перестают использоваться пока вы грузите данные из базы. Сталкивался с подобным поведением у себя в проекте

Таир
04.09.2018
09:37:26
короче, рабочая теория https://jdbc.postgresql.org/documentation/head/query.html#fetchsize-example

нужно включить использование курсора в постгре

Страница 2777 из 2890