java 常用最实用的性能优化...
来源:互联网 发布:wps excel 数据分析 编辑:程序博客网 时间:2024/06/13 16:38
工作中,很多时候我们只是为了完成任务而编码...缺少思考的时间...下面谈谈几个优化...虽然很基础,但是很实用.....
嵌套for循环...说到循环,大家一定没少用...但是有时候就是因为一行代码的顺序直接影响整个方法的响应时间...
- long stratTime = System.nanoTime();
- for (int i = 0; i < 10000000; i++) {
- for (int j = 0; j < 10; j++) {
- system.out.println("那你很棒棒哦!!!")
- }
- }
- long endTime = System.nanoTime();
- System.out.println("总耗时:"+ (endTime - stratTime));
- 输出结果: 总耗时:4573255
- 改成 :
- long stratTime = System.nanoTime();
for (int i = 0; i <10 ; i++) {
for (int j = 0; j < 10000000; j++) {
system.out.println("那你很棒棒哦!!!")
}
}
long endTime = System.nanoTime();
System.out.println("总耗时:"+(endTime - stratTime)); - 输出结果: 总耗时:12840246
- 由以上对比可知,优化后性能提升了一倍,嵌套循环应该遵循“外小内大”的原则,这就好比你复制很多个小文件和复制几个大文件的区别。
l循环list,想必用的最多,但是可能因为习惯性的i<list.size(),导致性能下降了一半...
例如:
- List<?> list = xxx.findByxxx();
- for (int i = 0; i <list.size(); i++) {
- //处理业务逻辑......
- }
- for每执行一次,list.size()都会执行一次,这无疑会大大降低系统性能...如果改成:
- int listSize = list.size();
- for(int i = 0 ; i<listSize;i++){
- //业务逻辑...
- }
- 性能提升至少三分之一...
异常处理...
for内部捕获...
- long stratTime = System.nanoTime();
- for (int i = 0; i < 10000000; i++) {
- try {
- } catch (Exception e) {
- }
- }
- long endTime = System.nanoTime();
- System.out.println("在内部捕获异常耗时:"+(endTime - stratTime));
for外部捕获...
- long stratTime = System.nanoTime();
- try {
- for (int i = 0; i < 10000000; i++) {
- }
- } catch (Exception e) {
- }
- long endTime = System.nanoTime();
- System.out.println("在外部捕获异常耗时:"+(endTime - stratTime));
- 在内部捕获异常耗时:12150142
- 在外部捕获异常耗时:1955
- 捕获异常是很耗资源的,所以不要把try catch放到循环内部,优化后性能,响应速度提升数倍...
阅读全文
0 0
- java 常用最实用的性能优化...
- java常用的性能优化
- java几个常用的性能优化细节
- Effective MySQL之SQL语句最优化,性能改进的实用知识。
- java性能优化常用技巧
- CSS最常用和实用的技巧
- 最常用和实用的CSS技巧
- 最常用和实用的CSS技巧
- Eclipse最常用及实用的快捷键
- eclipse常用插件,最实用的插件
- 最常用的SQl优化
- 常用的性能优化技巧
- Java 性能的优化
- Java性能的优化
- Java性能的优化
- Java性能的优化
- Java性能的优化
- Java性能的优化
- mysql死锁
- 【转载】[协同过滤] : 交替最小二乘法 ALS
- 高通apq8096连接外网
- 链表面试题总结 C/C++
- ambari安装hive以mysql作为元数据存储建表失败的解决办法
- java 常用最实用的性能优化...
- 与Serverless 的第一次亲密接触
- python FizzBuzz问题
- 第5周【项目2
- 目标检测:rcnn-->sppnet-->fast rcnn-->faster rcnn
- Win7环境MYSQL 主从复制的配置(无插件版)
- 把cad文件怎样转换成jpg图片格式
- idea springBoot 热部署
- Kotlin学习一 制作RecyclerView列表