[О блоге] [наверх] [пред] [2021-03-15 14:28:21+03:00] [88f8cb1edcda7a74358b28a8aa3169369f6d3fec]
Темы: [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
    
    *** 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. Мы новый проект начинали, интуитивно только
    могли оценить, как он разрастется, и какие еще библиотеки понадобятся.
    Сошлись на Си. Плюсы отвергли как зло.