Научная статья на тему 'Сравнение быстродействия Java на микрокомпьютере Raspberry Pi'

Сравнение быстродействия Java на микрокомпьютере Raspberry Pi Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
978
117
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МИКРОКОМПЬЮТЕР / СРАВНЕНИЯ БЫСТРОДЕЙСТВИЯ / МіКРОКОМП'ЮТЕР / ПОРіВНЯННЯ ШВИДКОДії / RASPBERRY PI / JAVA / MICROCOMPUTER / COMPARING PERFORMANCE / ORACLE JAVA / OPENJDK

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Дидух А. И., Тищенко В. В.

При работе с высокоуровневым языком программирования на микрокомпьютере важным является скорость выполнения определенного набора инструкций. Для определения быстродействия Java на микрокомпьютере Raspberry Pi применен метод сравнения времен выполнения двух функционально отличных программ на разных версиях виртуальной машины Java. Реализована программа современного быстрого алгоритма поиска простых чисел до заданного целого числа N (решето Аткина) и программа для выполнения элементарных операций над числами с плавающей точкой.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Comparison of fast-acting of Java on microcomputer Raspberry Pi

Introduction. The speed of a specific set of instructions is important working with highlevel programming language for microcomputers. The method of comparing execution times of two functionally different programs on different versions of Virtual Machine Java is used to determine the performance of Java on Raspberry Pi microcomputer. Application of modern fast search algorithm primes up to a given integer N (Atkin sieve) and a program to perform basic operations on floating point numbers are implemented. Results. Two algorithms microcomputer operating frequencies: 700 MHz, 900 MHz, 1000 MHz are tested. Two versions of Java for Raspberry Pi: Oracle Java and OpenJDK are used. Conclusions. In microcomputer Raspberry Pi elementary operations on floating-point run are faster than with complex search algorithm primes. It is established that Java from Oracle is 13-14 times is faster than OpenJDK. Oracle Java on Raspberry Pi gives good performance and it is recommended for installation and use on microcomputer.

Текст научной работы на тему «Сравнение быстродействия Java на микрокомпьютере Raspberry Pi»

УДК 004.382.76

ПОР1ВНЯННЯ ШВИДКОДЙ JAVA НА М1КРОКОМП'ЮТЕР1

RASPBERRY PI1

Дiдуx О. I.магктр; Тищенко В. В., Mazicmp

Нацгоналъний техшчний ушверситет Укршни «Кшвський полтехмчний Ыститут», м. КиХв, УкраХна, [email protected]

COMPARISON OF FAST-ACTING OF JAVA ON MICROCOMPUTER

RASPBERRY PI

Didukh O. I., Tyshchenko V. V.

National Technical University of Ukraine, Kyiv Politechnic Institute, Kiev, Ukraine,

sasha. didukh@gmail. com

Вступ

Мтатюризащя та збшьшення швидкодп е загально признаною тенде-нщею розвитку сучасних KOMn':mTepiB. Сьогодш популярност набули мш-рокомп'ютери, зокрема Raspberry Pi [1]. На ïx основi будуються рiзномаш-тнi системи: керування, контролю, спостереження, розтзнавання i т. д. Ро-зроблений британським Фондом Raspberry Pi Foundation мшрокомп'ютер Raspberry Pi Model B мае 700 MHz процесор ARM1176-JZFS та 512 МБ оперативноï пам'ят LPDDR2-800. Таке оснащення дозволяе використову-вати високорiвневi мови програмування [2]. Однiею з них е об'ектно-орiентована мова програмування Java.

Метою даноï статтi е аналiз швидкодiï рiзниx версiй Java на Raspberry Pi, визначення оптимальноï версп Java для застосування.

Теоретичнi викладки

Практичним методом перевiрки швидкодiï Java е визначення часу ви-конання певно!' програми на вiртуальнiй машиш Java (JVM) [3]. Для порiв-няння використаемо двi функцiонально вщмшш програми. В першому ви-падку, реаизуемо сучасний швидкий алгоритм пошуку простих чисел до заданого цшого числа N на Java (решето Аткша) [4].

В основi даного алгоритму лежать 3 стандарты теореми теорп елемен-тарних чисел:

1. n — просте, якщо:

n mod 4=1

n — непарне число.

2. n — просте, якщо:

1 http://radap.kpi.ua/radiotechnique/article/view/994

n mod 6 = 1

n — непарне число. 3. n — просте, якщо:

n mod 12=11

n - непарне число.

Для реашзацп алгоритму необхщно виконати наступи пункти:

1. Створити решето (масив вщповщносл простим числам для Bcix до-датних цших чисел починаючи з 2). Початково вс елементи решета позна-чаються як складовi.

2. Для кожного числа n в решет помiняти значення в решетi на проти-лежне, якщо залишок вщ дшення по модулю 60:

а) дорiвнюе 1, 13, 17, 29, 37, 41, або 53, та = 4 ■ х: - у:;

б) дорiвнюе 7, 19, 31, або 43, та = 3 ■ х: - у

в) дорiвнюе 11, 23, 47, або 59, та = 3 ■ х: - у (де x та y цiлi додатнi числа)

3. Взяти найменше число з решета, позначене як просте, i позначити всi елементи решета, кратш квадрату цього простого числа як складовг

4. Повторити пункт 3.

Алгоритм решета Аткша мае асимптотичну складшсть:

та потребуе наступну кiлькiсть бiт пам'ятi:

В другому випадку, розглянемо програму, яка буде циклiчно викону-вати операцii множення, дiлення, та додавання над числами з плаваючою комою.

При обчислеиш часу роботи проведемо N = 10 запусюв алгоритму та отримаемо вщповщш часи роботи: ("L "■.). Визначимо мтмально мож-ливий час роботи алгоритму ^min= Д1"1^, максимальиий

: - - = Гл-=х :: та середнш ' = - И':'=1Для порiвняльного аналiзу розглянемо середнiй час роботи, оскiльки при його визначенш врахованi впли-ви стороншх факторiв, так як мтмальний час отримати нелегко.

Для ощнки иохибки вим1рюваиия обрахуемо стаидартие вщхилення ) за формулою:

Кшьюсть запусюв алгоритму пщбрана таким чином, щоб стандартне вiдхилення не перевищувало 5% вiд середнього часу роботи, в шшому ви-падку результат вимiрювання не буде достовiрним.

Методика та засоби експериментальних дослiджень Дослщження часу роботи алгоритму проводиться зпдно з наступним планом:

1. Подготовка мiкрокомп'ютера.

3. Проведення трьох холостих запусюв алгоритму [5].

4. Запуск програми на виконання.

5. Обрахунок часу виконання програми.

6. Визначення мтмального, максимального та середнього значення часу виконання.

7. Визначення стандартного вщхилення та похибки вимiрювання.

На етат подготовки мжрокомп'ютера були зупиненi всi процеси як можуть знизити швидкiсть виконання програм або внести суттеву нерiв-номiрнiсть в результати роботи (вщео та звуковi програвачi, браузери, по-штовi клiенти, автоматичне оновлення системи i т. п.).

Перед початком вимiрювань необхiдно зробити декiлька холостих запусюв алгоритму (без вимiрювання часу), щоб виключити вплив кешiв процесора на результат вимiрювання, який може внести додаткову похиб-ку. Експериментально виявлено, що при робот програм використаних в данiй статл достатньо трьох холостих запускiв алгоритму.

Для порiвняння проведено запуск програми пошуку простих чисел та програми роботи над числами з плаваючою комою на мiкрокомп'ютерi Raspberry Pi з встановленими рiзними версiями JVM: Oracle Java SE 8 (з JavaFX) та OpenJDK Java.

Результати експеримен^в На мiкрокомп'ютерi встановлено Oracle Java SE 8 (з JavaFX): java version "1.8.0" Java (TM) SE Runtime Environment (build 1.8.0-b132) Java HotSpot (TM) Client VM(build 25.0-b70, mixed mode) Результат виконання програми пошуку простих чисел вщ 1 до 5-10 на Raspberry Pi:

Мтмальний час розрахунку становить 43694 мс Середнш час розрахунку становить 43718.0 мс Максимальний час розрахунку становить 43751 мс SKO = 15.9721985

Вщношення СКО до середнього часу = 0.036534607 % На мiкрокомп'ютерi Raspberry Pi можливо змшити частоту процесора [6]. Використаемо частину доступних значень: 700 MHz, 900 MHz, 1000 MHz.

Проведемо запуск програми на кожнш з цих частот окремо i результа-ти занесемо до табл. 1.

Дал встановимо OpenJDK Java на Raspberry Pi [7]: java version "1.7.0_65" OpenJDK Runtime Environment (IcedTea 2.5.3) (7u71-2.5.3-2~deb7u 1+rpi 1) OpenJDK Zero VM (build 24.65-b04, mixed mode).

Результати виконання програми на OpenJDK занесемо до табл. 1.

Таблиця 1 Результат виконання програми пошуку простих чисел ____за алгоритмом решето Аткша

Платформа для тестування l , мс L -■'■.: мс L -■'■. , мс a f %

Raspberry Pi, Oracle, 700 MHz 43718.0 43694 43751 15.9721985 0,0365346

Raspberry Pi, Oracle, 900 MHz 34607.0 34583 34656 20.295046 0.058644336

Raspberry Pi, Oracle, 1000 MHz 29605.0 29584 29747 49.978886 0.16881907

Raspberry Pi, JDK, 700 MHz 613509.0 591445 634453 18636.754 3.0377312

Raspberry Pi, JDK, 900 MHz 490957.0 474098 474098 17348.08 3.274904

Raspberry Pi, JDK, 1000 MHz 403535.0 397945 409229 5291.9624 1.3114011

Повторимо вищеописаш кроки з програмою для обчислення операцш з плаваючою комою. Результати розрахунюв зображеш в табл. 2.

Таблиця 2 Результат виконання програми для обчислення операцш з плаваючою комою

Платформа для тестування l мс L мс L ■ r,::, мс a f %

Raspberry Pi, Oracle, 700 MHz 24345 24338 24351 4.642796 0.019070841

Raspberry Pi, Oracle, 900 MHz 18845 18836 18861 7.3181663 0.038833465

Raspberry Pi, Oracle, 1000 MHz 16798 16795 16807 3.9015667 0.023226377

Raspberry Pi, JDK, 700 MHz 332697 331817 334380 1147.6833 0.34496352

Raspberry Pi, JDK, 900 MHz 257903 257584 258571 450.38467 0.17463335

Raspberry Pi, JDK, 1000 MHz 229275 229205 229352 66.79633 0.029133717

Висновки

Анаиз результапв показуе, що на мiкрокомп'ютерi Raspberry Pi час виконання програм залежить вiд версii встановлено! Java та частоти робо-ти процесора. Отримано рiзнi часи виконання програм, наведен в табл. 1, 2. На приклащ програми пошуку простих чисел, бачимо, що час виконання в 13,6 -14,16 разiв бшьший при встановленiй Java OpenJDK в порiвняннi з часом роботи на Java вщ Oracle. Програма для роботи над числами з пла-ваючою комою при встановленш Java OpenJDK виконуеться в 13,65 -13,69 разiв довше в порiвняннi з часом роботи на Java вщ Oracle. (табл. 3).

Таблиця 3

Платформа для тестування ^OpenJDK ^Oracle Решето Аткша ^OpenJDK ^Oracle Операцп з плаваючою комою

Raspberry Pi, 700 MHz 14,03 13,67

Raspberry Pi, 900 MHz 14,19 13,69

Raspberry Pi, 1000 MHz 13,63 13,65

На мiкрокомп'ютерi Raspberry Pi елементарш операцii над числами з плаваючою комою виконуються швидше в порiвняннi зi складним алгоритмом пошуку простих чисел. Також очевидно, що Java вщ Oracle працюе в 13-14 разiв швидше вщ OpenJDK (див. табл. 3).

Отже, в порiвняннi з OpenJDK Java на Raspberry Pi Java SE 8 дае хоро-шi показники роботи i рекомендуеться для встановлення та використання на мiкрокомп'ютерах.

Перелж посилань

1. З початку продаж1в по св1ту розшшлося вже 5 млн м1крокомп'ютер1в Raspberry Pi [Електронний ресурс]. - Режим доступу: http://mikrotik.kpi.ua/index.php/component/k2/item/24-5-billion-raspberry-pi. — Назва з екрану.

2. Rainer E. Raspberry Pi and Java - Love At First Sight [Електронний ресурс] / Eschrich Rainer // M2M Summit 2013 ; September, 2013. - Режим доступу : http://m2m-summit.com/files/m2m_oracle_java_raspberry_pi

_v2.pdf. - Назва з екрану.

3. Java theory and practice: Dynamic compilation and performance measurement [Електронний ресурс] / DeveloperWorks. - Режим доступу : http://www.ibm.com/developerworks/libraryZj -jtp12214/? S_TACT= 105AGX99 &S_CMP=CP. - Назва з екрану.

4. Atkin A. O. L. Prime Sieves Using Binary Quadratic Forms / A. O. L. Atkin, D. J. Bernstein // Mathematics of Computation. - 2004. - Vol. 73, No. 246. - pp. 1023-1030.

5. Акиньшин А. Учимся писать правильные С#-бенчмарки / Андрей Акиньшин ; Хабрахабр, 28 августа 2013. - Режим доступу : http://habrahabr.ru/ company/enterra/blog/191636. - Назва з екрану.

6. Monk S. Raspberry Pi Cookbook / Simon Monk. - O'Reilly Media Inc., 2014. -

408 p.

7. Могильний С. Б. Мшрокомп'ютер Raspberry Pi - шструмент дослщника / С. Б. Могильний. - К. : Талком, 2014. - 340 с. - ISBN 978-617-7133-48-2

References

1. Z pochatku prodazhiv po svitu roziishlosia vzhe 5 mln mikrokomp'iuteriv Raspberry Pi [From sales beginning in the world have already dispersed 5 million microcomputers Raspberry Pi]. - Available at: http://mikrotik.kpi.ua/index.php/component/k2/item/24-5-billion-raspberry-pi.

2. Rainer Eschrich (2013) Raspberry Pi and Java - Love At First Sight. M2M Summit 2013. Avaible at: http://m2m-summit.com/files/m2m_oracle_java_raspberry_pi_v2.pdf.

3. Java theory and practice: Dynamic compilation and performance measurement. -Available at: http://www.ibm.com/developerworks/library/j-jtp12214/?S_TACT=105AGX99 &S_CMP=CP.

4. Atkin A. O. L. and Bernstein D. J. (2004) Prime Sieves Using Binary Quadratic Forms. Mathematics of Computation, Vol. 73, No. 246, pp. 1023-1030.

5. Akin'shin A. (2013) Uchimsya pisat' pravil'nye C#-benchmarki [Learn to write correctly C# - benchmarks]. - Available at : http://habrahabr.ru/company/enterra/blog/191636.

6. Monk S. (2014) Raspberry Pi Cookbook. O'Reilly Media, Inc., 408 p.

7. Mohylnyi S. B. (2014) Mikrokomp'iuter Raspberry Pi - instrument doslidnyka [Microcomputer Raspberry Pi - a tool for researcher]. Kyiv, Talkom Publ., 340 p. - ISBN 978-617-7133-48-2

Дiдух О. I., Тищенко В. В. Поpiвняння швидкодп' java на мiкpокомn,юmepi Raspberry Pi. При po6omi з високорiвневою мовою програмування на мiкрокомп'ютерi важливим е швидюсть виконання певного набору iнструкцiй. Для визначення швидкодп Java на мiкрокомп'ютерi Raspberry Pi застосовано метод порiвняння чаЫв виконання двох функцюнально вiдмiнних програм на рiзних верЫях вiртуально'ï машини Java. Ре-алiзовано програму сучасного швидкого алгоритму пошуку простих чисел до заданого цшого числа N (решето Атшна) та програму для виконання елементарних операцш над числами з плаваючою комою.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Ключовi слова: Raspberry Pi; Java; мтрокомп 'ютер; порiвняння швидкодп; Oracle Java; OpenJDK.

Дидух А. И., Тищенко В. В. Сравнение быстродействия java на микрокомпьютере Raspberry Pi. При работе с высокоуровневым языком программирования на микрокомпьютере важным является скорость выполнения определенного набора инструкций. Для определения быстродействия Java на микрокомпьютере Raspberry Pi применен метод сравнения времен выполнения двух функционально отличных программ на разных версиях виртуальной машины Java. Реализована программа современного быстрого алгоритма поиска простых чисел до заданного целого числа N (решето Аткина) и программа для выполнения элементарных операций над числами с плавающей точкой.

Ключевые слова: Raspberry Pi; Java; микрокомпьютер; сравнения быстродействия; Oracle Java; OpenJDK.

Didukh O. I., Tyshchenko V. V. Comparison of fast-acting of java on microcomputer raspberry pi.

Introduction. The speed of a specific set of instructions is important working with highlevel programming language for microcomputers. The method of comparing execution times of two functionally different programs on different versions of Virtual Machine Java is used to determine the performance of Java on Raspberry Pi microcomputer. Application of modern fast search algorithm primes up to a given integer N (Atkin sieve) and a program to perform basic operations on floating point numbers are implemented.

Results. Two algorithms microcomputer operating frequencies: 700 MHz, 900 MHz, 1000 MHz are tested. Two versions of Java for Raspberry Pi: Oracle Java and OpenJDK are used.

Conclusions. In microcomputer Raspberry Pi elementary operations on floating-point run are faster than with complex search algorithm primes. It is established that Java from Oracle is 13-14 times is faster than OpenJDK. Oracle Java on Raspberry Pi gives good performance and it is recommended for installation and use on microcomputer.

Keywords: Raspberry Pi; Java; microcomputer; comparing performance; Oracle Java; OpenJDK.

i Надоели баннеры? Вы всегда можете отключить рекламу.