[О блоге] [index] [пред] [2021-03-15 14:28:21+03:00] [88f8cb1edcda7a74358b28a8aa3169369f6d3fec]
Темы: [go]

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

*** David Rabkin [2021-03-19 20:12]:
>Пытались мы засунуть Гоу в 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. Мы новый проект начинали, интуитивно только
могли оценить, как он разрастется, и какие еще библиотеки понадобятся.
Сошлись на Си. Плюсы отвергли как зло.