四年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

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

详解SpringBoot+Ehcache使用示例

《详解SpringBoot+Ehcache使用示例》本文介绍了SpringBoot中配置Ehcache、自定义get/set方式,并实际使用缓存的过程,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录摘要概念内存与磁盘持久化存储:配置灵活性:编码示例引入依赖:配置ehcache.XML文件:配置

Java 虚拟线程的创建与使用深度解析

《Java虚拟线程的创建与使用深度解析》虚拟线程是Java19中以预览特性形式引入,Java21起正式发布的轻量级线程,本文给大家介绍Java虚拟线程的创建与使用,感兴趣的朋友一起看看吧... 目录一、虚拟线程简介1.1 什么是虚拟线程?1.2 为什么需要虚拟线程?二、虚拟线程与平台线程对比代码对比示例:三

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Java中的.close()举例详解

《Java中的.close()举例详解》.close()方法只适用于通过window.open()打开的弹出窗口,对于浏览器的主窗口,如果没有得到用户允许是不能关闭的,:本文主要介绍Java中的.... 目录当你遇到以下三种情况时,一定要记得使用 .close():用法作用举例如何判断代码中的 input