对于前端的性能优化涉及到QPS三要素、优化模版、优化大数据处理、优化JVM参数设置
一、QPS三要素
1、多少个线程比较合适?
因为涉及到线程的数量,会导致FULL GC发生
2、响应时间
线程数量=线程执行总时间/瓶颈资源时间*瓶颈资源并行数 在计算对于同一类资源的消耗时间进行合并
QPS=1000/瓶颈资源时间*瓶颈资源并行数
什么是瓶颈资源?
前台系统的特点:动态页面渲染输出、页面非常大、数据来自多个远程服务(uc、sc、IC 等)、除了日志几乎没有对磁盘的读写
影响系统QPS的瓶颈主要是CPU、内存GC hold
二、优化模版
优化大数据处理搜索结果解析char to byte,序列化方式选择thrift、protobuffer 注意尽量使的自己模版空格较少 空格要压缩
规模效益:取决于脚本(判断、循环、比较、赋值)占整个模版的比例
减少模版的大小:
1、压缩模版的空白字符
2、重复数据合并 代码里面涉及到循环,并且里面有静态内容输出均可以采用此方法
3、异步渲染数据,不要进行假异步渲染 将页面中静态并且相对不重要的内容抽取出来,利用专门服务器优势CDN化 和cache化
10%-100%的内容的节省 QPS的提升10%-80%
三、JVM参数的调整
某系统操作系统32位升级到64位,注意的就是原始jvm参数的配置需要将OLD和yong区大小调整一倍,因为root set集合中的指针也扩展字节数,所以指针也占用了一定量的内存
yong区大小至少要大于每次请求内存消耗的100倍,OLD区被挤占的问题
将yong区变大
单次minorgc是否会变长的问题?
因为前台的系统返回的数据一般对象生命周期很短,minor gc会把无用的对象回收掉不会产生赋值的代价,增长的时间只会扫描上产生对象存活时有一点时间的限制,所以对于前台的应用系统适当增加yong区大小是不会产生时间变长。前台系统的数据只有缓存的数据才会存放在OLD区域。
下面是内存区域:
垃圾回收的基本步骤:
数据进入年老代的三个途径:
1、直接进入OLD区域,超过指定size的数据比较少见,一般一下子申请大片缓冲区
2、minorGC触发时。交换分区S0或者S1放不下
缓存数据,因为线程执行周期缓慢(线程数量比较多已经由于某些资源线程被阻塞)导致未释放的对象量太多
3、足够老的数据在交换区拷贝次数超过了上限(XX:MaxTenuringThreshold=15)一般情况会这样但有特例
缓存数据、因为线程执行周期缓慢导致未释放的对象
四、平均单次请求内存消耗计算方法
每个请求占用的内存=Eden/(QPS*minorGC的平均间隔时间(秒)),还有一种简单的计算就是JDK1.6.25版本支持一个API函数
- 大小: 128.4 KB
分享到:
相关推荐
性能优化手册是一套java性能学习研究小技巧,包含内容:Java性能优化、JVM性能优化、服务器性能优化、数据库性能优化、前端性能优化等。 内容包括但不限于: String 性能优化的 3 个小技巧 HashMap 7 种遍历方式...
WEB前端工程师Web前端性能优化经验分享
移动H5前端性能优化指南,某TX工程师经验总结,纯干货。
dynatrace_AJAX_edition前端界面性能调优,有基础文档和提高文档。
前端的集群分发使用的是IHS IBM Http Server 在loadrunner的压力测试中 针对于IHS负载不均 不能响应请求等问题 作了一些性能调优参数设置方面的工作 本文会围绕这些相关参数的设置展开 来说明这些参数的意义以及...
SQL性能调优 利用Oracle的内部优化器工作机制,合理改进查询语句的组织方式,提高数据库系统的响应速度,实现前端画面及平台应用的快速响应能力;同时统一开发人员的数据库开发编码的统一、规范。
Web数据库性能调优_英文_
JAVA-WEB系统性能调优.doc
最近看了很多关于系统性能调优的文章,发现很多文章都是介绍某一方面的,例如专门数据库方面的优化、前端页面的优化等等都不是很全面,这里结合我在工作中的一些实践对系统性能调优技术来一个综合性的分享。...
好东西,w3school和前端性能调优的书籍,非常不错的书籍
yslow对前端的请求的响应时间,缓存,数据包大小,协议等进行评分,默认规则23条。
本书作为CSS重构指南,不仅展示了如何编写结构合理的CSS,以构建响应式、易于使用的网站,还介绍了如何用重构方法创建可读性更强和更易于维护的CSS代码。
CSS重构,主要讲了一本对代码 的一种优化,初学者看看很有帮助
前端性能优化实践# 知识体系与小册格局 ## 写给读者 提起性能优化,大家现在脑海里第一时间会映射出什么内容呢? 可能是类似[“雅虎军规”](https://developer.yahoo.com/performance/rules.html?guccounter=1)和...
课程前端讲解了JVM的性能监控和调优的概述,对调优的的方法和工具进行讲解学习,让同学们掌握方法,理解知识。课程的中间阶段我们进行了优化思想上的灌输,是整体课程衔接非常重要的部分。而后篇则更加的注重实战和...
性能测试一直是Web应用中非常受关注的部分。目前大多数人对性能的关注还主要...但实际上,对于web应用来说,除了考虑服务端在足够短的时间内返回页面数据之外,还可以从页面前端的角度来考虑性能测试和性能调优。 目
AnglarJS作为一款优秀的Web框架,可大大简化前端开发的负担。本文给大家介绍AngularJS进行性能调优的7个建议,涉及到angularjs性能调优相关知识,对本文感兴趣的朋友一起学习吧
更重要的是,你会从Tenni Theurer那里听到提高网页性能的准则,从而使你可以更快地构建网页,减少响应时间,从前端到后端全面挖掘网页开发更大的潜能! 课程地址:http://www.itcast.net/portal/courses/unit/65
今天主要介绍一下微信小程序页面双线程架构的特性给页面渲染带来的一些影响,以及应对的一些渲染性能调优策略。为了叙述方便,下文会把微信小程序简称为小程序。 小程序的双线程架构 与传统的浏览器Web页面最大区别...