先看一下支付宝的订单号:2015082600001000040061749694
分析看来:
前六位数(20150826)是年月日格式化:yyyyMMdd
中间的8位数(00001000)是:00001000,固定4个0+1000
在后两位(04):随机生成一个两位数
在后两位(00):又是固定的两个0
接下来的6位数是(617496):时分秒的格式化HHmmss
最后两位是(94):又是随机生成
第一回合直接运行代码:CPU瞬间百分之百
然后优化下把年月日,时分秒分别提取出来,假设1秒钟跑1w次:
- public static void main(String[] args) {
- String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
- String seconds = new SimpleDateFormat("HHmmss").format(new Date());
- for (int i = 0; i < 10000; i++) {
- System.out.println(date+"00001000"+getTwo()+"00"+seconds+getTwo());
- }
- }
- /**
- * 产生随机的2位数
- * @return
- */
- public static String getTwo(){
- Random rad=new Random();
-
- String result = rad.nextInt(100) +"";
-
- if(result.length()==1){
- result = "0" + result;
- }
- return result;
- }
再次查看cpu掉了40%,基于目前还未做集群负载的情况下,60%是可以接受的,那么就先告一段落~~
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。