2011-09-06

waqur: (Default)
В июне исследователи из Гугла опубликовали статью [1], где они сравнивнивают производительность индустриальных языков программирования C++ и Java/Scala с Go. Программа на Гоу была в 7 раз медленнее, чем программа на C++, после применения экстремальных мер по оптимизации к последней.

Если C++ный код не подвергается экстремальной оптимизации, разница не так велика - порядка 2x-4x раз [2].

Статью [1] писала не та команда, которая разрабатывает компилятор для Гоу. У Роба Пайка и компании возникли возражения по этим цифрам, и путём некоторой оптимизации Go-исходников теста с использованием профилировщика, они смогли сравниться с C++ [3]

Также, Russ Cox отмечает:

"We used gopprof to study an inefficient Go program and then to improve its performance by an order of magnitude and to reduce its memory usage by a factor of six. A subsequent comparison with an equivalently optimized C++ program shows that Go can be competitive with C++ when programmers are careful about how much garbage is generated by inner loops."


Таким образом, бенчмарки показывают, что язык Go упёрся в принципиальный дефект своего дизайна - в сборку мусора по принципу stop-the-world. Обычная программа на Go (без экстремальных мер по оптимизации) больше тратит времени на сборку мусора, чем собственно на вычисления.


[1] https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf

[2] http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php
http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php

[3] http://www.theregister.co.uk/2011/07/01/go_v_cpluplus_redux/


Ссылка [2] также интересна тем, что она показывает, как отстали Python, Ruby и PHP. Статически типизированные языки безусловно рвут динамически типизированные, они быстрее в десятки раз.

March 2024

S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
31      

На этой странице

Автор стиля

Развернуть

No cut tags
Page generated 2025-09-21 06:08 pm
Powered by Dreamwidth Studios