Мощь Си в ЛЮБОМ языке!

preview_player
Показать описание
Привет! Когда я был совсем новичком, то часто ругался на скриптовые языки за отсутствие скорости. Вот если бы это переписать на Си, то все быстрее бы заработало! Но ведь мощь си можно добавить в любой язык. Сегодня мы исследуем эту тему и засунем си куда-нибудь. И засунем не только си, а так же го и раст.

00:00 Не только Си
00:37 Зачем? 3 причины использовать
02:02 Как реализовано
03:41 Реклама на развитие (16+)
05:02 Примеры: Си в руби через FFI
06:47 Руби native extension
10:09 Rust в руби через FFI
11:15 Go в руби через FFI
12:22 Кто быстрее?

Доступ к плюшкам:

Senior Software Vlogger — канал о жизни людей в айти и интересных фактах. Написание кода, интервью с программистами, переезд на ПМЖ в другие страны, лайфхаки профессии.

#программирование #ityoutubersru
Рекомендации по теме
Комментарии
Автор

clang -03 все равно проиграл

user system total real
Ruby 0.000173 0.000050 0.000223 ( 0.000414)
C 0.000052 0.000201 0.000253 ( 0.000656)
Go 0.000041 0.000019 0.000060 ( 0.000052)
Rust 0.000029 0.000013 0.000042 ( 0.000018)

SeniorSoftwareVlogger
Автор

Компиляция сишной библиотеки без флагов оптимизации (-O2 или -O3) равняется сборке в режиме дебаг :)

В то время как при компилировании раст-либы виден параметр release (аналогия как в cmake CMAKE_BUILD_TYPE=Release), который как раз добавит флаг -O3.

Так что результат не удивляет. С го тоже более менее понятно, ведь у этого языка есть gc (правда хз насколько он в данном случае играет роль) и так называемый рантайм (какие-то нужные для работы го вещи, которые грузятся в оперативную память независимо от воли программиста). Это кстати ограничивает возможность использования го на всяких встраиваемых устройствах с мизерной оперативкой.

Интересно посмотреть ассемблер на выходе, скорее всего компилятор развернул циклы (loop unrolling) и может даже векторизовал вычисления. Хотя последнее вряд ли тк у Вас ARM-процессор, а компилируете Вы под x86_64. А у этих архитектур совершенно разный набор SIMD инструкций

tihonsergienko
Автор

Чувак ты слишком умён для меня. Чувствую себя ребенком 8 летним, которому объясняют логарифмы. Эх спасибо что находишь время пилить ролики, успехов.

Mostwonted
Автор

Молодец, Дима! А после рубей - эликсир :)

TheRedbeardster
Автор

Полезный выпуск, приятно смотреть и слушать! (ps.."на заднем плане ноутбук на ноутбуке? У меня скулы сводит от такого..:))

ivan
Автор

Самое интересное, что Rust потокобезопасный и после 2021 года ещё и асинхронный, что сильно выделяет этот ЯП среди других. Я им начал заниматься год назад, и лично мне понравилось, что можно разложить приложение на разные потоки и перед запуском проинициализировать все необходимые кучи статично и не будет в такой ситуации утечек памяти, с которыми я сталкивался на Python, когда скрапил на selenium и обучал нейросети на PyTorch.

В рунете мало кто делает контент по Rust. Спасибо автору. Быть может в Rust появятся официальные декораторы, чтобы я мог полностью забыть о Python. Хотя пока я мало где использую новомодные для себя макросы с обработкой RAW-текста. Хотя уже документы на Гигабайт в Rust обретают смысл, потому что в нём быстрое чтение и обработка данных.

maxsalov
Автор

Когда я вижу как ты пишешь на Rust - малыш, ты меня волнуешь 😘

dimanght
Автор

ООООО добро пожаловать. Тоже пришел к Си)

korvet
Автор

1) Действительно, зачем сравнивать без оптимизации?
2) Почему в расте i32 и в го просто int, а в С целый long long?

АлександрКоновалов-шн
Автор

Была задача вычислить md5 файла прямо в браузере перед загрузкой. Написал на rust'е 3 строки полезного кода, скомпилировал в webassembly. Результатом доволен, гораздо быстрее готовых библиотек. На процессоре R9 5900x файл 18.5гб считается за 132сек

andrewgjfye
Автор

жизнь она как ревью, проходит по диагонали)

klgp
Автор

Чувствует тренд. Что на рынке останутся боевые пенсионеры с бородой.

zhandosissayev
Автор

Си язык богов.это самый ахрененный язык

кАнал-жг
Автор

Очень легко в ноду засунуть Zig. Ну C/C++ вообще без проблем. Sass/Scss/webpack частично написаны на C.
Именно N-API. Webassembly C не даст такой же прирост производительности.

realfootball
Автор

только об этом подумал, а видео уже в рекомендованых появилось. Алгоритмы научились мысли читать?)

АлександрДемидов-эи
Автор

Я удивлён, что вы удивлены по поводу скорости Rust.

sashka_al
Автор

Уже более двух лет с растом, все летает

aleksandr-belousov_
Автор

Нет, никакого смысла сравнивать C и Rust в плане производительности, так как со стороны реализации, это практически идентичные языки, это считай один и тотже компилятор. Разница в том, что к Rust прикрепили функциональные парадигмы и линтер, да и всё. С точки зрения производительности тоже не слишком много отличий и в основном в районе погрешности. А Go? Ну что Go, у него Garbage Collector и этим всё сказанно

snippet_dev
Автор

В Кате изучают только java или есть возможность до.языков

СергейДахин-бф
Автор

Какой бы вы 2-ой язык посоветовали при питоне основным?
Думаю между c++, , Go, Rust. Плюсы как то устаревше смотрятся, раст у меня тут не сильно востребован, а вот Go очень интересно смотрится под питон.

dmitry-lzny