不知道写了这么长时间java代码的你,又没有过这样的体验:多年前的代码,准备翻一下,找些可用代码的时候,发现一堆命名都看不懂,代码次序也很乱,进而导致整个项目都无从下手,工作效率下降。那么,要想解决这个问题,该从哪些方面下手才能更好地追求高效代码?
高效的代码,首先要易维护,易扩展,可读性佳,可以从以下三个方面努力:
一. 代码规范和合理的注释-利于后续维护和扩展。
二. 学习优秀的java代码,公司内部已有的优秀代码/框架,或者是优秀的开源库。站在巨人的肩膀上才能走的更远。
三. 开阔的视野,不能仅限于自己的一亩三分地,应该主动学习周边知识,了解上下游,这样可以加深自己的理解。
写出运行效率高的代码,这里不敢妄论,只能简单介绍下自己所认识的冰山一角:效率层面代码优化的目标,有三个等级:二进制一致 -> 效果一致 -> 效果有损。
具备的基础知识:微机原理/数据结构/操作系统/各类CPU芯片的基础架构等。
以及三个优化层面:
一.java算法层面的优化
算法本身的优化。请记住,算法层面的优化永远应该是最先考虑的,优秀的算法所获得的收益远远超出下面的两种方案。举个简单的栗子,快排比冒泡要快很多,二分查找比循环遍历表现要好。另外具体可以从一下方面着手:通过数学等效,减少冗余计算;通过高效等效求解,降低计算量;通过降低精度或准度,结合运算优化,减少运算负载;对算法做简化或规模裁剪。
还不够具体?好吧。
二.运算层面的优化
算法在特定硬件上的实现优化,目标是充分并高效利用硬件的存储/数据带宽/计算单元等硬件资源;
具体可以尝试以下方法:找出程序热点(可以借助性能分析工具,如vtune,pref等);优化调度,以减少空转;并行优化(多batch等);带宽永远是最该被关注的(cache/访存等); 优化目标:java运算部件填充满;可以参考roofline model。
二.存储上的优化 - 与运算优化紧密耦合,主要指内存优化
具体来说,可以尝试一下方法:定制内存分配器,合理重用内存;内存池;控制内存碎片;数据结构注意内存对齐;定点化,可以减小数据本身的尺寸,但是会影响结果精度。
【关键词:青岛Java开发培训,学Java开发多少钱,Java就业培训,Java培训哪家好,中享思途】