首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

怎么让你混乱不堪的java代码,变得整洁一些?

不知道写了这么长时间java代码的你,又没有过这样的体验:多年前的代码,准备翻一下,找些可用代码的时候,发现一堆命名都看不懂,代码次序也很乱,进而导致整个项目都无从下手,工作效率下降。

那么,要想解决这个问题,该从哪些方面下手才能更好地追求高效代码?

高效的代码,首先要易维护,易扩展,可读性佳,可以从以下三个方面努力:

一. 代码规范和合理的注释-利于后续维护和扩展。

二. 学习优秀的java代码,公司内部已有的优秀代码/框架,或者是优秀的开源库。站在巨人的肩膀上才能走的更远。

三. 开阔的视野,不能仅限于自己的一亩三分地,应该主动学习周边知识,了解上下游,这样可以加深自己的理解。

写出运行效率高的代码,这里不敢妄论,只能简单介绍下自己所认识的冰山一角:效率层面代码优化的目标,有三个等级:二进制一致 -> 效果一致 -> 效果有损。

具备的基础知识:微机原理/数据结构/操作系统/各类CPU芯片的基础架构等。

以及三个优化层面:

一. java算法层面的优化

算法本身的优化。请记住,算法层面的优化永远应该是最先考虑的,优秀的算法所获得的收益远远超出下面的两种方案。举个简单的栗子,快排比冒泡要快很多,二分查找比循环遍历表现要好。另外具体可以从一下方面着手:通过数学等效,减少冗余计算;通过高效等效求解,降低计算量;通过降低精度或准度,结合运算优化,减少运算负载;对算法做简化或规模裁剪。

还不够具体?好吧。

二. 运算层面的优化

算法在特定硬件上的实现优化,目标是充分并高效利用硬件的存储/数据带宽/计算单元等硬件资源;

具体可以尝试以下方法:找出程序热点(可以借助性能分析工具,如vtune,pref等);优化调度,以减少空转;并行优化(多batch等);带宽永远是最该被关注的(cache/访存等);优化目标:java运算部件填充满;可以参考roofline model。

三. 存储上的优化 - 与运算优化紧密耦合,主要指内存优化

具体来说,可以尝试一下方法:定制内存分配器,合理重用内存;内存池;控制内存碎片;数据结构注意内存对齐;定点化,可以减小数据本身的尺寸,但是会影响结果精度。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201102A04ZML00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券