Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.024 Beiträge
 
Delphi 12 Athens
 
#8

AW: GUID nicht unique unter iOS / Android

  Alt 18. Mär 2016, 10:13
Macht da jemand einen Quality-Eintrag? Das ist ja schon kritisch. Wir verwenden in unserer App auch GUIDs. Allerdings generieren wir bisher nicht mehrere direkt hintereinander.
Ich bin mir gar nicht sicher, daß der Fehler tatsächlich im Delphi steckt und damit dort überhaupt behoben werden kann. Delphi ruft in allen Fällen eine externe Bibliothek des Betriebssystems auf. Wenn der Fehler dort liegt, hat man kaum eine Chance das zu umgehen. Selbst wenn das in einer Version x dieser Bibliothek gefixt ist, kann man ja noch nicht mal davon ausgehen, daß auf dem Zielgerät auch diese Version im Einsatz ist.

Der UUID-Generator von Android richtet sich nach RFC 4122, der geht intern von einer Auflösung der Systemzeit von 100 ns aus. Werden innerhalb dieser 100 ns aber weiter UUIDs generiert, kommt es per Definition schon zu Kollisionen, die vom Algorithmus abgefangen werden sollten.

Vielleicht erzeugt Delphi einfach nur zu schnellen Code

Du kannst ja mal versuchen, ein Sleep(1) zwischen die Generierung zu setzen. Bei 100 GUIDs hast du dann eine Verzögerung von 100 ms. Das ist zwar nicht schön, aber besser als kollidierende GUIDs.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat