microJUG – Telegram
microJUG
979 subscribers
155 photos
1 video
2 files
237 links
Мысли о Java.
Основной канал: @miniJUG
Буст: https://news.1rj.ru/str/microJUG?boost
Чат: https://news.1rj.ru/str/micro_JUG
Таблица JEP'ов: https://minijug.org/jeps.html
Download Telegram
Программист провёл интересный эксперимент: он реализовал простой сетевой echo клиент-сервер с 1-секундной задержкой и замерил производительность. Использовал три реализации: NIO, виртуальные нити и традиционные нити OS. Результаты можете посмотреть на графиках выше. NIO выиграло по всем параметрам, но отрыв от виртуальных нитей совсем небольшой. Так что NIO хоть и быстрее/эффективнее, но виртуальные нити гораздо более удобная и простая модель, а это в большинстве случаев гораздо важнее в разработке.
Но мне любопытнее показалось другое наблюдение: нити OS не уступили по пропускной способности виртуальным нитям, если было меньше ~30k соединений! А до ~5k соединений физической памяти они использовали ровно столько же! Что такое 5k соединений? Это не такая уж и маленькая нагрузка.
К чему это я? К тому, что это очередное подтверждение правила про преждевременную оптимизацию. Если вы пишете какой-нибудь простой серверок, где у вас не будет большого одновременного количества клиентов (несколько сотен в среднем и в пике до тысячи), то ничего плохого не будет, если вы его реализуете, используя тупой подход "новый поток на каждое новое соединение". А в качестве бонуса вы получите простоту отладки и читаемость кода. А когда выйдет Loom через пару лет, то вы сможете просто поменять все нити на виртуальные, оставив всю остальную часть кода неизменной. Тем временем вы сможете сконцентрироваться на других более важных бизнес-задачах.

#loom
👍12🔥6
При выполнении каких операций выведется <clinit> при условии, что класс X до этого не был инициализирован?
1. X.f()
2. System.out.println(new X()); 3. System.out.println(X.class); 4. Class.forName(X.class.getName()); 5. System.out.println(X.Y);
Final Results
15%
Только 1 и 2
2%
Только 1, 2 и 3
17%
Только 1, 2 и 4
9%
Только 1, 2, 3 и 4
58%
Во всех
👍6🔥4🤩1
Интересный факт. С Java 1.0 инструкция байткода с опкодом 186 была зарезервирована, но не была использована. Через 16 лет на её место в Java 1.7 встанет invokedynamic.

Прям как в воду глядели.
👍10🤩2
Самый полезный сайт в Интернете 😂
https://howoldisjava8.today/
😁5😢2🎉2🤩2👍1
А вы какой вариант предпочитаете?
#var
😁3
Количество JEP'ов, попавших в релизы Java (с JDK 10 по JDK 18)
🔥3
Вы коммитите папку .idea в систему контроля версий?
Final Results
9%
Да
89%
Нет
2%
У нас не IDEA
👍3
Пример сниппета кода в джавадоке на примере документации к java.util.Stream (сверху - до, снизу - как бы это могло выглядеть в Java 18+).

1. Фрагмент кода теперь более заметен благодаря серому фону.
2. Появилась кнопка копирования в буфер обмена.
3. Код нормально выровнен по левому краю (обрезаны отступы).
4. Ссылки на методы кликабельны.
5. К некоторым идентификаторам применены стили (bold, italic, highlighted).

При этом исходный код сниппета является синтаксически валидным Java-кодом и может быть верифицирован внешними инструментами (например, IDE).

#java18
👍16
Даже не знаю, что меня тут больше раздражает. Что фигурные скобки не на той строке. Или что отступы у строк внутри блоков разные. Про логическую ошибку в коде я вообще молчу.
#юмор
😁18💩7
Метод sun.misc.Unsafe.objectFieldOffset задепрекейтили в Java 18. Пока без forRemoval. Но в будущем станет forRemoval и будет удалён окончательно.

Что это для нас значит? Любителям несанкционировано покопаться во внутренностях JDK станет совсем туго. Придётся выдумывать новые ещё более ужасные хаки. Похоже, Lombok уже не получится запустить без кучи флагов --add-opens.

#java18 #unsafe #lombok
😢3
⚡️🇺🇦 Тагир Валеев поставил Украинский флаг в профиле своего Твиттера
44💩23😱3👏2🤔2👎1🤮1
⚡️Брюс Эккель отказался выступать на конференции SnowOne, которая состоится 25-26 февраля. Он должен был открывать второй день конференции с докладом "Smarter Types with Records".
👍14💩7👎3🤔2🤮1
Heinz Kabutz также решил отказаться от выступления завтра на SnowOne
👍16👎4🤯1
Венкат Субраманиам изменил написание своего имени на украинское и добавил украинский флаг в своём Твиттере
👍23💩165👎1🤩1🤮1
⚡️Oracle приостановил все операции в РФ в поддержку Украины
🔥15👎6💩3👍21🤯1
Российские программисты скоро
😁20😢6👍2👎1🤮1💩1
JetBrains приостанавливает все продажи в России и Беларуси. Многие российские сотрудники уже покинули страну.

#jetbrains
🔥15💩13😢5🤮3👍2