[Engine-devel] Guid improvements

Yair Zaslavsky yzaslavs at redhat.com
Sun Jun 30 08:13:56 UTC 2013


Well done, should have been done ages ago :)
Now, for the painful rebase of async_task_mgr changes :)


----- Original Message -----
> From: "Allon Mureinik" <amureini at redhat.com>
> To: "engine-devel" <engine-devel at ovirt.org>, "Barak Azulay" <bazulay at redhat.com>
> Cc: "Yair Zaslavsky" <yzaslavs at redhat.com>, "Michael Pasternak" <mpastern at redhat.com>, "Tal Nisan"
> <tnisan at redhat.com>, "Ayal Baron" <abaron at redhat.com>
> Sent: Sunday, June 30, 2013 11:11:30 AM
> Subject: Guid improvements
> 
> Hi all,
> 
> I just merged a couple of improvements to the [N]Guid class [1] to improve
> it's performance both CPU-wise and memory-wise, based on a set of benchmarks
> presented by Liran.
> 
> What this patchset achieves:
> 1. Clean up the code, so it's easier to understand and use
> 2. Eliminate the inflation in the memory foot print caused by the getValue()
> method
> 3. Eliminate all the heavy calls to UUID.fromString when creating a new/empty
> Guid instance as a default value
> 4. Note that the cleanups proposed in (1) will have minor performance
> benefits (e.g., eliminating useless conditional statements), but I doubt
> this would be anything to write home about.
> 
> From a developer's perspective, here's what changed:
> 1. No more NGuid, just Guid. Both static methods to create a Guid from String
> still exist, and are named createGuidFromString and
> createGuidFromStringDefaultEmpty.
> 2. [N]Guid.getValue() was removed, it's no longer needed after (1) was
> implemented
> 3. The Guid() constructor was made private, as it forced a redundant call to
> UUID.fromString(String). If you need an empty Guid instance, just use
> Guid.Empty
> 4. The Guid.EMPTY_GUID_VALUE string constant was removed, as it was used for
> redundant calls to UUID.fromString. If you really, REALLY, need it, just
> call Guid.Empty.getValue() for a UUID or Guid.Empty.toString() for a String.
> 5. All sorts of ways to transform Strings to Guids were removed. If you have
> a literal you trust, just use new Guid(String). If you suspect it may be
> null, use Guid.createGuidFromString[DefaultEmpty]
> 6. NewGuid is now called newGuid. We're in Java, not C# :-)
> 
> 
> Many thanks to everyone who reviewed this patchset.
> You guys rock!
> 
> 
> Regards,
> Allon
> 
> 
> [1]
> http://gerrit.ovirt.org/#/q/project:ovirt-engine+branch:master+topic:guid-cleanup,n,z
> 



More information about the Engine-devel mailing list