Сравнительный анализ производительности популярных языков программирования, используемых для создания web–приложений

Сравнение производительности популярных языков программирования, на которых создаются клиент-серверные приложения. Использование тестов для сравнения результатов времени выполнения и используемых ресурсов. Тестирование спектральной нормы матрицы.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 20.08.2018
Размер файла 77,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Электронный научно-практический журнал

ИЮЛЬ 2017 «МОЛОДЕЖНЫЙ НАУЧНЫЙ ВЕСТНИК»

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Размещено на http://www.allbest.ru/

СРАВНИТЕЛЬНЫЙ АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ ПОПУЛЯРНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ, ИСПОЛЬЗУЕМЫХ ДЛЯ СОЗДАНИЯ WEB - ПРИЛОЖЕНИЙ

Кузнецов А.С.

МФ МГТУ им. Н.Э. Баумана

Каждая программа и платформа имеет определенный предел производительности, и на эту производительность виляет используемый при разработке язык. В статье приводится сравнение производительности популярных языков программирования на которых создаются клиент серверные приложения. Для сравнения производительности использовались тесты и сравнивались результаты времени выполнения и количество используемых ресурсов.

Ключевые слова: языки программирования, производительность, сравнительный анализ, PHP, Python, Ruby.

COMPARATIVE PERFORMANCE ANALYSIS OF POPULAR PROGRAMMING LANGUAGES USED TO CREATE WEB APPLICATIONS

Kuznetsov A.S.

Each program and platform has a limit of productivity, and this productivity wags used to develop language. The article compares performance popular programming languages to create client server applications. To compare the performance of tests used and compared the results of the execution time and the number of used resources.

Keywords: programming languages, performance, comparative analysis, PHP, Python, Ruby

При планировании программного проекта имеется огромный выбор языков программирования, в лабиринтах которых легко заблудиться. Выбор языка зависит от многих факторов. Если это личный проект или хобби, можно выбрать знакомый вам язык. Если выбор зависит от имеющихся ресурсов, результат может быть весьма неочевидным. Можно также потратить много времени на разработку повторно используемых компонентов.

В данной работе приводится сравнение некоторых языков программирования предназначенных для создания клиент серверных приложений. Каждая программа и платформа имеет определенный предел производительности, и на эту производительность влияет используемый при разработке язык. Существует множество способов сравнения скорости работы в одинаковой среде программ, написанных на разных языках.

Для тестов производительности были написаны несколько одинаковых программ на разных языках. Тесты производились на Intel® Core™2 Quad Processor Q6600,4гб оперативной памяти и жестким диском 250GB SATA II, в качестве операционной системы Ubuntu 17.04 Linux x64 4.10.019-generic.

Версии языков программирования:

1. Ruby 2.4.0p0 [3]

2. Python 3.6. [2]

3. PHP 7.1.4 [1]

Спектральная норма матрицы. Программа должна вычислить спектральную норму бесконечной матрицы А с параметрами a11=1, a12=1/2, a21=1/3, a13=1/4, a22=1/5, a31=1/6, и т.д.

Таблица 1. Результаты тестирования расчета спектральной нормы матрицы на PHP.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

500

0.363

12412

94% 89% 86% 89%

3000

13.099

19420

99% 99% 99% 99%

5500

37.938

19420

99% 99% 100% 99%

Таблица 2. Результаты тестирования расчета спектральной нормы матрицы на Python.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

500

1.796

53324

90% 86% 85% 85%

3000

58.562

52924

98% 97% 98% 98%

5500

188.826

54524

99%100%100% 99%

Таблица 3. Результаты тестирования расчета спектральной нормы матрицы на Ruby.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

500

1.939

9712

82% 85% 79% 79%

3000

42.055

49652

92% 92% 91% 92%

5500

141.486

50156

96% 97% 96% 97%

Множество Мандельброта. Программа должна построить множество [-1,5 - i, 0.5 + i] на NxN и записать результат побайтово в файл.

Таблица 4. Результаты выполнения расчета множества Мандельброта на PHP.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

1000

0.546

30560

84% 96% 98% 95%

4000

7.937

55508

100%99% 99%100%

16000

125.17

136776

100%100%100%100%

Таблица 5. Результаты выполнения расчета множества Мандельброта на Python.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

1000

1.413

51200

92% 81% 79% 80%

4000

17.712

51516

99% 99% 99% 99%

16000

273.433

53416

100%100%100%100%

производительность язык программирование серверный

Таблица 6. Результаты выполнения расчета множества Мандельброта на Ruby.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

1000

1.873

36400

97% 99% 97% 96%

4000

28.596

38900

100%100%100%100%

16000

463.951

69656

100%100%100%100%

Бинарные деревья. Программа должна: выделить бинарное дерево, чтобы растянуть память, проверить ее наличие и освободить. Проверить долгоживущие бинарные деревья, которые будут продолжать существовать, пока другие деревья выделяются и освобождаются. Выделить, пройти и освободить многие восходящие бинарные деревья: Выделить деревья, пройти дерево, посчитать узлы, освободить дерево, проверить есть ли еще долгоживущие деревья.

Таблица 7. Результаты выполнения расчета бинарных деревьев на PHP.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

7

0.073

0

100% 14% 0% 0%

14

0.472

36184

87% 85% 49% 57%

21

88.07

736372

92% 77% 23% 91%

Таблица 8. Результаты выполнения расчета бинарных деревьев на Python.

Передаваемый параметр

Время выполнения

Использование памяти

CPU

7

0.195

0

0.104

14

0.592

54636

1.536

21

86.903

451548

306.312

Таблица 9. Результаты выполнения расчета бинарных деревьев на Ruby.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

7

0.065

0

0% 0% 100% 14

14

0.373

34880

47% 78% 92% 63%

21

54.241

510868

73% 98% 67% 72%

Получение перестановок. Программа должна: Совершить перестановку {1,...,n}, взять первый элемент и реверсировать порядок первых элементов, повторять данное действие, до тех пор, пока первый элемент не станет 1, подсчитать число переворотов, сохранить контрольную сумму.

Делать для всех n! перестановок и записать максимальное число переворотов необходимое для любой перестановки.

Таблица 10. Результаты получения перестановок на PHP.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

10

1.555

33516

99% 97% 99% 99%

11

18.981

33444

100% 99% 99% 100%

12

280.035

33588

100%100%100%100%

Таблица 11. Результаты получения перестановок на Python.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

10

3.297

51772

98% 87% 92% 92%

11

36.937

52996

100%100% 93% 97%

12

483.794

51896

97% 94% 100% 99%

Таблица 12. Результаты получения перестановок на Ruby.

Передаваемый параметр

Время выполнения

Использование памяти

Загрузка CPU

10

4.485

33436

99% 91% 96% 79%

11

52.715

33180

100% 90% 97% 97%

12

710.579

33348

99% 99% 95% 97%

В результате тестов были построены графики. По времени выполнения программы, в соответствии с графиком 1, в четырех из пяти тестов, язык PHP показал лучший результат, выполняя код в среднем в два раза быстрее, чем другие языки. По потребление оперативной памяти во время исполнения программы, в соответствии с графиком 2, при более тяжелых вычислениях, меньше объёма использует Python, в более простых - PHP.

Электронный научно-практический журнал

ИЮЛЬ 2017 «МОЛОДЕЖНЫЙ НАУЧНЫЙ ВЕСТНИК»

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Размещено на http://www.allbest.ru/

График 1. Время выполнения.

Электронный научно-практический журнал

ИЮЛЬ 2017 «МОЛОДЕЖНЫЙ НАУЧНЫЙ ВЕСТНИК»

ФИЗИКО-МАТЕМАТИЧЕСКИЕ НАУКИ

Размещено на http://www.allbest.ru/

График 13. Использование RAM.

При использовании в качестве серверного языка PHP, можно добиться высокой скорости отдачи данных клиентам по сравнению с другими языками, единственным ограничением будет сам сервер. В случае с Python выполнение будет около двух раз медленнее чем PHP, но при этом потребление памяти в ниже. Это может быть критично только если у вас слабый сервер, а вычисление довольно тяжелые, в остальных же случаях данный параметр не столь критичен. Ruby в некоторых тестах показывал хорошие результаты, но в совокупности оказался менее производительным.

Список литературы

1. Документация по языку PHP. URL: http://php.net/docs.php

2. Документация по языку Python. URL: http://ruby-doc.org/

3. Документация по языку Ruby. URL: https://docs.python.org/3/

Размещено на Allbest.ru


Подобные документы

  • Характеристика компьютерных игр и их влияние на формирование навыков Softskills. Геймификация как современный тренд в образовании. Обзор наиболее популярных языков программирования для создания игровых приложений. Техническое задание для приложения.

    дипломная работа [928,4 K], добавлен 13.01.2023

  • Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.

    курсовая работа [2,6 M], добавлен 17.11.2014

  • Исследование возможностей и областей использования языка программирования JavaScript. Сравнительный анализ языков программирования JavaScript и PHP. Разработка интерактивного Web-приложения на примере теста по теме "Программирование на языке Delphi".

    практическая работа [26,0 K], добавлен 04.02.2015

  • Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.

    курсовая работа [345,6 K], добавлен 13.11.2009

  • Рассмотрение и ознакомление с одним из наиболее используемых языков программирования - С++. Его применение в процессе работы со строковыми типами данных и символами. Исследование кодов написания программ в режиме разработки консольного приложения.

    курсовая работа [6,1 M], добавлен 20.01.2016

  • Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.

    курсовая работа [759,5 K], добавлен 04.11.2014

  • Ознакомление с ситуацией распространения на рынке языков программирования. Определение плюсов и минусов Pascal, C++, VBA. Сравнение и анализ синтаксиса программ на основе одной задачи. Выявление лучшего языка для освоения первоначальных навыков.

    курсовая работа [1022,0 K], добавлен 13.10.2014

  • Характеристика языков программирования: краткая история, хронология. Основные виды языков программирования: ассемблер; бейсик. Создание и использование формул в Excel. Применение операторов в формулах. Использование функций в Excel. Сайт дома отдыха.

    отчет по практике [139,1 K], добавлен 03.06.2011

  • Обзор основных используемых языков программирования (С++, Java, Pascal). Анализ существующих методов шифрования паролей. Основные понятия объектно-ориентированного программирования. Реализация приложения для генерирования паролей на языке Object Pascal.

    курсовая работа [822,4 K], добавлен 07.07.2012

  • Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.

    реферат [463,6 K], добавлен 07.09.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.