{"id":13180,"date":"2019-05-25T18:30:36","date_gmt":"2019-05-25T16:30:36","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=13180"},"modified":"2019-11-03T13:42:32","modified_gmt":"2019-11-03T12:42:32","slug":"raspberry-pi-jave-uuid-perfomance-vergleich-raspberry-pi-mit-imac","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=13180","title":{"rendered":"Raspberry Pi: Jave UUID perfomance Vergleich Raspberry Pi mit iMac"},"content":{"rendered":"<p>Wie lange braucht ein Raspberry Pi, im Vergleich zu anderen Rechner, um <strong>100000 UUIDs<\/strong> zu erzeugen und auf der Konsole auszugeben mit einem Test ob doppelte generiert werden. So was \u00e4hnliches hatte ich vor <a href=\"http:\/\/blog.wenzlaff.de\/?p=8299\" rel=\"noopener noreferrer\" target=\"_blank\">2 Jahren<\/a> schon mal geschrieben.<br \/>\n<a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/06\/UUID.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/06\/UUID.png\" alt=\"\" width=\"2732\" height=\"2048\" class=\"aligncenter size-full wp-image-8307\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/06\/UUID.png 2732w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/06\/UUID-300x225.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/06\/UUID-768x576.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2017\/06\/UUID-1024x768.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a> <\/p>\n<p>Die generierten UUIDs oder Teile davon kann man auch als Passwort verwenden \ud83d\ude09<\/p>\n<p>Hier das kleine Java Programm:<!--more--><\/p>\n<pre class=\"lang:java decode:true \" >package de.wenzlaff;\r\n\r\nimport java.time.Clock;\r\nimport java.time.Duration;\r\nimport java.time.Instant;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\nimport java.util.UUID;\r\n\r\n\/**\r\n * UUID Test.\r\n * \r\n * @author Thomas Wenzlaff\r\n *\r\n *\/\r\npublic final class TestUuid {\r\n\r\n\t\/**\r\n\t * Test.\r\n\t * \r\n\t * @param args Anzahl der durchl\u00e4ufe\r\n\t *\/\r\n\tpublic static void main(String[] args) {\r\n\t\tTestUuid zeitTest = new TestUuid();\r\n\r\n\t\tint anzahl = Integer.parseInt(args[0]);\r\n\t\tSystem.out.println(\"Start UUID Test mit \" + anzahl + \" durchl\u00e4ufen ...\");\r\n\r\n\t\tClock myclock = Clock.systemDefaultZone();\r\n\t\tInstant startZeitpunkt = myclock.instant();\r\n\t\tSystem.out.println(\"Startzeitpunkt: \" + startZeitpunkt);\r\n\r\n\t\tzeitTest.runUUIDTest(anzahl);\r\n\r\n\t\tInstant endeZeitpunkt = Instant.now();\r\n\t\tSystem.out.println(\"Endzeitpunkt: \" + endeZeitpunkt);\r\n\r\n\t\tDuration dauer = Duration.between(startZeitpunkt, endeZeitpunkt);\r\n\t\tSystem.out.println(\"Dauer des Testlaufs mit \" + anzahl + \" durchl\u00e4ufen: \" + dauer);\r\n\t\tSystem.out.println(\"UUID Test beendet.\");\r\n\t}\r\n\r\n\tprivate void runUUIDTest(int max) {\r\n\t\tList&lt;String&gt; randomUUIDs = new ArrayList&lt;&gt;();\r\n\r\n\t\tfor (int i = 0; i &lt; max; i++) {\r\n\t\t\tString id = UUID.randomUUID().toString();\r\n\t\t\tif (randomUUIDs.contains(id)) {\r\n\t\t\t\tSystem.err.println(\"Doppelte ID \" + id + \" generiert!\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\trandomUUIDs.add(id);\r\n\t\t\tSystem.out.println(id);\r\n\t\t}\r\n\t}\r\n}\r\n<\/pre>\n<p>Wer das Programm nicht kompilieren will, kann das <a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/05\/de.zip\">Archiv<\/a> laden und auspacken.<\/p>\n<p>Dann starten wir es mit <strong>Java 8<\/strong> im Homeverzeichnis (nicht im de\/wenzlaff Verzeichnis):<\/p>\n<p><strong>java de.wenzlaff.TestUuid 100000<\/strong><\/p>\n<p>schon werden 100000 UUIDs auf der Konsole ausgegeben.<\/p>\n<p>Ein iMac braucht daf\u00fcr <strong>54,7<\/strong> Sekunden:<\/p>\n<p>Dauer des Testlaufs mit 100000 durchl\u00e4ufen: PT54.711S<\/p>\n<p>Ein Raspberry Pi Zero:<\/p>\n<p>Der Pi Zero braucht daf\u00fcr <strong>36 Minuten<\/strong> ist damit aber schon zu 100% ausgelastet:<\/p>\n<p>Dauer des Testlaufs mit 100000 durchl\u00e4ufen: PT36M47.574S<\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/05\/htop-raspberry-zero.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/05\/htop-raspberry-zero.png\" alt=\"\" width=\"1112\" height=\"197\" class=\"aligncenter size-full wp-image-13183\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/05\/htop-raspberry-zero.png 1112w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/05\/htop-raspberry-zero-300x53.png 300w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/05\/htop-raspberry-zero-768x136.png 768w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2019\/05\/htop-raspberry-zero-1024x181.png 1024w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/p>\n<p>und noch mal ein 2. Lauf:<\/p>\n<p>Dauer des Testlaufs mit 100000 durchl\u00e4ufen: PT36M17.237S<\/p>\n<p>ok, es bleibt bei 36 Minuten.<\/p>\n<p>Aber auch er hat es geschaft, wenn auch <strong>36<\/strong> Mal l\u00e4nger \ud83d\ude09<\/p>\n<p>Schreibt mir doch Eure Werte, die werde ich dann hier erg\u00e4nzen.<\/p>\n<p>Hier die Werte aus Berlin (danke Thomas):&#8220;<\/p>\n<p>Ich habe folgende Zeiten f\u00fcr 100000 UUID Durchl\u00e4ufe ermittelt:<\/p>\n<p>Desktop-PC mit Intel i5-4570: 1M35s auf der Kommandozeile, 1M57s in Netbeans<\/p>\n<p>Raspberry Pi 3 B+: 10M6,994S<\/p>\n<p>Der Raspi 3B+ scheint also dreimal so schnell zu rechnen als ein Pi Zero W.&#8220; <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wie lange braucht ein Raspberry Pi, im Vergleich zu anderen Rechner, um 100000 UUIDs zu erzeugen und auf der Konsole auszugeben mit einem Test ob doppelte generiert werden. So was \u00e4hnliches hatte ich vor 2 Jahren schon mal geschrieben. Die generierten UUIDs oder Teile davon kann man auch als Passwort verwenden \ud83d\ude09 Hier das kleine &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=13180\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eRaspberry Pi: Jave UUID perfomance Vergleich Raspberry Pi mit iMac\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,1023,2752,2713,2658],"tags":[3627,2178,3628,2138,386],"class_list":["post-13180","post","type-post","status-publish","format-standard","hentry","category-java","category-raspberry-pi","category-raspberry-pi-zero-w","category-statistik","category-test-thema","tag-dauer","tag-java","tag-pi-mac","tag-vergleich","tag-zeit"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/13180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13180"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/13180\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13180"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}