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
_______________________________________________
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel

Reply via email to