Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2013-07-10 14:05:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:Компутерщина

Об еффективность ЯП:
В процессе обсуждения вопроса, как написать сортировку Бэтчера без mutable states, в начале изысканий переписал ее с Питона (кой в вики) на Go. Без параллелизмов (просто чтобы для начала получить "нечто работающее"). В процессе сравнил перформансы.

Потому проделал тоже самое еще на С++ и Жабе. Результаты предлагаются вниманию.

Тексты программ представляют собой точную кальку с питоновcкого текста. Сортировался массив из 4M элементов. Прогонялось в трех вариантах: для int, double и Comparable (в случае с С++ Comparable был сделан на объектах и виртуальных методах с dynamic cast (потому как эффективность темплейтного варианта по понятым причинам будет идентична статическим).

int double Comparable
Python 362" --- ---
Go 3.9" 4.7" 16.3"
GCC Go 6.8" 8.0" 74.8"
Java 3.6" 3.9" 10.2"
C++ 2.9" 4.2" 24.0"*
Rust 7.3" 10.8" ???


То есть даже в функционально эквивалентном Питону варианте с полной динамикой типов питон проигрывает на данном нехитром (и довольно невыигрышном для статических языков - поскольку сплошная рекурсия) тесте от 15 до 30 раз. А если тип известен - то примерно в 100 раз.

Я знал, что будет плохо - но что настолько плохо, честно гря не ждал.

Поскольку Go в числе прочего двигается гуглем именно как замена питону - то ...

*) С dynamic_cast, с static_cast = 11.0"

Исходные тексты


(Добавить комментарий)


[info]aspirantus
2013-07-12 04:03 (ссылка)
то есть питон совсем гавно? досадно, я его учить начал

(Ответить)