Python, Go, C++, C, AWK, Forth, Rust и подсчёт слов

Что: 88f8cb1edcda7a74358b28a8aa3169369f6d3fec

Когда: 2021-03-15 14:28:21+03:00

Темы: c go python

Python, Go, C++, C, AWK, Forth, Rust и подсчёт слов

https://benhoyt.com/writings/count-words/
Позлорадствую, но в простой задаче Rust почему то из коробки обосрался
при сравнении с Go. Его оптимизированные версии чуть быстрее, но даже и
Go не сильно медленнее Си. Вот это для меня немного удивительно.

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

комментарий 0:

From: David Rabkin
Date: 2021-03-19 18:15:07Z

Пытались мы засунуть Гоу в IoT устройство на работе, Arm7, 4 кора,
памяти гигабайт — должно работать. Проблема оказалась там, где не
ждали: футпринт у Гоу в десятки раз больше, чем у Си. А нас
ограничения жесткие на размер флеша, несколько мегабайт. Гоу не влез
даже в одном процессе. А что бы было, если задизайнить несколько
процессов с гошной-то статической линковкой? Рынок IoT всегда будет с
ограничениями, потому что экономят каждый цент, а продают миллионами.
Гоу пока не годится для этого. Почему так?

комментарий 1:

From: Sergey Matveev
Date: 2021-03-19 18:20:04Z


>Пытались мы засунуть Гоу в IoT устройство на работе
>Гоу пока не годится для этого. Почему так?

Простота, эффективность (в смысле статической линковки), скорость
загрузки/компиляции, ещё раз простота. Почему должно быть по другому :-)?
Могло быть, но оно не так. Можно много чего хотеть и ожидать от
языка/платформы и пытаться всех удовлетворить, но можно нигде не
преуспеть. Go пускай для IoT не годится, зато на полноценных компьютерах
отличен. Сейчас несколько сот мегабайт флеш-памяти может и дороги -- а
завтра меньше просто уже не будут делать.

комментарий 2:

From: David Rabkin
Date: 2021-03-19 18:30:10Z

>Сейчас несколько сот мегабайт флеш-памяти может и дороги -- а завтра меньше просто уже не будут делать.

Точно! Это то, что случилось с гигагерцами и рамом, но пока не
случилось с флешем.

Я как раз адвокат Гоу. Пытался разнообразить текущую работу, не
получилось, мы на Си/Си++ пишем.

комментарий 3:

From: kmeaw
Date: 2021-03-19 23:08:39Z

> футпринт у Гоу в десятки раз больше, чем у Си. А нас
> ограничения жесткие на размер флеша, несколько мегабайт. Гоу не влез
> даже в одном процессе.

> а завтра меньше просто уже не будут делать.

> Точно! Это то, что случилось с … рамом

А не пробовали пожать upx'ом?

Или собрать с помощью gccgo? Когда у меня была похожая задача (надо было
запустить клиента оверлейной сети на mipsel-роутере с 8M flash), gccgo
делал бинари сильно меньшего размера.

комментарий 4:

From: David Rabkin
Date: 2021-03-21 13:48:01Z

>А не пробовали пожать upx'ом? gccgo?

Не пробовал, я тот еще специалист в Гоу :-) upx, вроде, только в два раза:
  https://jmrobles.medium.com/gos-best-friend-upx-the-executable-compressor-e4f4872f1d8a

gccgo выглядит круто, посмотрю.

У нас как раз 8M flash. Мы новый проект начинали, интуитивно только
могли оценить, как он разрастется, и какие еще библиотеки понадобятся.
Сошлись на Си. Плюсы отвергли как зло.

Сгенерирован: SGBlog 0.34.0