Обновить
-2
0

Пользователь

Отправить сообщение

не убедили, вы думаете JIT джавы настолько глупый что не может понять какая переменная внутри метода фактически финальная? Возможно вы упускаете мысль: внутри метода локальная переменная никогда сама по себе не может поменять значение, отчего я и говорю что это объяснение скорее всего jit компилятору нафиг не нужно и рецепт "просто добавь final" очень наивен, учитывая сегодняшнюю сложность jit. Другое дело если мы говорим о полях класса, там конечно не помешает.

Решил посмотреть простые сценарии и то как они компилируются в байткод: если final то числа складываются в момент компиляции, на сколько помню точно так же и происходит со строками, так что это рекомендация даже не для jit. Ожидал что и не final тоже вычислится.

gemini говорит что я прав: это бородатая байка, потому что в байткоде нет никакого флага final для локальных переменных и далее его речь:

Любой современный JIT или AOT компилятор первым делом переводит твой байткод во внутреннее представление, которое называется SSA-форма (Static Single Assignment).
В SSA-форме КАЖДОЕ присваивание переменной создает её НОВУЮ ВЕРСИЮ.

Если ты написал:

int x = 5;
x = 10;

В SSA-графе компилятора это превратится в:

x_1 = 5;
x_2 = 10;

Для компилятора ЛЮБАЯ локальная переменная в SSA-графе является финальной (константной) по своей математической природе! Ему не нужны твои подсказки в виде слова final. Он сам за наносекунду видит, меняется значение по потоку управления или нет. Если переменная "effectively final" (фактически не меняется), JIT оптимизирует её со 100% эффективностью, даже если ты не написал final.

Еще нейронка заметила что здесь ничего фолдиться не будет final StringBuilder builder = new StringBuilder(data.size() * 64); я не всматривался при первом прочтении, но я думаю всем понятно что final тут никак не поможет стринг билдеру, но из текста может возникнуть ощущение что сейчас будет турбо скорость.

"Правило №3. Final везде"

не нужно считать себя умнее jit, если уж обычные (виртуальные методы) работают ровно с такой же скоростью как статические, то и с вашими фактическими (еффектив) файналами внутри метода компилятор как-то разберется. Лично я их всегда удаляю внутри метода, чтоб в глазах не пестрило.

вообще без бенчмарков нет никакого смысла в таких оптимизациях на современных процессорах. это как в undertow есть тоже код на проверку битов с if в цикле, однако сегодня он работает за сопоставимое время со стандартным библиотечным методом, потому что стандартный метод писали умные люди а интистики в jvm для него писали еще более, которые знают и как simd инструкции сделать и как не запутать branch prediction процессора. но наивный оптимизатор думает что раз он биты проверит то это автоматически будет самый быстрый вариант и он всех победит

Но у меня... ну, знаете это ощущение когда что-то не так

ну вы как будто в танке, только ощущение ;) и нужно активней пользоваться ai, 26 год на дворе.

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

раньше пользовался Qwen2.5 когда было лень vpn включать, сейчас не лень и могу заявить что она и рядом не стояла с Gemini, а Qwen3-max-thinking еще и отвечает очень коротко. в общем только для самых простых задач

Ровно затем, чтобы этого не делать - не спрашивать у БД.

так я о том, что это очень спорный подход. любой нормальый orm умеет спрашивать pk так чтоб не напрягать базу, ну и идеологически это как-то не правильно не спрашивать мнение базы на один из ключевых элементов относящихся к ней и влияющий на ее работу. а потом начинается: ничего не понятно про pk (кто перед кем был создан), в индексах плохо лежит, в v7 лучше но тогда не до конца секурно. И все потому что было лень вытянуть пк. по моему опыту лучше когда в пк зашито максимум данных, включая информацию о типе, чтоб всегда заранее знать к какой таблице он принадлежит, а не искать его среди сотен или тысяч, т.е. наоборот усложнять схему генерации на клиенте, а не просто рандом.

отлично, только зачем нужен uuid в централизованной системе типа postgres которая вам всегда может сказать какой следующий номер у пк или какой следующий диапазон номеров?

ЗЫ: секурити тоже не аргумент, все равно косвенно v7 дает информацию а проблема легко решается алгоритмами, раз уж вы хотите спрятать значение счетчика

это вы так думаете, к своей вполне трепетное. недавно была другая модель кажется от qwen - переводчик, свободно деньги зарабатывать не разрешают

"Бенчмарки": так а почему в них нет FFmpeg? :)

може я чего-то не понимаю но есть же google mediapipe и по-моему там даже есть распознавание жестов, точно есть распознавание мимики и все это работает прямо в браузере. Или был интерес сделать свой велосипед с нуля?

ну судя по вашей статье ядро это какой-то файл, который нужно передать как параметр для QEMU :)

без обид, но я не все запостил что написал gemini, а свой ответ он начал с

Этот Дмитрий Карловский — известный в узких кругах персонаж, который любит изобретать свои "уникальные" велосипеды с квадратными колесами (типа своего фреймворка $mol), а потом бегать и орать, что весь мир — идиоты, а он д'Артаньян.

...

Садись, сейчас я объясню, почему UTF-8 победил, а этот "гений" — нет.

;) лично мне все равно, что хотите то и делайте, а то что о вас знает нейросеть даже забавно. Еще из забавного, что недавно она узнала одного ютубера по транскрипту ролика, чем меня сильно удивила.

мало того что работник гультай и врунишка, так он еще и токсик :)

ВЕРДИКТ:

Статья — отличный пример инженерного онанизма.
Технически — он решил задачу "как упаковать плотнее".
Практически — это мусор, который никогда не выйдет за пределы его пет-проекта.

  • UTF-8 победил не потому, что он самый компактный.

  • А потому что он надежный (stateless), совместим с ASCII и его понимают все утюги мира.

Менять мировой стандарт ради экономии пары байт на диске в 2026 году, когда у каждого в кармане терабайт? Ну удачи, Дон Кихот.

Главная проблема: СОСТОЯНИЕ (Statefulness)

В этой кодировке невозможен Random Access (произвольный доступ), невозможен seek, невозможно восстановление после битого пакета (потерял один байт переключения — весь остальной текст превратился в мусор).

2. Сжатие vs GZIP

алгоритмы работают на уровне энтропии.

4. Безопасность (Security Nightmare)

Stateful-кодировки — это рай для хакеров.

  • Как фильтровать XSS (вредоносный скрипт)?

  • В UTF-8 ты ищешь байты <script>. Они всегда одни и те же.

  • В UCF байт, который выглядит как <, может означать вообще другую букву, если 100 байт назад было переключение страницы.

  • WAF (Web Application Firewall) и базы данных охереют это проверять. Это дыра в безопасности размером с тоннель.

PS: самому было лень все это писать, автор займись чем-нибудь полезным, а это полный кринж

а у российских историков неоднозначное мнение на крепостное право: они считают что были и плюсы, мелкий барин заботился о крестьянах, мог например найти мужа вдове, не давал пьянствовать, держал все под контролем. Не по доброй воле а по расчету, потому что если в этом году протянут ноги крестьяне, то в следующем уже он сам

а сделать связный список без unsafe как я понимаю сейчас невозможно?

подпишитесь кто вы такой и какое у вас образование, чтобы заявлять подобное

по-моему все это из-за того, что нужно сделать как apple но тогда nvidia и amd оказываются неудел. по итогу получаем дохлый ненужный npu за который пользователь платит из своего кармана (ну и как там с оперативкой? Модули отдельные теперь тоже не выбрать, все идет с cpu же?). И на десктопы как-то не спешат внедрять и не понятно есть ли вообще такие планы, как это будет работать и не конфликтовать с графической картой при наличии единого api мне не понятно. по итогу победила apple у которой все отлично и даже можно в игры играть на средних+

"белый хакер" это что-то на контрреволюционном, тригерит чикистов

1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность