{"id":19491553,"url":"https://github.com/ev3dev-lang-java/jvm-benchmark","last_synced_at":"2025-02-25T19:45:29.263Z","repository":{"id":142583972,"uuid":"91506193","full_name":"ev3dev-lang-java/jvm-benchmark","owner":"ev3dev-lang-java","description":"A JVM benchmark for EV3.","archived":false,"fork":false,"pushed_at":"2018-03-30T14:39:12.000Z","size":118,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-08T08:46:25.945Z","etag":null,"topics":["java","java-8","java-performance","jvm","jvm-benchmark"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ev3dev-lang-java.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-05-16T21:28:59.000Z","updated_at":"2019-07-22T06:08:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"01c0d1b9-9da3-4cce-8d07-09bbc21dfb4d","html_url":"https://github.com/ev3dev-lang-java/jvm-benchmark","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ev3dev-lang-java%2Fjvm-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ev3dev-lang-java%2Fjvm-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ev3dev-lang-java%2Fjvm-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ev3dev-lang-java%2Fjvm-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ev3dev-lang-java","download_url":"https://codeload.github.com/ev3dev-lang-java/jvm-benchmark/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240738092,"owners_count":19849546,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","java-8","java-performance","jvm","jvm-benchmark"],"created_at":"2024-11-10T21:17:16.274Z","updated_at":"2025-02-25T19:45:29.251Z","avatar_url":"https://github.com/ev3dev-lang-java.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jvm-benchmark\n\nA JVM benchmark for EV3.\n\nIn a EV3 Brick managed with EV3Dev, it is possible to install some [JVM](https://wiki.debian.org/Java/):\n\n- [Oracle Java 8 SE Embedded](http://www.oracle.com/technetwork/java/embedded/downloads/javase/javaseemeddedev3-1982511.html)\n- [OpenJDK 8 Headless](https://packages.debian.org/jessie-backports/openjdk-8-jdk-headless)\n\nIf you have a Brick with both JRE (Oracle \u0026 OpenJDK), this project could\nhelp you to know what JVM has better performance.\n\n## The benchmark script:\n\n```\n#!/bin/bash\n\nstart=`date +%s`\n/usr/lib/jvm/java-8-openjdk-armel/jre/bin/java -server -jar jvm-benchmark-all-0.1.0-SNAPSHOT.jar\nend=`date +%s`\n\nruntime=$((end-start))\necho $runtime\n\nstart=`date +%s`\n/opt/ejdk1.8.0/linux_arm_sflt/jre/bin/java -server -jar jvm-benchmark-all-0.1.0-SNAPSHOT.jar\nend=`date +%s`\n\nruntime=$((end-start))\necho $runtime\n```\n\n## The results:\n\n```\nrobot@ev3dev:~$ ./benchmark.sh\n\nGeneralBench 1.2\n       6 byte[16384] manual copies:       182 ms     540131 bytes/sec\n    1220 byte[16384] arraycopies:         360 ms   55523555 bytes/sec\n      24 int[4096] manual copies:         200 ms    1966080 bytes/sec\n    1220 int[4096] arraycopies:           361 ms   55369750 bytes/sec\n  200000 byte add:                         67 ms    2985074 ops/sec\n  200000 byte sub:                         60 ms    3333333 ops/sec\n  200000 byte mul:                         63 ms    3174603 ops/sec\n  200000 byte div:                         95 ms    2105263 ops/sec\n  200000 short add:                       102 ms    1960784 ops/sec\n  200000 short sub:                        91 ms    2197802 ops/sec\n  200000 short mul:                        79 ms    2531645 ops/sec\n  200000 short div:                       115 ms    1739130 ops/sec\n  200000 char add:                         68 ms    2941176 ops/sec\n  200000 char sub:                         89 ms    2247191 ops/sec\n  200000 char mul:                         77 ms    2597402 ops/sec\n  200000 char div:                        149 ms    1342281 ops/sec\n  200000 int add:                          69 ms    2898550 ops/sec\n  200000 int sub:                          74 ms    2702702 ops/sec\n  200000 int mul:                          86 ms    2325581 ops/sec\n  200000 int div:                         106 ms    1886792 ops/sec\n  200000 long add:                         77 ms    2597402 ops/sec\n  200000 long sub:                         83 ms    2409638 ops/sec\n  200000 long mul:                        102 ms    1960784 ops/sec\n  200000 long div:                        232 ms     862068 ops/sec\n  200000 float add:                       103 ms    1941747 ops/sec\n  200000 float sub:                       112 ms    1785714 ops/sec\n  200000 float mul:                       104 ms    1923076 ops/sec\n  200000 float div:                       175 ms    1142857 ops/sec\n  200000 double add:                      124 ms    1612903 ops/sec\n  200000 double sub:                      127 ms    1574803 ops/sec\n  200000 double mul:                      101 ms    1980198 ops/sec\n  200000 double div:                      527 ms     379506 ops/sec\n  200000 method calls:                    880 ms     227272 ops/sec\n  200000 static method calls:             868 ms     230414 ops/sec\n    2000 string concats:                 2896 ms        690 ops/sec\n   20000 string compares (easy):          605 ms      33057 ops/sec\n    1000 string compares (hard):           22 ms      45454 ops/sec\n   20000 object creations:                853 ms      23446 ops/sec\n 6242048 Total Loop Executions:         21614 ms     288796 loops/sec\nNote: each Loop Execution includes multiple Java operations\n100\n\nGeneralBench 1.2\n       6 byte[16384] manual copies:        87 ms    1129931 bytes/sec\n    1220 byte[16384] arraycopies:         162 ms  123385679 bytes/sec\n      24 int[4096] manual copies:         111 ms    3542486 bytes/sec\n    1220 int[4096] arraycopies:           144 ms  138808888 bytes/sec\n  200000 byte add:                         96 ms    2083333 ops/sec\n  200000 byte sub:                          9 ms   22222222 ops/sec\n  200000 byte mul:                          3 ms   66666666 ops/sec\n  200000 byte div:                         35 ms    5714285 ops/sec\n  200000 short add:                       116 ms    1724137 ops/sec\n  200000 short sub:                         2 ms  100000000 ops/sec\n  200000 short mul:                         1 ms  200000000 ops/sec\n  200000 short div:                        47 ms    4255319 ops/sec\n  200000 char add:                        119 ms    1680672 ops/sec\n  200000 char sub:                          2 ms  100000000 ops/sec\n  200000 char mul:                          2 ms  100000000 ops/sec\n  200000 char div:                         41 ms    4878048 ops/sec\n  200000 int add:                         105 ms    1904761 ops/sec\n  200000 int sub:                           2 ms  100000000 ops/sec\n  200000 int mul:                           1 ms  200000000 ops/sec\n  200000 int div:                          55 ms    3636363 ops/sec\n  200000 long add:                        108 ms    1851851 ops/sec\n  200000 long sub:                         -1 ms -200000000 ops/sec\n  200000 long mul:                         -2 ms -100000000 ops/sec\n  200000 long div:                        357 ms     560224 ops/sec\n  200000 float add:                       238 ms     840336 ops/sec\n  200000 float sub:                         1 ms  200000000 ops/sec\n  200000 float mul:                         1 ms  200000000 ops/sec\n  200000 float div:                         1 ms  200000000 ops/sec\n  200000 double add:                      315 ms     634920 ops/sec\n  200000 double sub:                        1 ms  200000000 ops/sec\n  200000 double mul:                        1 ms  200000000 ops/sec\n  200000 double div:                        1 ms  200000000 ops/sec\n  200000 method calls:                     85 ms    2352941 ops/sec\n  200000 static method calls:              75 ms    2666666 ops/sec\n    2000 string concats:                  491 ms       4073 ops/sec\n   20000 string compares (easy):           62 ms     322580 ops/sec\n    1000 string compares (hard):            3 ms     333333 ops/sec\n   20000 object creations:                135 ms     148148 ops/sec\n 6242048 Total Loop Executions:          5200 ms    100393 loops/sec\nNote: each Loop Execution includes multiple Java operations\n11\nrobot@ev3dev:~$\n```\n\n## Conclussions:\n\nAfter the review of the results, it is clear that it is better to use\nthe Oracle JVM for EV3 Brick.\n\nJuan Antonio\n\n**Sources:**\nhttps://sourceforge.net/p/lejos/nxt/code/HEAD/tree/trunk/org.lejos.nxt.benchmark/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fev3dev-lang-java%2Fjvm-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fev3dev-lang-java%2Fjvm-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fev3dev-lang-java%2Fjvm-benchmark/lists"}