{"id":9973,"date":"2013-09-26T22:09:21","date_gmt":"2013-09-27T02:09:21","guid":{"rendered":"http:\/\/scruss.com\/blog\/?p=9973"},"modified":"2013-09-26T22:09:21","modified_gmt":"2013-09-27T02:09:21","slug":"faster-java-on-raspberry-pi","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2013\/09\/26\/faster-java-on-raspberry-pi\/","title":{"rendered":"Faster Java on Raspberry Pi"},"content":{"rendered":"<p>With the official announcement of <a href=\"http:\/\/www.raspberrypi.org\/archives\/4920\">Oracle Java on Raspberry Pi<\/a>, Java just got usable on the Raspberry Pi. It&#8217;s still not super-fast, but I&#8217;m seeing ~10\u00c3\u2014 speedup over <a href=\"http:\/\/openjdk.java.net\/\">OpenJDK<\/a>.<\/p>\n<p>To install it (on Raspbian):<\/p>\n<pre>sudo apt-get update &amp;&amp; sudo apt-get install oracle-java7-jdk\r\nsudo update-java-alternatives -s jdk-7-oracle-armhf<\/pre>\n<p>By way of a baseline, here are <a href=\"http:\/\/math.nist.gov\/scimark2\/index.html\">SciMark 2.0<\/a> results on OpenJDK:<\/p>\n<pre>$ java -classpath .\/scimark2lib.jar jnt.scimark2.commandline -large\r\n\r\nSciMark 2.0a\r\n\r\nComposite Score: 2.4987047508570632\r\nFFT (1048576): 1.5550941987343943\r\nSOR (1000x1000):\u00c2\u00a0\u00c2\u00a0 5.32030759023185\r\nMonte Carlo : 0.6005590152716936\r\nSparse matmult (N=100000, nz=1000000): 2.3584905938878946\r\nLU (1000x1000): 2.6590723561594847\r\n\r\njava.vendor: Sun Microsystems Inc.\r\njava.version: 1.6.0_27\r\nos.arch: arm\r\nos.name: Linux\r\nos.version: 3.6.11+<\/pre>\n<p>Here&#8217;s what the Oracle JDK cranks out (bigger numbers \u00e2\u2020\u2019 better):<\/p>\n<pre>$ java -classpath .\/scimark2lib.jar jnt.scimark2.commandline -large\r\n\r\nSciMark 2.0a\r\n\r\nComposite Score: 14.94896390647437\r\nFFT (1048576): 6.953238474333376\r\nSOR (1000x1000):\u00c2\u00a0\u00c2\u00a0 33.91437255527547\r\nMonte Carlo : 8.869794361002157\r\nSparse matmult (N=100000, nz=1000000): 9.81896340073432\r\nLU (1000x1000): 15.188450741026523\r\n\r\njava.vendor: Oracle Corporation\r\njava.version: 1.7.0_40\r\nos.arch: arm\r\nos.name: Linux\r\nos.version: 3.6.11+<\/pre>\n<p>That&#8217;s a tidy increase, and might make <a href=\"http:\/\/scruss.com\/blog\/2012\/08\/12\/controlling-an-arduino-from-raspberry-pi-using-processing\/\">Processing and Arduino<\/a> much easier to work with.<\/p>\n<p>(It&#8217;s still not tremendously fast, though. My i7 quad-core has a composite score of nearly 1450 \u00e2\u20ac\u00a6)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>With the official announcement of Oracle Java on Raspberry Pi, Java just got usable on the Raspberry Pi. It&#8217;s still not super-fast, but I&#8217;m seeing ~10\u00c3\u2014 speedup over OpenJDK. To install it (on Raspbian): sudo apt-get update &amp;&amp; sudo apt-get install oracle-java7-jdk sudo update-java-alternatives -s jdk-7-oracle-armhf By way of a baseline, here are SciMark 2.0 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[1334,2510],"class_list":["post-9973","post","type-post","status-publish","format-standard","hentry","category-computers-suck","tag-java","tag-raspberrypi"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-2AR","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/9973","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=9973"}],"version-history":[{"count":1,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/9973\/revisions"}],"predecessor-version":[{"id":9974,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/9973\/revisions\/9974"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=9973"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=9973"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=9973"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}