四年java coder 苦逼滴优化经验 精简总结,详情可与微博 @光工作坊 切磋

本文主要是介绍四年java coder 苦逼滴优化经验 精简总结,详情可与微博 @光工作坊 切磋,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一 前端
img图片 指定长宽,压缩img图片,整页尽量合并图片,类似taobao滴做法
css代码调优
css加载文件顺序,css文件压缩
js加载文件依赖优化(可依赖雅虎滴前端框架,也可自己写js代码,原理是合理利用js滴document.write.),js文件压缩
jsp文件压缩(包括jsp文件滴代码压缩 和 服务器中间件滴设置jsp格式压缩)
js框架优化(如合理削减jquery相关滴插件相关滴包相关滴function等等...)
js代码书法优化(理解js内部作用域链滴原理作代码优化,优化js滴for循环等等...)


二 中端
jsp代码编写优化(比如尽管少用session,合理利用动静态include....)
ssh框架组合优化(项目后期 配置文件的优化偏多)
框架service 层 dao层 业务逻辑方面滴代码优化,涉及充血模型,贫备模型滴理解
框架中事务管理滴优化(偏重于spring或者自己事务框架滴优化)
框架中java代码的书写优化(比如 null加保护,for循环里小心new对象,大对象尽点手动指null)
如果有orm滴,就orm滴优化(比如hibernate滴主键配置滴优化,一对多转多对一配置映射滴优化,延迟加载滴优化,二级缓存优化,没有超越要求,尽量避免三级缓存)
中间件滴 jvm回收算法 等的配置优化(比如 堆里新生代老生代滴内存分配,哪类型的项目采取哪类型的回收算法,单线程多线程等,当然这些还要兼顾jvm滴版本问题,是hotspot


不是jrocky等,是1.5 1.6 还是1.7,1.7里的G1已经做得够好滴了)
如果利用到了web服务器,如apache等,也需要就http连接池最大连接数 等作出一点小优化


三 后端
mysql
生产环境中会涉及mysql配置参数滴优化,如键缓存,缓存池滴内存分配等的优化,对developer不作要求
数据库表结构优化(如多用not null,datatime转timestamp,varchar限制字符数,合理利用char,tinyint,大数据表与小数据表分开,tui直分离,水平分离-表分区,char字段


不建索引,innodb必须建主键,表关联优化等等...)
sql优化及索引优化(合理分析执行计划合理预测分析生产环境数据建立索引,如尽量不要在char上建索引,datatime索引转timestamp索引,sql合理利用覆盖索引,如分页sql可利


用覆盖索引来延迟加载,innodb不用COUNT(*),group by后加order by null,合理利用及关闭SQL_QUERY_NOCACHE查询缓存,sql语句中尽量不使用类似current_date这种han数,


对查询缓存不起效等等等等等等..........)
如果业务有需要开mysql集群(共享滴data,表引擎需要改成dbd滴),mysql读写分离,master to slave或者master to master按情况而定,如果有牛人也可以master to master to master to master .......



若oracle迁移到mysql,db结构的迁移工作量是不大滴(难点是mysql跟oracle滴表关联时略有不同,没有oralce那么强大,需要妥协),主要工作量是sql代码需要优化,存储过程需


要重写(如就我所知oracle滴存储过程会用到大量滴数组,而mysql滴存储过程没有数组这个概念,用临时表代替等等....)







这篇关于四年java coder 苦逼滴优化经验 精简总结,详情可与微博 @光工作坊 切磋的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/455913

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("