@kotlin_lang

Страница 38 из 982
Boris
12.02.2017
21:19:51
корне

Руслан
12.02.2017
21:19:56
ага, есть такое

Boris
12.02.2017
21:20:10
и томуподобной фигни

я столько говна с этом шадуом съел

Google
Boris
12.02.2017
21:20:47
больше только со спринг-бутом ?

Руслан
12.02.2017
21:21:27
а может еще вспомнишь что-то конкретное?

Boris
12.02.2017
21:22:23
ну, самое банальное -- это то, что по джарке часто сложно сказать, что именно в неё в итоге попало

Руслан
12.02.2017
21:22:50
т.е. ты собрал джарку, и не можешь в ней разобраться?

Boris
12.02.2017
21:23:00
ну да

если пытаешься со спрингом его использовать, то это просто бесконечное количество конфликтов файловых

но у бутового пакера есть свои проблемы из за особенностей доступа к запакованным в jar jar-кам

Sergey
12.02.2017
21:25:37
Boris
12.02.2017
21:25:44
типа, попытка найти несущестующий файл может занимать столько времени, что если у тебя какая-то библиотека делает это в цикле, то время загрузки можно увеличить в разы

Sergey
12.02.2017
21:25:44
а для чего не fat jar может быть лучше?

Руслан
12.02.2017
21:26:00
Я вот залез в джар, META-INF/maven. там список либ

Boris
12.02.2017
21:26:24
да, в какой-то момент они это добавили

я его использовал последний раз года два назад может три

Google
Руслан
12.02.2017
21:26:48
а для чего не fat jar может быть лучше?
ну например если докер канонический, с слоями, то фэтджар - сильно слои увеличивает, application там удобнее

да, в какой-то момент они это добавили
так это от плагина зависит, надо посмотреть как в мавеновском сделали

Boris
12.02.2017
21:27:55
я про мавеновский и говорю

Руслан
12.02.2017
21:28:13
а, я просто грэдлом собирал эту джарку

проблему одинаковых файлов понимал, но пока не сталкивался

Boris
12.02.2017
21:28:33
грейдловый не видел, там обычно это просто делается одной строчкой склеивающей все файлики зависимостей

что совсем страшно

Руслан
12.02.2017
21:29:09
мы используем mergeServiceFiles, т.к. у нас на них все построено

остальное пока не тревожило, спрингом не пользуемся, у нас альтернативный стэк)

Boris
12.02.2017
21:30:33
Это хорошо, каждой задаче свои инструменты

Просто нужно знать, что такое бывает

И быть к этому готовым

Руслан
12.02.2017
21:31:58
с учетом докера сегодня кажется что проще использовать application plugin, он отлично ложится на слои, image растет очень умеренно

Boris
12.02.2017
21:32:12
К тому же сейчас плагины стали умнее, многие проблемы умеют лечить

Руслан
12.02.2017
21:32:41
ну проблему с двумя ресурсами врядли они вылечат, это надо классы патчить)

Boris
12.02.2017
21:33:21
Ну, если известный формат, то можно мерджить

Но это конечно не то что хотелось бы

Руслан
12.02.2017
21:34:19
странно что классы принято расскладывать по пакетам, а ресурсы - нет

Boris
12.02.2017
21:34:20
А что у вас за альтернативный стэк?

Руслан
12.02.2017
21:34:37
http://bootique.io/

Google
Boris
12.02.2017
21:34:55
Sergey
12.02.2017
21:35:18
т.е выкатывать апликейшен в виде пачки джарников это окей?

Руслан
12.02.2017
21:36:14


Boris
12.02.2017
21:36:34
Самый безглючный способ

Фэтджар просто удобнее

Особенно если он еще и экзекютабл

Sergey
12.02.2017
21:37:43
грепать процессы так не очень удобно из-за большой команды для запуска всего этого дела

Руслан
12.02.2017
21:37:52
ну вот jlink придет, и будет действительно executable)

Руслан
12.02.2017
21:39:35
надо пользоваться удобными инструментами для грепанья)

Boris
12.02.2017
21:39:42
ну вот jlink придет, и будет действительно executable)
Ну, если совсем executable хочется, то rust ?

Руслан
12.02.2017
21:39:58
ага

Boris
12.02.2017
21:41:26
Или go. Надеюсь меня закидают тухлыми помидорами

Руслан
12.02.2017
21:41:42
Ну, если совсем executable хочется, то rust ?
ну тут скорее про минимальный рантайм и простую привязку к версии, на которой можно оттестить и распространять. для проектов типо idea например было бы очень удобно

или опять же, собрал jlink, вкинул в докер, и потом только маленький jar обновляется

Google
Sergey
12.02.2017
21:43:30
java -Xmx32m -Xss256k -jar build/libs/guice-1.0-SNAPSHOT-all.jar хелоуворлд с guice занял 55мб в памяти. jvm так и не научилась меньше кушать?

Руслан
12.02.2017
21:44:04
Ну, если совсем executable хочется, то rust ?
причем мне нравится раст, но я понимаю что для множества проектов он не нужен, скорость разработки куда важнее чем перф или размер бинаря

Sergey
12.02.2017
21:46:53
о, расскажи методику подсчета)
или ты за параметры -Xmx32m?

Руслан
12.02.2017
21:48:34
ну RSS это же еще и shared память

у меня полноценное приложение с джусом, базой, рестом, хтмлом, очередью на xmx10m стартует и работает)

Sergey
12.02.2017
21:51:27
и сколько памяти кушает?

Руслан
12.02.2017
21:51:39
ну это сложный вопрос)

загружено 5к классов, размер стека не задавал

метаспейс около 28мб

VIRT 5Gb, RES 105*Mb

Sergey
12.02.2017
21:53:53
хм)

Boris
12.02.2017
21:54:05
Экономно

Руслан
12.02.2017
21:55:57
правда все-таки свалилось с OOM когда запрос пыталось обработать)

но хэлс чеки отдает)

Sergey
12.02.2017
21:56:36
у меня спрингбут приложуха 170мб кушает

запускал по рекомендуемым параметрам отсюды https://spring.io/blog/2015/12/10/spring-boot-memory-performance

Google
Boris
12.02.2017
21:57:05
Спринг довольно прожерливый

Sergey
12.02.2017
21:57:34
эт да

без параметров висит приложуха похожая, там 652мб уже

Boris
12.02.2017
21:58:02
Ну и сильно от поднятой инфраструктуры зависит

Sergey
12.02.2017
21:58:34
и висит веб на пхп. потребления пару мб) отрабатывает только когда приходят запросы в пул

Руслан
12.02.2017
21:59:21
ну а теперь пусти 1000 человек на php и на java

аккуратно написанный java сервер вида не даст, и дальше свой гигабайт будет отжирать)

Boris
12.02.2017
22:00:35
Ну, так можно не давать так много памяти, я так думаю, что и на 256к будет отлично работать, только мусор придется чаще собирать

Да, пхп вообще умирает после обработки -- вообще ничего жрать не должен

Пока запросы не придут, зато уж если придут...

Руслан
12.02.2017
22:02:46


ну окей, мое полноценное приложение на джаве на 11мб хипа, и при стеке в 256кб отлично работает)

Sergey
12.02.2017
22:03:14
ну а теперь пусти 1000 человек на php и на java
запрос отработает за 40-70мс, каждый активный запрос примерно 30мб кушает. учитывая что на сервере будет всего 2-4 ядра, то одновременно много не будет обрабатываться, и все будут стоять в очереди. так что до гига вряд ли дойдет)

Sergey
12.02.2017
22:04:26
андертоу рулит?

Boris
12.02.2017
22:04:51
ну окей, мое полноценное приложение на джаве на 11мб хипа, и при стеке в 256кб отлично работает)
Я не вижу смысла мериться потребляемой памятью, опасно просто нет смысла давать северному приложению 10мб памяти

Руслан
12.02.2017
22:05:13
конечно нет смысла, но чисто из теоретических соображений...

У меня вот это приложение сейчас на проде ест 270мб)

Sergey
12.02.2017
22:06:09
Я не вижу смысла мериться потребляемой памятью, опасно просто нет смысла давать северному приложению 10мб памяти
если на сервере 2 гига памяти, и у тебя каждый сервис жрет по 500мб. то как много сервисов одновременно ты сможешь держать, которые будут молча висеть ждать с моря погоды?

Tony
12.02.2017
22:07:52
Using month variable rewrite this pattern in such a way that it matches the date in format 13 JUN 1992 (two digits, a whitespace, a month abbreviation, a whitespace, four digits).

Boris
12.02.2017
22:07:59
если на сервере 2 гига памяти, и у тебя каждый сервис жрет по 500мб. то как много сервисов одновременно ты сможешь держать, которые будут молча висеть ждать с моря погоды?
Во-первых, не обязательно давать 500метров, можно отлично и на 128 работать. А во-вторых, вопрос в итоге не в памяти, а общей нагрузке

Tony
12.02.2017
22:08:01
val month = "(JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)" fun getPattern(): String = """\d{2}\s\?:$month\s\d{4}"""

Страница 38 из 982