[ http://issues.apache.org/jira/browse/AXIS-2597?page=comments#action_12457021 ] Nathan Wang commented on AXIS-2597: -----------------------------------
And this is using 1.4 release in java version. > CLONE -SimpleUUIDGen.nextUUID() is very, very, very slow > -------------------------------------------------------- > > Key: AXIS-2597 > URL: http://issues.apache.org/jira/browse/AXIS-2597 > Project: Apache Axis > Issue Type: Bug > Affects Versions: 1.1 > Environment: Any > Reporter: Elwin Ho > > It takes .4917 seconds to generate just one UUID. (Yes, seconds.) This > renders the feature very nearly useless. > In SimpleUUIDGen, there is a simple, but very expensive, bug.. It creates a > new instance of SecureRandom on each call to nextUUID(). Making a new > instance of SecureRandom is very expensive because it has to set up the > environment for producing cryptographically strong random numbers. > The instance of SecureRandom should be in a static variable and init'ed just > once. Then, you call getNextLong() when you want another number from it. It > would be much faster that way without compromising the integrity of the UUIDs > generated. > BTW, If you look at the comment I copied from the code, it appears that this > is what the developer meant to make the SecureRandom instance static, but > forgot. > /** > * Creates a new UUID. The algorithm used is described by The Open Group. > * See <a href="http://www.opengroup.org/onlinepubs/009629399/apdxa.htm"> > * Universal Unique Identifier</a> for more details. > * <p> > * Due to a lack of functionality in Java, a part of the UUID is a secure > * random. This results in a long processing time when this method is > called > * for the first time. > */ > Here's a proposed fix. In the member variables, add the following. > private static Random secureRandom = null; > static { > try { > secureRandom = SecureRandom.getInstance("SHA1PRNG", "SUN"); > } catch (Exception e) { > secureRandom = new Random(); > } > } > The, remove the code near line 235 where the SecureRandom is being created. > This change should do it just once. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
