我有一个基于Web的
Java应用程序,为会话信息生成随机的UUID.我们的测试人员之一声称可以根据自己的分析来生成UUID最多达350ms,但是我还没有能够复制他的结果.他指出这篇文章
http://www.cowtowncoder.com/blog/archives/2010/10/entry_429.html来帮助他取得成效.我想看看其他任何人是否遇到Java的内置UUID生成功能的Java 6或Java 7应用程序的限制.
解决方法
我测试了
for (;;) { long t0 = System.currentTimeMillis(); for (int i = 0; i < 1000000; i++) { UUID.randomUUID(); } System.out.println(System.currentTimeMillis() - t0); }
在我的电脑上是〜1100 ms,这很慢. UUID.randomUUID()在内部使用SecureRandom,使得我们可以使用常规java.util.Random更快
Random r = new Random(); for (;;) { .. new UUID(r.nextLong(),r.nextLong());
这是〜80 ms