Комментарии 4
Привет, хорошая статья, люблю примеры с интеграцией сишных модулей, да и вообще выжимку жса.
Про оптимизацию того же неста надо задавать себе совсем другой вопрос: «Для чего я буду использовать именно его функционал?».
Давно пытался в этот весь минмакс с васмом, модулями и прочим, а затем просто переобулся на го 🫣.
Да, в ноде есть много крутых плюшек для комфортной работы, хорошая производительность для процентов 80 задач, но иногда стоит задуматься о комбинации с другими сервисами.
в планах попробовать webassembly, в отличии от прямого взаимодействием с железом появляется прослойка, которая позволят изолировать среду запуска. для моих задачь ограничения по размеру бинарника не так критична. На работе я могу теперь пробывать использовать другие ЯП для оптимизации. например кучу логов необходимо обрабатывать, для зеркалирования чувствительных данных, форматировать, обрезать... так как при отключении всех логов производительность растает существенно, хоть код вы оптимизирован по самые гланды.
Проведу низкоуровневые оптимизации. Все это стало возможно благодаря развитию ИИ.
Не совсем понял что Вы тут имели ввиду. Низкоуровневая оптимизация критически важных или просто важных функций используемых в JavaScript были и есть возможны без развития ИИ. Достаточно, например, по изучать открытый код популярного для JavaScript движка V8 - https://github.com/v8/v8. Он, правда, написан по большей части на C++, но всё равно там есть за что ухватиться. Например, выбор и реализация стратегии сборки мусора на JavaScript. Есть ведь куча стратегий (итерационная, по поколениям, "в свободное время") и как-то это нужно всё оптимизировать. У каждого JavaScript движка есть свои внутренние механизмы для этого и они написаны именно с целью оптимизации и увеличения скорости выполнения JavaScript кода. Или хороший пример Node.js (https://github.com/nodejs/node) там вообще сплошь и рядом использование C/C++ модулей в JavaScript (на базе Node.js). Это всё было возможно задолго до развития ИИ.
Например, в бенчмарке
В каком именно? Не совсем ясно откуда появились в статье "очки" и каким образом они считаются. Не понятно вообще как в статье пришли от темы ускорения JS до оценки по каким-то очкам популярных JavaScript-фреймворков.
Разработчик среднего уровня на JavaScript может написать код, который будет лишь в 2-3 раза медленнее C (что очень даже хорошо)
А есть какая-то статистика? Просто чтобы такое утверждать, нужно либо в буквальном смысле глазами наблюдать большое число таких прецедентов, либо опираться на какое-либо исследование. Упоминания ни о том, ни о другом в статье нет.
с помощью магии оптимизации на низкоуровневом C можно достичь значительного ускорения, на которое компиляторы JavaScript не способны
Не стоит оценивать по скорости компилируемые и интерпретируемые языки программирования, т.к. это две совершенно разные категории и у компиляторов и интерпретаторов стоят разные задачи и возможности вообще, исходя из определённых архитектурных ограничений. Например, движки JavaScript (в большинстве случаев) реализуют Event Loop, который "делает этот язык" (на уровне пользователя) более медленным, чем тот же C, потому что поочерёдное выполнение макро- и микро- задач не может не накладывать отпечаток на скорость. Можно предположить, что если реализуют компилятор для JavaScript, который схож по возможностям с каким-нибудь компилятором С/C++, то скорость будет +/- одинаковой (естественно урезав некоторый функционал из JavaScript по типу EventLoop). Тогда это уже будет не JavaScript, а компилируемый CJavaScript и он будет походить на Go.
Общее впечатление таково, что не низкоуровневые оптимизации стали возможны благодаря развитию ИИ, а эта статья, т.к. есть много вопросов относительно её качества.
«С помощью ChatGPT я написал модуль на C»
Простите, но буду токсичить
А вы уверены в компетенции писать эту статью? Или это просто статья ради того, чтобы что-то написать или похвастаться как можно с мыслью «а можно ли оптимизировать с помощью chatGPT код, вставляя туда C? Вот я перед коллегами похвастаюсь, скажу, что, пока они жабаскриптеры и петухонисты, я — C Developer»
Только:
— Сетки преимущественно научены на Питоне, поэтому проще просить написать код на питоне, а потом конвертировать в нужный ЯП
— Учитывая реалии порога входа в современную разработку — без chatGPT у вас большая часть разработчиков на C не напишет ничего дальше Hello World, да и разбираться в устройстве такого языка, или того хуже, читать книги вместо summary, ну камон
Ускоряем JS до предела C