среда, 11 марта 2020 г.

Vector и Rust

      В последнее время к сожалению не так много нового удается узнать, из того что бы зацепило.  Все основном приходиться get shit done заниматься, не вдаваясь в подробности. Но недавно наткнулся на коллектор логов под названием Vector (vector.dev). Запустил в проде, посмотрел сколько он памяти/cpu ест и удивился. Там что-то вроде 60mb всего. Решил заглянуть внутрь - а там Rust. Тут то я и проникся к нему уважением. Ибо при такой нагрузке то же самое на Golang кушало бы заметно больше ресурсов. Тоже filebeat написаный на Golang - оказалось тем еще говном, слабо пригодным к использованию в нагруженном проде. В ozon его переписали и заменили своей поделкой, которую к сожалению никто не торопиться выкладывать в open source. 
           Дальше я принялся разглядывать Rust. Его девиз - zero cost abstraction. Где-то я уже видел подумал я. А точно, то же самое старина Bjarne Stroustrup вещал:

Только ему приходится поддерживать совместимость с миллиардами строк плюсового кода написанного за последние 30 лет. А у создателей Rust такой цели нет. И надо сказать - у них пока очень не плохо получается. Я не знаю насколько прокачен компилятор Rust в плане оптимизации, но теоретически то что получается на выходе должно быть то же самое как если бы это написать на плюсах с использованием умных указателей, контейнеров и прочих конструкций без которых современный плюсовый код не мыслим.

Комментариев нет:

Отправить комментарий