性能优化

Tomcat性能优化及JVM内存工作原理

╄→гoц情女王★ 提交于 2019-12-05 05:01:35
Java性能优化原则: 代码运算性能、内存回收、应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面) 代码层优化: 避免过多循环嵌套、调用和复杂逻辑。 Tomcat调优主要内容如下: 1 、增加最大连接数 2 、调整工作模式 3 、启用gzip压缩 4 、调整JVM内存大小 5 、作为Web服务器时,与Apache整合或Nginx 6 、合理选择垃圾回收算法 7 、尽量使用较新JDK版本 生产配置实例: <Connectorport="8080"protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="1000" minSpareThreads="100" maxSpareThreads="200" acceptCount="900" disableUploadTimeout="true" connectionTimeout="20000" URIEncoding="UTF-8" enableLookups="false" redirectPort="8443" compression="on" compressionMinSize="1024" compressableMimeType="text/html,text/xml,text/css,text/javascript"/> 参数说明:

报表性能优化方案之数据集缓存与共享

∥☆過路亽.° 提交于 2019-12-05 04:35:35
1. 问题描述 对于大数据量报表,若每次直接从数据库中查询数据,不仅增加数据库服务器的压力,也极大的影响了取数的速度从而降低了报表的执行速度,为此FineReport提供了数据集缓存与共享功能。 FineReport可先将其数据集查询的结果缓存下来,对于缓存下来的数据,再次使用到相同数据集时,无需再次连接数据库重新查询数据,直接使用缓存下来的结果,即使用FineReport的数据集共享机制,达到资源复用,减少取数时间从而提高了报表的展现速度。 2. 数据集缓存 缓存分为缓存至内存和缓存至磁盘。 2.1 缓存至内存 设置方法:默认的就是使用内存缓存即所有数据都保存在内存中,在数据库查询窗口可以看到,如下图: 设置后的效果:当执行数据集时就会在将此记过缓存至内存中,下次在执行此数据集时,会直接从内存缓存中取数。 优缺点:空间资源有限,但效率很高,取数速度快。 什么情况使用:一般使用率高,且数据量不算太大的报表,可直接使用内存缓存。 2.2 缓存至磁盘 设置方法:点击下拉框选择缓存至磁盘当记录大于,并设置行数,如下: 缓存至磁盘,即将数据缓存到服务器的磁盘中,默认是在C:\Documents and Settings\Administrator\.FineReport8.0\cache(windows操作系统)下。 注:如启用了磁盘缓存,发现系统目录下没有cache文件夹,不要感到惊讶

百度小程序性能优化二期规划

こ雲淡風輕ζ 提交于 2019-12-05 04:06:13
一期优化取得了显著的效果,从优化前的1.9s,现在稳定在1.5s,基本保持在达标线内 偶尔的抖动观察了下,与后端服务的稳定程度有关 但是感觉优化还是有提升的可能 这里有几个优化方向的思路 一 关于白屏 目前小程序采用了loading组件过度,但是,由于是资讯类的小程序,页面的内容严重依赖后端接口 如果后端服务不稳定,就像上图所见,很多时候是有波动的,所以对白屏的优化成为了下一个可以优化的点 白屏检测说明 白屏定义:用户触发页面打开后,间隔一定时间后仍然没有任何页面绘制,则认定为白屏。 白屏检测原理:从用户点击小程序入口开始计算时间,6s后进行截图分析。当截图为空白页面或只有背景色,则记为一次白屏。请注意:此统计规则在2019年9月6日发生变更,变更前为从小程序页面框架创建时开始计时。 白屏监控范围:仅针对小程序进入时的首个页面进行检测。 数据解读:白屏率 = 白屏发生PV / 小程序冷启动打开PV,开发者可以在小程序平台上看到自己小程序白屏率的数据情况。在上述检测机制下,无论小程序启动时出现异常还是页面加载过程较慢,6S时被监测到无内容展示,都会视为白屏。因此在进行白屏优化时,需要从两方面着手,一方面对页面异常问题进行排查,另一方面着重优化页面的性能。 白屏优化 排查异常 小程序白屏数据出现异常上涨时,可以从以下三个方面着手排查分析: 服务稳定性 小程序页面数据请求是否正常:

Swift 中的 Runtime

夙愿已清 提交于 2019-12-05 03:59:44
即使在 Swift APP 中没有一行 Object-c 的代码,每个 APP 也都会在 Object-c runtime 中运行,为动态任务分发和运行时对象关联开启了一个世界。更确切地说,可能在仅使用 Swift 库的时候只运行 Swift runtime。但是使用 Objective-C runtime 这么长时间,我们也应该让他充分发挥其作用。 下面我们将以 Swift 的视角来观察关联对象(associated objects])和方法交叉(method swizzling) 这两个在运行时的技术。 ####关联对象(Associated Objects) Swift extension 可以给已经存在 Cocoa 类添加极为丰富的功能,具体有: (1)添加计算实例属性 ( computed property) 和计算类属性 (2)定义实例方法和类方法 (3)提供新的构造器 (4)定义下标(subscript) (5)定义和使用新的嵌套类型 (6)使一个遵守某个接口 相比之下, Objective-C 的 category 就逊色多了。比如说 Objective-C 中的 extension 就无法向既有类添加属性。 庆幸的是 Objective-C 的 关联对象(Associated Objects) 可以改善这个缺憾。例如要向一个工程里所有的 view

现代WEB前端的性能优化

天大地大妈咪最大 提交于 2019-12-05 03:53:42
现代 WEB 前端的性能优化 ——IT唐伯虎 前言:这只是一份学习笔记。 什么是WEB前端 潜在的优化点: DNS是否可以通过缓存减少DNS查询时间? 网络请求的过程走最近的网络环境? 相同的静态资源是否可以缓存? 能否减少http请求的大小? 减少http请求数 服务端渲染 涉及层面 网络层面 构建层面 服务端层面 浏览器渲染层面 基础优化:图片的编码原理、选择图片的格式、资源的合并与压缩。 进阶优化:浏览器渲染层面的优化、重绘与回流层面的优化、浏览器存储的选择与使用、浏览器端结合服务端的缓存机制。 结合服务端的优化:基于nodejs的Vue-SSR解决首屏渲染的问题。 知识点 资源的合并与压缩 目的:减少http请求数量、减少请求资源大小、减少带宽消费。 原理:通过一个入口文件(依赖的顶层),分析所有依赖,得到依赖树,最后按照依赖树,对文件进行压缩、混淆、合并、语法转换。 a) html压缩 在前端的源代码里,有些东西,只在代码里有意义,但是对于浏览器却毫无意义的。 例如:代码对齐的回车、空格、tab,代码注释。 这些东西在发布的时候可以去掉。 b) css压缩 删除回车、空格、tab,删除代码注释,css语义合并。 c) js压缩与混淆(必须) 删除回车、空格、tab,删除代码注释,代码命名和语义的缩减与优化, 达到代码保护。 d) 文件合并 · 公共库合并

HTML5 网络拓扑图性能优化

拜拜、爱过 提交于 2019-12-05 03:48:58
HTML5 中的 Canvas 对文本的渲染(fillText,strokeText)性能都不太好,比如设置字体(font)、文本旋转(rotation),如果绘制较多的文本时,一些交互操作会手动很大的影响,操作起来没那么顺畅,体验将会极其差,这不是我们想要的结果,再进一步和图片的绘制进行比较比较,你会发现,绘制图片和绘制文本在性能上不是一个等级的,在性能上绘制图片会好太多。 我们今天就来谈谈 HT for Web 性能相关的问题。在 HT 中,有很多地方可以设置文本,每个节点上面都可以设置两个 label 和两个 note 文本,如果全开启的话,绘制一个节点就要附带绘制 4 个文本,假如说绘制 文本的性能消耗是绘制图片性能消耗的 3 倍的话,附带绘制 4 个文本,就想当与多出 12 倍的性能消耗,这节点以多的话,可想而知,不管是哪个引擎都不可能 hold 得住这样的性能消耗。 既然绘制文本的性能消耗无法避免,那么我们要如何提高系统的整体性能呢?换个思路,绘制文本会有高性能消耗,导致操作上面的延迟和卡顿,那么我是不是可以在操作时不绘制文本呢,将文本绘制所消耗的性能节省下来,用在其他的性能消耗上,这样是不是就可以解决操作延迟和卡顿的问题呢? 我们不妨来试试,在 GraphView 中添加若干个 node、edge、group 等节点,并且每个节点上都显示文本(包括线条,上图所示)

java性能优化之java web项目性能优化

丶灬走出姿态 提交于 2019-12-05 00:49:59
1、概述 对于比较大的java web工程,如果出现内存溢出,操作响应时间较长,可以看一下我的教程,这是我自己的思路和想法,大家一起学习。接下来就会列举出关于性能上常常出现的问题和解决思路和方法 2、问题及解决思路 2.1 内存溢出: 项目比较大的时候,我们操作一定时间就会报内存溢出的问题,这是常见的问题。遇到这个问题,我觉得,首先是看代码时候有错误或者死循环的,如果项目比较大并且开发完成的差不多了,显然这个方法是很费时间的,最直接有效的方法是增加jvm的内存大小,不用担心,下面会一步一步的来提高性能优化 情况一:解压版本的Tomcat, 要通过startup.bat启动tomcat才能加载配置 要添加在tomcat 的bin 下catalina.bat 里 rem Guess CATALINA_HOME if not defined set CURRENT_DIR=%cd%后面添加,红色的为新添加的. set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true 情况二:安装版的Tomcat下没有catalina.bat windows服务执行的是bin/tomcat.exe.他读取注册表中的值

软件一定存在修改的余地——《大话Java性能优化》

谁说胖子不能爱 提交于 2019-12-05 00:49:27
Java是典型的面向对象语言,去掉了指针让开发更加简便,却无法直接指向内存;似乎穿上了铠甲却多了软肋,因此Java性能优化是非常必要的。 面对客户的咄咄逼人的需求修改和即刻变更需求上线压力,程序员作为弱势群体,往往会考虑时间优先原则,导致软件质量大幅下降。尤其在某些外包公司里,三个分别来自达内、北大青鸟和新华电脑专修学院的速成程序员开发了一个常量在三个类里分别声明、变量分别用GreenDAO、ORMLite和原生SQLite保存的App,性能问题随着新模块的增加而水涨船高,最终积重难返,在用compile 'com.android.support:multidex:1.0.0' 解决了65k方法问题(相当于砸掉承重墙增加室内面积)后告诉客户换一家外包公司。 程序凑合着上线是一回事,而在压力下运行并可以维护下去就是另一回事了。《大话Java性能优化》就是一本让人学会优化Java代码性能的书,书中详细介绍了API调用、算法和设计模式、多线程、垃圾回收等各方面的性能优化方案和性能测试方法,除了第二章完全基于JavaEE外其他章节都是Android开发中性能问题的天敌。 《大话Java性能优化》第三章从Java的各大API调用的角度分析性能优化的方案。第一节《面向对象及基础类型》介绍了几种;第二节《集合类概念》讨论了List

3.15 晚会—「饿了么」之殇

…衆ロ難τιáo~ 提交于 2019-12-04 23:19:01
##### 一.开题有随想 3 月 15 号晚上的 315 晚会,相信很多人都记忆深刻,**「饿了么」、「淘宝」**等多家知名互联网厂商都被报出了负面的消息,BAT 中的百度也因为群众对其积攒的「怨气」又一次在微博形成热搜。 其实我们稳下心来想一想,拿饿了么举例,315 所报出的一些问题并没有我们想的那么严重: 门店环境 良好自然是大家心里期望的,可是当我们用低廉的价格在外卖平台上购餐的时候,谁心里都明白,这不可能是五星级酒店做出来的;而且,除非是在比较高端的餐厅或者酒店中,否则, 尝菜 这种做法并不少见。 那么真正让大众感到不满的是什么? 态度!!! ##### 二.互联网不能承受之重——用户体验 作为一个互联网 2C 公司,在用户可以接受的范围内存在一些问题并不可怕,可怕的是用户看不到你为了改善而作出的努力,或者公司本身没有意识到这个问题的严重性。饿了么在将近 4 年的快速成长阶段,完全可以用稍微高一些的门槛来限制或者促进平台上的商家改进店面环境,但是我们看到的却只有版本的更迭和用餐价格的提升。 同样的问题也可以反映在 用户体验 上,可能你觉得,用户访问网站页面打开时间慢个一两秒、或者点击页面按钮的时候出错个一两次没什么严重性,可是,这些小问题所导致的后果却并非想的这么简单。 用户体验优化的重要性 虽然在很多文章论坛都曾经看到过、提过用户体验的重要性,但是在这里还是用数据来说话

前端性能优化总结

浪子不回头ぞ 提交于 2019-12-04 20:15:34
页面重构 - 在不改变外部行为的前提下,简化结构,添加可读性,而在前端保持一致的行为(即不改变UI的情况下,对网站进行优化) 1、布局 2、浏览器兼容 3、对移动平台的优化 4、SEO优化(Search Engine Optimization,搜索引擎优化 -- 利用 搜索引擎的规则 提高网站在有关搜索引擎内的自然排名 --> 黑帽(black hat) | 白帽(white hat)) 方面: 1、严格编码规范 2、高内聚,低耦合 3、代码弹性,增强代码的可扩展性 4、增强用户体验 5、压缩JS,CSS,Image等资源(通常有服务器来解决) 6、采用CDN来加载资源 7、图片预加载,懒加载 8、JS:脚本文件放在底部加上时间戳,少用全局变量 9、DOM的优化:减少dom操作,减少table使用(table要等其中的内容全部完全下载之后才会显示出来,比div+css慢) 10、CSS样式:样式文件放在顶部,当需要设置的样式很多时设置className,而不是直接操作style,避免使用css expression即动态属性 11、HTTP服务器缓存 12、减少http请求次数:CSS Sprites, JS、CSS源码压缩、图片大小控制合适;data缓存 ,网页Gzip,CDN托管,图片服务器 13、尽量向前端优化,减少数据库操作,减少磁盘IO -- 在不影响功能和体验的情况下