性能优化

JAVA 性能优化(VisualVM)

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-26 18:10:53
技术发现: 最近搞测试的同事分享了一款针对与Java运行性能监控的软件Java isualVM,在jdk1.6之后,它就出现并且潜伏在bin目录下, 由于平时很少关注version更新信息,直到现在才发现这款简单强大的工具。 技术简介: visualVM是一款充分集成了Many jdk命令行工具的可视化工具,可提供强大的分析能力,而且所有这一些和jdk一样都是免费的。 它囊括的命令行工具包括jstat, JConsole, jstack, jmap 和 jinfo,这些工具与JDK的标准版本是一致的。你可以使用VisualVM生成和 分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和CPU分析,同时它还支持在MBeans上进行浏览和操作。尽管Visual- VM自身要在JDK6这个版本上运行,但是JDK1.4以上版本的程序它都能监控。 它潜伏在你的jdk的bin目录下, 中间这个jvisualvm.exe就是Java isualVM的启动, 运行界面很丰富,左侧是应用程序展示栏包括本地和远程的,所有的应用程序不需要你在启动器中注册,它都会自动显示出来 同时你也从界面上看到了,它的功能异常丰富,当然在扩展插件之后,它的功能会更加丰富。 使用它你可以可视化的监控应用程序的性能和内存占用情况,监控应用程序的线程,分析(Profile)应用程序性能和内存分配情况, 进行线程转储

Google 性能优化视频

旧巷老猫 提交于 2019-11-26 16:50:18
极力推荐Android 开发大总结文章:欢迎收藏 程序员Android 力荐 ,Android 开发者需要的必备技能 Android 性能优化系列视频百度网盘链接 下载链接: 链接: https://pan.baidu.com/s/1y31drDDR-2R7nqYQjYf7pw 密码:3nhx 至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢! 来源: https://www.cnblogs.com/wangjie1990/p/11327268.html

Linux性能优化

橙三吉。 提交于 2019-11-26 15:52:16
系统的性能是指操作系统完成任务的有效性、稳定性和响应速度。当 Linux 应用出现问题时,应当从应用程序、操作系统、服务器硬件、网络环境等方面综合排查。 1. 服务器硬件 2. 操作系统 3. 应用程序 4. 网络环境 来源: https://www.cnblogs.com/yutb/p/11324965.html

【原】Sql Server性能优化——Partition(创建分区)

戏子无情 提交于 2019-11-26 15:52:07
和压缩(Compression)相比,数据库分区(Partition)的操作更为复杂繁琐。而且与Compression一次操作,终身保持不同,分区是一项需要长期维护周期变更的操作。 分区的意义在于将大数据从物理上切割为几个相互独立的小部分,从而在查询时只取出其中一个或几个分区,减少影响的数据;另外对于置于不同文件组的分区,并行查询的性能也要高于对整个表的查询性能。 事实上,在SQL Server 2005中就已经包含了分区功能,甚至在2005之前,还存在一个叫做“Partitioned Views”的功能,能通过将同样结构的表Union在一个View中,实现类似现在分区表的效果。而在SQL Server 2008中,分区功能得到了显著加强,使得我们不仅能够对表和索引做分区, 而且允许对分区上锁,而不是之前的全表上锁 。 指定分区列 和Compression一样,在SQL Server 2008中也提供了分区的向导界面。在企业管理器中,需要分区的表上右键选择Storage-》Create Partition: 这里会列出该表所有的字段,包括字段类型、长度、精度及小数位数的信息,可以选择其中的任意一一列作为分区列(Patitioning Column),不仅仅是数字或者日期类型,即使是字符串类型的列,也可以按照字母顺序进行分区。而以下类型的列不可用于分区: text、ntext

性能优化之节流、防抖

本小妞迷上赌 提交于 2019-11-26 14:45:05
1. 防抖: 由于dom操作极其昂贵,所以尝试过多的dom操作有可能会将浏览器搞崩溃,比如onresize、onscroll这类事件操作; 为了解决这个问题,引出防抖的概念(某些代码不可以在没有间断的情况下连续重复执行); 方案:第一次调用函数创建一个定时器,在指定时间之后执行代码;在第二次调用时,清除掉前一次的定时器并重新设置一个; 这种方案下,如果第一个定时器已经执行,这个操作就没意义;如果第一个没执行,则将其替换为新的定时器;目的是只有在执行函数的请求停止一段时间后才执行; 适用于代码是周期执行的,但是你不能控制请求执行的速率; 函数防抖让一个函数只有在你不断触发后停下来歇会才开始执行,中间你操作得太快它直接无视。 // 函数防抖 function debounce(method, context) { clearTimeout(method.tid); // mthod是真实要执行的函数,context是执行的作用域(默认window) method.tid = setTimeout( function () { method.call(context) // 确保方法在适当的环境中执行 }, 100 ); } // onscroll时函数防抖 function scrollFun() { var marginBot = 0 ; if (document

前端性能优化整理

a 夏天 提交于 2019-11-26 14:44:28
0. 浏览器渲染原理: 输入网址 -> dns查询 -> dns缓存 -> 三次握手建立连接 -> 浏览器发送请求到服务器 -> 服务器返回html -> 浏览器渲染页面; 浏览器渲染过程(webkit为例): ① 首先进行dom解析,css解析,构建dom树;(display:none的元素在dom树) ② css解析完成css rules加到dom树上,生成render tree(回流reflow阶段,应尽量避免);(display:none的元素不在dom树) ③ 经过层叠上下文处理,生成render layer(重绘repaint阶段),可以直接去paint页面,或者去④; ④ 层合并后生成graphics layer,然后GPU绘制。 1. 浏览器宿主环境层面: 由于单线程解析阻塞限制,可以用script defer属性异步加载,样式放头部,脚本放底部; 结合dns-prefetch、dns-preload、preload预加载资源; 利用事件冒泡机制,采用事件委托方法绑定事件; 浏览器渲染时,开启硬件加速可以生成复合层,复合层交给GPU渲染,但不能滥用; 2. 网络层面: 减少http请求数量:css、js合并,css sprites,font-icon,base64编码图片,图片懒加载; 减轻http数据请求大小:静态资源压缩,tinypng压缩图片,webp格式

Netty性能优化

瘦欲@ 提交于 2019-11-26 13:55:57
1.Netty为Linux提供了一组NIO API,其以一种和它本身的设计更加一致的方式使用epoll,并 且以一种更加轻量的方式使用中断。如果你的应用程序旨在运行于Linux系统,那么请考虑利用 这个版本的传输;你将发现在高负载下它的性能要优于JDK的NIO实现。如果要在那个代码清单中使用epoll 替代NIO,只需要将NioEventLoopGroup替换为EpollEventLoopGroup , 并且将NioServerSocketChannel.class 替换为EpollServerSocketChannel.class 即可。 2.ChannelHandler处理器,如果是无状态的,能使用单例就使用单例。减少对象开销,提高高并发。 3.耗时的网络请求,数据库操作,业务处理请使用业务线程池处理。另外注意writeAndFlush()是异步方法,如果想监控写事件是否完成,可以添加监听器。 4.序列化和反序列化,可以考虑使用Protobuf二进制流,提高传输速率 5.可以自定义实现编解码 6.复杂IM应用应该使用长连接和短链接相互配合,某些业务场景也可以使用UDP协议来实现 来源: https://blog.csdn.net/zhulinfeng2012/article/details/98882589

网站性能优化

心已入冬 提交于 2019-11-26 13:49:16
最近管理的网站时常出现不能访问的情况,是在很郁闷. BD:"为什么淘宝的页面就能那么快的显示,而我们的怎么2分钟还不出来了?" CS:"如果持续这样子,会员会失去信心的." 可郁闷死我啦. 经理也催着啊,于是百度什么的都用上了.对于我这样的菜鸟还只能用这个,⊙﹏⊙b汗 下面是我从孟子的书上面摘下来的 与程序相关的性能: 1.缓存 [频繁访问的数据和需要大量处理时间来创建的数据存储在内存中] <% @ OutputCache VaryByParams = " none " Duration = " 120 " %> 遵循的规则:1)在页面中将静态内容和动态内容分割开来.考虑将动态内容作成用户控件; 2)缓存合理的数据.服务器资源有限,应当缓存应用程序级的数据,多个用户共同使用的数据,静态数据,生成数据需要很大开销的动态数据,DataSet以及自定义的对象等.不要缓存数据库连接对象,不要缓存DataReader. 3)选择适当的方式. 如果要缓存的是页面的展现结果,可以使用页面指令进行缓存.如果缓存的展现结果在别的地方也能用到,可以使用Cache提供的API. 2.视图状态 [_VIEWSTATE表单隐藏域] 1)如果不需要视图状态,请禁用它.如果页面不进行PostBack,如果不处理服务器控件的时间,如果服务器控件的数据每次都需要重新计算,则没有必要使用视图状态. 2

SQL性能优化(efficacious )

跟風遠走 提交于 2019-11-26 12:46:55
1、优化目标 减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。 降低 CPU 计算 除了 IO 瓶颈之外,SQL优化中需要考虑的就是 CPU 运算量的优化了。order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据比较运算)。当我们的 IO 优化做到一定阶段之后,降低 CPU 计算也就成为了我们 SQL 优化的重要目标 2、优化方法 一、改变 SQL 执行计划 明确了优化目标之后,我们需要确定达到我们目标的方法。对于 SQL 语句来说,达到上述2个目标的方法其实只有一个,那就是 改变 SQL 的执行计划,让他尽量“少走弯路”,尽量通过各种“捷径”来找到我们需要的数据 ,以达到 “ 减少 IO 次数 ” 和 “ 降低 CPU 计算 ” 的目标 常见误区 (1)count(1)和count(primary_key) 优于 count(*) X 很多人为了统计记录条数,就使用 count(1) 和 count(primary_key) 而不是 count(*) ,他们认为这样性能更好,其实这是一个误区。对于有些场景,这样做可能性能会更差

ajax性能优化

◇◆丶佛笑我妖孽 提交于 2019-11-26 12:39:52
ajax性能优化 例: 模块:  A  B  C  D 开销:  50% 3% 25% 22% 如果我们优化B就如同那些那些只执行一次的代码,性能·提高不到哪里去;反之,我们去优化A,比如去优化它的循环,减少循环的嵌套,就能很好的提高网站性能 (当然,这必须建立在程序符合要求的前提下)。 使用ajax技术(ajax库http://developer.yahoo.com/yui/) ajax实现方式 : 发送数据包到服务器(通常编码为json),然后服务端返回一个数据包(也就是json编码)来响应,最后js程序使用这些数据来更新浏览器的显示。 使用ajax优点 :数据的传输量,用户操作和可视化反馈的时间·减少,服务器和浏览器需要做的工作也减少了。 使用ajax缺点: 程序员需要做的工作量因此而增加。 使用ajax事项 :数据包应该尽可能小。 使用ajax常见错误 :把所有数据都传给浏览器,这会再次引入ajax本应避免的延迟问题。增加了浏览器处理的数据量,n值增大,性能降低。 ajax中的炫酷特效,可能会分散用户注意力,降低生产效率,并且会产生不必要的DOM操作。 总结: 1 选择那些消耗量大的代码去提速      2 减少DOM操作      3 编码要有质量,易于维护、理解与优化      4 使用ajax技术能使应用程序更快。 来源: https://www.cnblogs