** procedure
1. 预加载数据库数据到内存
读DB的订单,性能提高了近十倍(10分钟处理降低到1分钟之内处理)
2. sql索引,去掉逻辑主键的聚集索引,对domain和manufactory建立聚集索引
1. 使得页查询由几千次降低到49次
3. 读文件的930订单由10分钟降低到4分钟
1. log4j时要输出行号, 调用log4j的log format(%c{1}:%L),它会Newthrowble,结
果就复制了log的堆
栈,导致性能下降
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd
HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
改为
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd
HH:mm:ss,SSS} %5p - %m%n
2. 缓存正则表达式的pattern.compile结果
1. new pattern.compile()中会newcomplie对象1亿多次,加缓存下降到2万次
4. 4分钟订单,在compareLinkAssignmentPriority里的printCompareLog被调用200万
次,耗时近2分钟
log4j: BufferIO == true;
log4j: BufferSize == 131072;
调了4次log.info,原来是27,33,33,32秒,改完缩短到了8&