Вот ты получил в качестве ответа vector. Что ты должен сделать первым делом? Ты должен ПРОВЕРИТЬ что там не ноль элементов. Не 1 элемент. А именно ДВА. Два мать ево. И эта проверка казалось бы пустяк является mandatory для дальнейшей логики. Ты вообще работая с сигнатурой функций должен всегда исходит из пессимистичного сценария. А что будет если функция не отработала как надо? Этот подход заложен почти во все системные вызовы.
Я тебе упростил контракт. Я заявил. Только ДВА, Два элемента и точка. Тебе не надо ничего проверять.
vitya_brodov, по поводу JDBC. Информация - по состоянию где-то на 2019 год. После этого я не тестил.
Мы обратили внимнание на переполнение памяти при процедурах массовой выгрузки из Postgres. Я анализировал через Eclipse/MA и заметил что по количеству штук лидируют jdbc.datarows входящие в namespace драйвера Postgres. Причем это были не наши бизнес-объекты а именно объекты самого драйвера. При том что внутри цикла мы наши объекты пере-используем. Тоесть не накапливаем.
Было 2 варианта фикса.
- читать пачками (хотя-б по 10000 строк) и закрывать курсор. Это форсировало удаление драйверных tuples, но замедляло execution на стороне БД потому что нам надо было фиксировать окно с сортировкой. Партишенинга не было. База была не наша и реструктурировать таблицу мы не могли.
- открывать курсор с опцией FORWARD и еще с какой-то второй. Не помню. В этом случае JDBC tuples не накапливались в памяти Java но сильно падала скорость выгрузки (2-3 раза). Возможно медленно шел FETCH.
Какое решение было применено я уж не помню. Для нас проект закончился с точки зрения активной разработки. Перевели в поддержку.
Wan-Derer, а ты не богат на слова. И зависимостей не показал.
Смотри. Slf4j - это прокладка. Фасад. Она - не логгирует обычно а выступает посредником.
А в качестве логгера у тебя может стоять либо старая версия log4j либо новая log4j2 либо logback.
Есть еще парочка жлобских библиотек но они - редкие.
Тебе надо взять hello-wolrd с log4j например и использовать его как базу для развития твоего проекта.
Там у тебя будет и файлы и консоль и JMS и вообще чорт знает что.
Две буквы определил. Уже неплохо. Тем более что тессеракт кажется только для скан-документов создавался.
От эффекта дисторсии ему башню сносит. Я думаю что это просто неподходящий инструмент для этой задачи.
Без контекста непонятно. Этот код ни скомпилировать ни проверить. Я рискну предположить что это не Java а Android-Java но ты должен был хотя-бы об этом сказать или дать образец своего gradle файла с зависимостями.
Там еще фокус есть. Если писать не в файл а в MemoryOutputStream то flush можно делать а close кажется
нельзя до тех пор пока ты не взял в левую руку сам буфер в виде байтов. Вот.
Нужно хранить маршруты водителей. с мобилки отправляется маршруты водителей когда они достигает какого то лимита. или когда они сами принудительно останавливает маршрут
А в каком виде они передаются? Можешь приаттачить образец?
Вот ты получил в качестве ответа vector. Что ты должен сделать первым делом? Ты должен ПРОВЕРИТЬ что там не ноль элементов. Не 1 элемент. А именно ДВА. Два мать ево. И эта проверка казалось бы пустяк является mandatory для дальнейшей логики. Ты вообще работая с сигнатурой функций должен всегда исходит из пессимистичного сценария. А что будет если функция не отработала как надо? Этот подход заложен почти во все системные вызовы.
Я тебе упростил контракт. Я заявил. Только ДВА, Два элемента и точка. Тебе не надо ничего проверять.
Ну разве это не прекрасно?