1.4, Аноним (4), 10:06, 15/09/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +2 +/– |
Мне не хватает производительности. А есть какой-нибудь способ уменьшить жор памяти? Сейчас я использую openj9+uksm в этих целях.
| |
|
|
3.12, Аноним (4), 11:24, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Какие ещё сторонние каналы, если на каждом хосте только 1 копия приложения может быть запущена? Да ещё и требования космические по железу хоста предъявляет, в виртуалке не запустишь. Openj9+uksm экономит >30% памяти, и сама память используется куда более эффективно, чем когда всё впритык. Вот и спрашиваю, может я каких-то новых волшебных ключей не знаю.
| |
|
2.15, Аноним (14), 11:50, 15/09/2021 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +2 +/– |
Игры с настройкой GC, если на уровне Java. Разделение на java module. Использование где можно балансировщиков которые работают с потоками быстро и отдают данные клиентами, поэтому потоки не живут долго и не занимают память (reverse proxy). При работе с файлами использовать nio и selector (неблокирующие). Использовать реактивное программирование - избавление от блокировок (но база данных при этом должна тоже поддерживать это). Можно попытаться использовать 32 бит версии Java и/или не использовать объекты размером больше 32 бит, будет обмен занимаемой памяти на быстродействие CPU (но в Java есть compacting так что возможно влияние 64 бит переменных не сильное). И главное - использовать все возможные инструменты для просмотра статистики при всех этих экспериментах.
| |
2.16, YetAnotherOnanym (ok), 11:50, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> жор памяти
Нескромный вопрос: ты пришёл на эту работу и жаба уже была, или ты писал это на жабе с нуля? Проще говоря, жабу кто выбрал - ты или до тебя?
| |
2.19, Anon2 (?), 12:08, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Я конечно не эксперт, но если под производительностью вы понимаете именно скорость вычислений то uksm в связке с Java это плохая затея. Java ж на каждый чих выделяет память в куче, а uksm при этом _сразу_же_ пытается это дело смержить (в ksm это хотя-бы как то ограничивается отложенным мержем)
| |
2.20, Anon2 (?), 12:16, 15/09/2021 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
> жор памяти
0. zram с низкосжимаемыми алгоритмами типа lzo
1. может она алгоритмически течет
2. исключить разработку и эксплуатацию по низкому прайсу
3. потюнить приложение и/или саму Java
| |
|
3.22, Аноним (4), 12:45, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Вот zram прям жёстких тормозов добавляет, всё что угодно лучше пока своп не используется. Оно не течёт, просто так написано и других вариантов нет, это готовое приложение. Тюнить жвм можно, только ошибки сразу проявляются в виде лагов всего чего только можно (в том числе IO) и падения допустимого числа коннектов. Не, нормально работает, но весьма не экономно по железу -- не везде запустишь.
| |
3.38, Аноним (38), 21:29, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Этот zram swap у кого-то вообще нормально работает? В смысле, экномит ли память? Я вот его пробовал, так ядро туда отказывается пихать несжатых данных больше чем размер свопа. К примеру, своп на зраме 1Г. Ядро пихает туда 1Г данных, они ужимаются в 300М. Остаётся 700М свободных, но ядро больше данных в zram-своп не пихает, даже начинает пихать оставшиеся данные в низкоприоритетный своп на HDD!
| |
|
4.73, n00by (ok), 20:16, 17/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
zRam так и работает. Указывается размер хранилища, оно по возможности будет занимать меньше ОЗУ из-за сжатия. В Вашем случае оставшиеся 700М как обычно заняты данными приложений или файлового кеша, или свободны. Другое дело, что zRam проектировался не для подкачки, уменьшает объём доступного ОЗУ, потому в ряде сценариев может наоборот увеличить количество выгрузок на HDD. Для сжатия подкачки предназначен zswap, там как раз задаётся размер сжатого кеша (в процентах от общего объёма ОЗУ). Что окажется эффективней, зависит от сценария использования и настроек zswap.
| |
|
5.74, Аноним (38), 22:59, 17/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ага, понятно, спасибо. Значит в моём случае zswap занимает в памяти 300М, а не 1Г, как я думал, да ещё и динамически меняет свой размер, в зависимости от того, сколько данных туда запихано.
Хорошо, если zram проектировался не для подкачки, как мне сделать, чтобы память сжималась и экономилась без zswap? Просто создать zram device и всё?
| |
|
6.75, Аноним (38), 23:27, 17/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Другое дело, что zRam проектировался не для подкачки
Так, опять перечитал про zram и, похоже, zram всё-таки нельзя использовать без свопа! То есть создаёшь zram device, на нём делаешь своп. Значит, zram таки проектировался для подкачки!
| |
|
7.77, n00by (ok), 12:08, 18/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Не надо смешивать "проектировался" и "можно использовать".
zRam это обычный виртуальный-диск
https://ru.wikipedia.org/wiki/RAM-%D0%B4%D0%B8%D1
https://habr.com/ru/company/kingston_technology/blog/395315/
с поддержкой сжатия.
Можно купить диск в магазине и создать на нём подкачку, можно создать "диск" в ОЗУ при помощи zRam и создать на нём подкачку. Можно на эти диски записать картинки с котиками. Картинки в zRam будут открываться быстрее.
zawap именно проектировался, потому там не надо создавать диск и на диске подкачку. Активируете (по умолчанию включено в последних ядрах, но не везде), указываете параметры (алгоритм сжатия, размер кеша и т.п.) и он работает.
| |
|
|
|
|
|
|
3.31, Аноним (4), 14:23, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
Прикольно, впервые слышу об этом. Какой-нибудь майнкрафт с allthemods3 в него можно запихнуть? Примерно сопоставимо, как мне кажется. Там в нейтив не скомпилируешь так просто.
| |
|
4.72, lastdrv (ok), 15:09, 17/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
очень маловероятно что майнкрафт можно скомпилить в натив
кваркус хоть и много либ поддерживает, но ориентирован на облака и кубы
для графики ни чего не нашёл
| |
|
|
2.34, OramahMaalhur (ok), 16:19, 15/09/2021 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Есть, GraalVM (native image). Проще всего завести с каким-то фреймворком типа Quarkus или Micronaut, но вполне можно и без них обойтись. Правда, там есть свои нюансы: в определённых случаях придётся генерировать огромные json-ы с описанием рефлексий, не все стандартные либы соберутся, пляски с бубном вокруг JNI, статическая линковка и особенности с libc на разных системах.
Но в целом оно шустро работает.
| |
|
3.35, Аноним (4), 16:43, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
Это всё хорошо, но тут нельзя грубо говоря закинуть в него эту кучку jar и чтобы всё работало само. Нужно переписывать. И, в зависимости от того, как написано, это может оказаться невозможным при всём желании.
| |
|
|
|
4.80, BeLord (ok), 13:06, 19/04/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Рефакторить, а что еще делать с кривым кодом?-) Тут вопрос скорее в том, какая архитектура, если нормальная, то задача упрощается.
| |
|
|
|
1.5, Урри (ok), 10:13, 15/09/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +8 +/– |
> Добавлена предварительная реализация API Foreign Function & Memory
> https://openjdk.java.net/jeps/412
Отстой. Велосипедный отстой.
Неужели нельзя было посмотреть, как все сделано в шарпе (та же джава, только сбоку) и сделать так же удобно? А не вот эти вот MemoryLayout.ofSequence .. CLinker.toCString .. MemoryAccess.setAddressAtIndex .. CLinker.toJavaStringRestricted?
Да хотя бы libffi прикрутить, если не умеете сами нормальный код дизайнить.
При этом еще имеют наглость заявлять "This code is far clearer than any solution that uses JNI"!!! Ититьколотить, far clearer, вашумать.
--
Нет слов, одни, блин, эпитеты!
| |
|
|
3.24, Урри (ok), 12:52, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
За аннотации же не засудила?
В чем проблема расширить аннотации до "как в шарпе, но не как в шарпе" и написать свой код?
| |
3.62, maximnik0 (?), 19:09, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>M$ засудит.
За что ? Net! это теперь независимая разработка,то что площадка крутиться на сервере у M$ историческое наследие.Код открытый,единственное что старый код с .NET Framework привязан к win платформе и тот код предоставлен просто посмотреть....
| |
|
|
3.23, Урри (ok), 12:50, 15/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
PR "Вы накодили какое-то тупое г_вно"? А смысл?
> раз лично ты
Таких как я - десятки тысяч. В шарпе уже много лет все сделано и все пользуются.
| |
|
2.28, Аноним (28), 14:03, 15/09/2021 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –4 +/– |
Что вы хотите от убогих javaмакак? Они такие же убогие как растомакаки.
Настоящие программисты пишут только на ANSI C
| |
|
|
4.63, YetAnotherOnanym (ok), 19:28, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
Ты какой-то скучный. Брать для каждой задачи подходящий для неё инструмент - это тривиально. Вот шинковать лук киянкой для тротуарной плитки - это трендово, потому что киянка - инструмент, быстрый в освоении и несложный в использовании, использование киянки позволяет быстро приступить к работе и получить результат раньше конкурентов.
| |
|
|
|
1.25, Аноним (25), 12:55, 15/09/2021 [ответить] [﹢﹢﹢] [ · · · ] [↑] [к модератору]
| +/– |
>Готовые для установки сборки Java SE 17 (JDK, JRE и Server JRE) подготовлены для Linux (x86_64, AArch64), Windows (x86_64) и macOS
А как же соляра?
| |
1.26, Аноним (26), 13:01, 15/09/2021 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +4 +/– |
Как же тоскливо и уныло стало читать новости про жабу - как наблюдать за престарелой собакой. То ли дело раньше были новости: "Java производит математические расчеты в 4 раза быстрее C++", "новый сборщик мусора обгоняет malloc()/free() в 10 раз" и т.п. И где теперь вся эта эффективность, производительность и безопасность? А C++ живее всех живых и действительно развивается.
| |
|
2.42, лютый жабби__ (?), 04:15, 16/09/2021 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
>Java производит математические расчеты в 4 раза быстрее C++
так уже со счёту сбились во скока раз жаба быстрее... вот у меня внатуре на серваках валяется простейшая прога которая намного быстрее sort -u хотя там внутри 3 строчки - загрузить всё в HashSet и выплюнуть...
| |
|
3.59, Аноним (38), 17:21, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
1. С++ и std::unordered_set были бы быстрее.
2. sort умеет сортировать файлы, которые не влазят в память. Создаёт для этого временные файлы.
| |
|
2.43, Хан (?), 05:43, 16/09/2021 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +2 +/– |
Страсти утихли, C++ и Java сейчас практически не пересекаются, у каждого своя ниша в которой он навертво сидит
Только NET и Java до сих пор холиварят
| |
|
3.76, anonymous (??), 23:51, 17/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Чисто ради интереса: кто на чём специализируется? Весь энтерпрайз на джаве, а вещи типа игроделов, high frequency trading и фин моделирования на плюсах?
| |
|
4.81, BeLord (ok), 13:09, 19/04/2023 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Документооборот 100+ млн пользователей, Java EE, решает все задачи последние n лет, что еще надо для счастья?-)
| |
|
|
2.50, Аноним (50), 10:29, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| –2 +/– |
> Как же тоскливо и уныло стало читать новости про жабу
Подтверждаю как Java-разработчик — язык вроде бы "развивается", но реального прогресса нет.
Graal сдох. AOT сдох, а теперь вообще был выпилен. Project Valhalla там же. Зато каждый день прикручивают новый, модный синтаксис. Как будто те, кому нужны все эти рюшечки, давным-давно не перешли на Scala и Kotlin.
| |
|
3.52, лютый жабби__ (?), 10:56, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
>но реального прогресса нет.
ты уже жабосиньёр-фулстэк с ЗП 400++ тыр?
Блин, ну семью заведи, будет чем заняться...
Наоборот бесит, что 7 лет кодишь, а ещё и конца и края не видно (то java EE сдохнет, надо спринг учить, то jsf сдохнет, надо реакт учить, в спринге вообще модулей понаклепали, хоть 100 лет ковыряйся так дураком и помрёшь)... а тебе прогресс подавай
| |
|
4.58, Аноним (58), 16:43, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Да такие кактусы жабистам ещё есть и есть. У вас же даже стандартного аналога gettext нет - до сих пор интернационализацию ручками делаете, как в MFC в середине 90х.
| |
|
|
|
1.33, Anonymoustus (ok), 14:57, 15/09/2021 [ответить] [﹢﹢﹢] [ · · · ] [к модератору]
| +/– |
> Предложена экспериментальная реализация сопоставления по шаблону в выражениях "switch", позволяющая в метках "case" использовать не точные значения, а гибкие шаблоны, охватывающие сразу серию значений, для которых ранее приходилось использовать громоздкие цепочки выражений "if...else". Кроме того внутри "switch" обеспечена возможности обработки значений NULL.
Жаба начнёт тормозить втрое против прежнего? И с ошибками обработки значений NULL? :)
| |
1.40, Михрютка (ok), 22:37, 15/09/2021 [ответить] [﹢﹢﹢] [ · · · ] [к модератору]
| +/– |
самое главное забыли
>>>JDK 17 binaries are free to use in production and free to redistribute, at no cost, under the Oracle No-Fee Terms and Conditions License.
>>>JDK 17 will receive updates under these terms, until at least September 2024.
до кого-то видимо дошло.
"уж лучше я, чем какой-нибудь мерзавец"
| |
|
|
|
4.65, vvm13 (?), 20:23, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Is Java Swing Dead 2020?
You can say that Java Swing is a zombie: It is still available and in use in its latest development state, but makes no progress in regard of improvements.
Что касается JavaFX, он очень близок к зомби, но не совсем. Хоть какие-то мелочёвки в очень малых количествах, но добавляются.
| |
|
|
|
|
|
3.57, abi (?), 16:00, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Да, всё-время вижу про Андроид и котлин, но а если не андроид и новый проект сейчас? Бэкэнд на java 17 или на котлине?
| |
|
4.60, Аноним (38), 17:27, 16/09/2021 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
На котлине. Можно ещё на Scala, она мощнее, но и тяжелее в освоении, и там коммунити помешаное на ФП, хотя сам язык тебя не заставляет кодить в ФП стиле.
| |
|
|
|
1.55, Аноним (-), 12:15, 16/09/2021 [ответить] [﹢﹢﹢] [ · · · ] [↑] [к модератору]
| +1 +/– |
>Java 17 полностью открыта под лицензией GPLv2 с исключениями GNU ClassPath, разрешающими динамическое связывание с коммерческими продуктами.
Это ошибка коммерческие библиотеки не надо использовать.
| |
|