Math.random()和UUID.randomUUID().toString()性能对比【纯原】
2017-06-02 18:11
190 查看
Math.random()和UUID.randomUUID().toString()性能对比
不言而喻,因为Math.random()不需要保证唯一性,所做的操作远比UUID消耗更小的性能,在部分要求不严格的场景,通过Math.random()和其它业务唯一码仍能方便定位某条数据,此时就可以考虑使用Math.random().
压测代码如下:
package test; import java.util.UUID; public class Test { public static void main(String[] args) { mathRandom(); uuidRandom(); } public static void mathRandom() { long cost = 0; for (int i = 0; i < 100000; i++) { long start = System.currentTimeMillis(); double d = Math.random(); long end = System.currentTimeMillis(); cost += (end - start); } System.out.println("mathRandom:[" + cost + "]"); } public static void uuidRandom() { long cost = 0; for (int i = 0; i < 100000; i++) { long start = System.currentTimeMillis(); String uudi = UUID.randomUUID().toString(); long end = System.currentTimeMillis(); cost += (end - start); } System.out.println("uuidRandom:[" + cost + "]"); } }
10万次循环,打印结果如下,相差近40倍:
mathRandom:[14] uuidRandom:[428]
相关文章推荐
- Math.random()和java.util.Random对比
- UUID.randomUUID().toString()
- [].forEach.call($$("*"),function(a){ a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16) })
- UUID.randomUUID().toString()
- sqlite采用UUID主键和int型自增主键性能对比测试
- Mysql 使用UUID和自增主键ID性能对比测试
- UUID.randomUUID().toString() 的作用
- UUID.randomUUID().toString 简单解释
- sqlite采用UUID主键和int型自增主键性能对比测试
- 序列化框架性能对比(kryo、hessian、java、protostuff)
- 关于In和Exists性能网上找的对比资料
- php5.2与5.3性能测试对比
- 代码干货 | 行存、列存_堆表、AO表性能对比-阿里云HDB for PostgreSQL最佳实践
- Math和Random常用函数
- GO,NODEJS,.NetCore性能对比
- workerman和nodejs自测性能对比
- windows环境下php使用Xcache前后的性能对比
- 豆瓣和javaeye以前在性能上的一些对比
- Memcached与OCS性能对比
- Hadoop vs Spark性能对比