建设旅游网站的功能定位,电子商务的分类,网站建设 事业单位 安全,利用网站源代码建立网站2019独角兽企业重金招聘Python工程师标准 开发者在编程中除了要有编程规范#xff0c;还要注意性能#xff0c;在 Java 编程中有什么提高性能的好办法呢#xff1f; 本文转自国内 ITOM 行业领军企业 OneAPM Cloud Insight#xff08;一款能够优雅监控多种操作… 2019独角兽企业重金招聘Python工程师标准 开发者在编程中除了要有编程规范还要注意性能在 Java 编程中有什么提高性能的好办法呢 本文转自国内 ITOM 行业领军企业 OneAPM Cloud Insight一款能够优雅监控多种操作系统、数据库、中间件、云主机的解决方案美女工程师陈永梅简书。 开发者在编程中除了要有编程规范还要注意性能哦今天就工作中遇到的一些问题进行了一个简单总结希望攻城狮来批评指正。 作为一个QA从质量管理方面得到的认识 一行代码能解决的问题 尽量不要使用多行代码行数越多 维护成本越高出现缺陷的概率也就越多一行代码编写可能只需要 30s发现并优化一行代码产生的性能问题需要 72h甚至更多。不说了下面就简单说下实际编程过程中性能相关的问题吧 1、循环逻辑中减少创建对象次数 例如 for(int i 0;i list.size; i ) {
…
}应替换为 for(int i 0,int len list.size();i len; i ) {
…
}2、关注循环结构是否存在多次访问网络、数据库等操作 原则能够一次性查询完成的 尽量避免多次查询。 优化前 优化后 3、对象容错性差 原则参数传递过程中不要直接转换使用 JSONObject 这种对象如果取值不存在该方法会报异常导致程序中止尽量转为 JavaBean 或 Map否则应先判断取的值是否存在。最好以 JavaBean 封装接收参数并对参数进行初步较验不能将数据完整性交给前端处理。 如果使用 JSONObject 对象应先进行存在判断if(json.contains(“xxx”)) 4、对需要缓存的信息进行合理设计 原则登录功能要分析哪些是跟用户密切相关的如 session 信息哪些是跟业务系统属性相关的如系统配置资源信息。后者则应当进行缓存处理避免每次登录都构建获取信息。 5、业务逻辑的执行顺序问题 原则在进行逻辑判断的过程中尽量使复杂操作延迟执行不要提前执行如登录操作只有登录成功后才做相关资源加载、查询操作 如示例静态资源应尽量后置,建议大家在业务逻辑梳理时先否定再肯定也就是先列不满足业务的条件。 优化前 优化后 6、Try…catch 相对消耗性能比较严重尽量减少使用频率使用中尽量扩大作用范围禁止出现在循环等操作中。 7、创建类似数组等可以设定大小的对象应尽可能指定大小最大限度减少内存空间的浪费。 8、HashMap 的读取遍历使用 entry而不是先取 key 集合再取值。 9、在方法中创建的对象最好在使用完毕后将引用指向 null利于 GC 垃圾回收。 10、数组复制使用 system.arraycopy()减少使用创建新数组赋值的方法。 11、方法大小不要超过80行方法栈太深容易导致内存溢出尽量不要出现功能太少的类类的维护也需要性能开销。 12、创建复杂对象应使用clone方法减少构造方法调用的开销。 13、待续... Cloud Insight 集监控、管理、计算、协作、可视化于一身的数据管理平台帮助所有 IT 公司减少在系统监控上的人力和时间成本投入让运维工作更加高效、简单。 本文转自 OneAPM 官方博客 转载于:https://my.oschina.net/oneapmofficial/blog/626404