anonymous@RULINUX.NET~# Last login: 2024-11-23 10:51:15
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Проект по тестированию эффективности языков программирования

В рамках проекта PLB предпринята попытка создания тестового комплекта, охватывающего различные аспекты при оценке эффективности языков программирования. Подготовленный тестовый комплект включает реализацию четырех базовых тестовых заданий для 11 языков программирования: Си, С#, D, Go, Java, JavaScript, Lua, Perl, Python, R и Ruby. Всего протестировано 26 различных реализаций поддерживаемых языков. Эффективность оценивается с позиции производительности и потребления памяти.

В число тестов входят: Sudoku - программа для поиска решений в игре Судоку (20x50). Matmul - реализация алгоритма по умножению двух матриц размером 1000x1000, который хорошо подходит для измерения производительности циклов и оценки выполнения типичных математических задач. Patmch - программа для поиска строк в файле с использованием нескольких видов регулярных выражений (влияние скорости ввода/вывода устранено через размещение файла в памяти). Dict - поиск повторяющихся строк из списка в 5 млн строк (последовательно операция повторяется для каждой строки списка, в среднем каждая строка повторяется по 4 раза), позволяет оценить производительность хэшей и ассоциативных массивов. Тесты sudoku" и "matmul" ориентированы на измерение производительности языка, а тесты "Patmch" и "dict" производительности библиотек.

Некоторые наблюдения:

  •   Быстрее всего простые регулярные выражения выполняются в Perl, при этом Perl в связанных с регекспами тестах в три раза обгоняет по скорости язык Си (GCC и библиотека regexp9 из Plan 9). JavaScript-движок V8 при выполнении регулярных выражений показал результаты аналогичные языку Cи (GCC), JavaScript-движок JaegarMonkey немного отстал от V8, но совсем незначительно.
  •   В тесте, оценивающем производительность обработки строк неплохие результаты показал CPython 2.7, который отстал от GCC всего на 25% (Perl отстал в два раза, JavaScript-движок V8 и язык Java - в два с половиной раза, JavaScript-движок JaegarMonkey и язык Ruby - в три раза).
  •   В целом JavaScript-движок V8 показал во всех тестах более высокие результаты по сравнению с движком JaegarMonkey от проекта Mozilla.
  •   В тесте умножения матриц LuaJIT немного обогнал GCC. Java и JavaScript-движок V8 отстали от GCC всего на 10%. Для сравнения, Python отстал от GCC в 66 раз, JavaScript-движок JaegarMonkey в 7 раз, Perl в 100 раз, Ruby в 273 раза.
  •   В эталонном тесте sudoku ближе всего к показателям языка Си (GCC) оказался язык Java, который отстал всего на 70%. JavaScript-движок V8 отстал в 3.7 раза, C#@Mono в 3.8 раз, JavaScript-движок JaegarMonkey в 18 раз, Ruby в 98 раз, CPython в 113 раз, Perl в 121 раз.
  •   При оценке потребления памяти при обработке строк, после языка Си (52 Мб) наиболее экономичными оказались JavaScript-движок V8 (97 Мб), CPython (112 Мб), C#@Mono (113 Мб). Ruby израсходовал 156 Мб, а Perl - 219 Мб, JavaScript-движок JaegarMonkey - 274 Мб. Наихудшие результаты показали: R - 1 Гб и Jython - 457 Мб, JRuby - 436 Мб. В тесте умножения матриц расстановка сил в плане потребления памяти изменилась: Си (GCC) 32 Мб, JavaScript-движок JaegarMonkey - 35 Мб, C#@Mono - 40 Мб, Java - 67 Мб, CPython - 91 Мб, V8 - 141 Мб, Ruby - 196 Мб, Perl - 225 Мб.

 http://www.opennet.ru/opennews/art.shtml?num=31114

Bod(*) (2011-07-07 11:45:00)

Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0

[Ответить на это сообщение]
avatar
Скрыть

Re: Проект по тестированию эффективности языков программирования

> Python отстал от GCC в 66 раз, Perl в 100 раз, Ruby в 273 раза.

Ах-ха-ха-ха-ха-ха!!!

anonymous(*)(2011-07-07 13:14:50)

avatar
Скрыть

Re: Проект по тестированию эффективности языков программирования

Хм, а PyPy на удивление быстр, судя по графикам.

SystemV(*)(2011-07-07 13:46:05)

Emacs-w3m/1.4.414 w3m/0.5.3
avatar
Скрыть

Re: Проект по тестированию эффективности языков программирования

>Python отстал от GCC в 66 раз, Perl в 100 раз, Ruby в 273 раза
Скриптобляди ебучие sosnooly

anonymous(*)(2011-07-07 17:34:16)

Opera/9.60 (Windows NT 5.1; U; ru) Presto/2.1.1
Этот тред читают 1 пользователь:
Анонимных: 1
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!