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 ähnliches hatte ich vor 2 Jahren schon mal geschrieben.
Die generierten UUIDs oder Teile davon kann man auch als Passwort verwenden 😉
Hier das kleine Java Programm:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
package de.wenzlaff; import java.time.Clock; import java.time.Duration; import java.time.Instant; import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * UUID Test. * * @author Thomas Wenzlaff * */ public final class TestUuid { /** * Test. * * @param args Anzahl der durchläufe */ public static void main(String[] args) { TestUuid zeitTest = new TestUuid(); int anzahl = Integer.parseInt(args[0]); System.out.println("Start UUID Test mit " + anzahl + " durchläufen ..."); Clock myclock = Clock.systemDefaultZone(); Instant startZeitpunkt = myclock.instant(); System.out.println("Startzeitpunkt: " + startZeitpunkt); zeitTest.runUUIDTest(anzahl); Instant endeZeitpunkt = Instant.now(); System.out.println("Endzeitpunkt: " + endeZeitpunkt); Duration dauer = Duration.between(startZeitpunkt, endeZeitpunkt); System.out.println("Dauer des Testlaufs mit " + anzahl + " durchläufen: " + dauer); System.out.println("UUID Test beendet."); } private void runUUIDTest(int max) { List<String> randomUUIDs = new ArrayList<>(); for (int i = 0; i < max; i++) { String id = UUID.randomUUID().toString(); if (randomUUIDs.contains(id)) { System.err.println("Doppelte ID " + id + " generiert!"); return; } randomUUIDs.add(id); System.out.println(id); } } } |
Wer das Programm nicht kompilieren will, kann das Archiv laden und auspacken.
Dann starten wir es mit Java 8 im Homeverzeichnis (nicht im de/wenzlaff Verzeichnis):
java de.wenzlaff.TestUuid 100000
schon werden 100000 UUIDs auf der Konsole ausgegeben.
Ein iMac braucht dafür 54,7 Sekunden:
Dauer des Testlaufs mit 100000 durchläufen: PT54.711S
Ein Raspberry Pi Zero:
Der Pi Zero braucht dafür 36 Minuten ist damit aber schon zu 100% ausgelastet:
Dauer des Testlaufs mit 100000 durchläufen: PT36M47.574S
und noch mal ein 2. Lauf:
Dauer des Testlaufs mit 100000 durchläufen: PT36M17.237S
ok, es bleibt bei 36 Minuten.
Aber auch er hat es geschaft, wenn auch 36 Mal länger 😉
Schreibt mir doch Eure Werte, die werde ich dann hier ergänzen.
Hier die Werte aus Berlin (danke Thomas):“
Ich habe folgende Zeiten für 100000 UUID Durchläufe ermittelt:
Desktop-PC mit Intel i5-4570: 1M35s auf der Kommandozeile, 1M57s in Netbeans
Raspberry Pi 3 B+: 10M6,994S
Der Raspi 3B+ scheint also dreimal so schnell zu rechnen als ein Pi Zero W.“