大家都知道在做性能测试的时候,需要监控服务器的资源情况,而大多数服务器是Linux系统,网上资料嘿多,这里汇总介绍下Nmon监控工具: ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 一,Nmon介绍 (这句不用看——Nmon得名于 Nigel 的监控器,是IBM的员工 Nigel Griff......
phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发、测试及生产环境部署使用,方便开发及测试工程师诊断性能问题: 1. 通过tideways收集PHP程序单步运行过程中所有的函数调用时间及CPU内存消耗等信息 2. 信息永久存储到MySQL数据库 3. 分析每个请求执行的信息,帮助开发测试人员快速定位性能问题 4. 非侵入式,不需修改项目PHP代码 5. 被动分析器,对性能的影响最小,同时收集足够的信息用于诊断性能问题 能解......
在运维工作中,压力测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接影响用户体验。但是,在压力测试中存在一个共性,那就是压力测试的结果与实际负载结果不会完全相同,就算压力测试工作做的再好,也不能保证100%和线上性能指标相同。 面对这些问题,我们只能尽量去想方设法去模拟。所以,压力测试非常有必要,有了这些数据,我们就能对自己做维护的平台......
本文简要分析一下php中array_push与$arr[] = $value两种将元素加入数组末尾的方法的性能,以便在不同的场景中能够更好的使用相应的方式去处理问题。 1. array_push方法 array_push 方法,将一个或多个元素压入数组的末尾。array_push() 将array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。 int array_push ( array &$array , mixed $var [, mixed $... ] ) 2. $arr[] = $value; 方法 ......
不管是日常业务数据处理中,还是数据库的导入导出,都可能遇到需要处理大量数据的插入或修改。 插入或修改的方式和数据库引擎都会对插入速度造成影响,这篇文章旨在从理论和实践上对各种方法进行分析和比较,方便以后应用中插入方法的选择。 插入分析 MySQL中插入一个记录需要的时间由下列因素组成,其中的数字表示大约比例: 连接:(3) 发送查询给服务器:(2) 分析查询:(2) 插入记录:(1x记录大小) 插入......
Nginx连接fastcgi的方式有2种:TCP 和 unix domain socket 什么是Unix domain socket? Unix domain socket 或者 IPC socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。与管道相比,Unix domain sockets 既可以使用字节流和数据队列,而管道通信则只能通过字节流。Unix domain sockets的接口和Internet socket很像,但它不使用网络底层协议来通信。Unix domain socket 的功能是POSIX操作系统里的一种......
opcache是Zend Optimizer编译到php环境中的名字,意思即优化缓存。Zend OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是省去了每次加载和解析 PHP 脚本的开销。 这个PHP加速插件的主要原理就是把PHP执行后的数据缓冲到内存中从而避免重复的编译过程,能够直接使用缓冲区已编译的代码从而提高速度,降低服务器负载,它们的效率是显而易见的。 在 PHP 5.5及以后的版本中 Op......
经常在一些技术站点上看到分析大规模,高流量,高性能之类的网站架构设计类的文章,这类文章基本上是满足了人们的好奇心,但看过之后实际收益可能并不大。因为大部分人可能并没多少机会接触到这种的机会。即使接触到了,实际碰到的情况也往往与很多看到的文章是有出入的。 另外这种文章看多了有个副作用就是容易让人心潮澎湃,没学会走先学跑,于是便有很多人在很多条件仍不具备的情况下,过度设计、过度扩展,过早的去考虑一些不......
本篇文章分享一些在php中关于file_get_contents于curl性能效率的比较。文章内容整理自网络,如有不正确的地方,可及时留言补充纠正。 (1)fopen/file_get_contents 每次请求远程URL中的数据都会重新做DNS查询,并不对DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS 查询。这大大减少了DNS查询的次数。所以CURL的性能比fopen/file_get_contents 好很多。 (2)fopen/file_ge......
本篇文章主要介绍一些基本的Jquery性能优化方面的知识。 1,总是从ID选择器开始继承 在jQuery中最快的选择器是ID选择器,因为它直接来自于JavaScript的getElementById()方法。 例如有一段HTML代码: <div id="content"> <form method="post" action="#"> <h2>交通信号灯</h2> <ul id="traffic_light"> <li><input type="radio" class="on" name="light" value="red" />红色</li......
php中如何判断字符串的长度?很多人第一想到的应该就是 strlen() mb_strlen() 这些函数了。但是从程序性能上来讲,这两个函数在判断字符串长度的过程中都不是最佳的,虽然他们是专业级的检测字符串长度的函数。 通过本人实践总结,php判断字符串长度,使用isset()在速度上比strlen()更快,执行效率更高。 那么isset()速度为什么比strlen()更快呢? strlen()函数函数执行起来相当快,因为它不做任何计算,只返回在zval 结构(C的......
css 还能进行性能优化吗?这个似乎有点太扯了,其实如果你对CSS是如何渲染html页面足够了解的话,如果能够加速css对html渲染的话,这个也算是优化了一下css的性能吧!下面和大家分享一下10条提高CSS渲染速度的写法从而达到我们的css性能优化的目的吧。 1、*{}#zishu*{}尽量避开 由于不同浏览器对HTML标签的解释有差异,所以最终的网页效果在不同的浏览器中可能是不一样的,为了消除这方面的风险,设计者通常会在CSS的一个始就把......
实验是我学习计算机科学的一个重要方法,计算机科学不是简单的智力游戏,它本质上来说不是一门科学,而是一个改造世界的工具。数学方法和实验方法是计算机研究的基本方法,也是我们学习的基本方法,数学锻炼我们的思维能力,实验锻炼我们的操作能力,解决实际问题的能力。我们每天的工作都应该看做是一次实验,要从每天的工作中,总结出对我们来说有用的东西。比如要写好php代码,一个很重要的东西就是效率,效率高不高,我们就要......
PHP性能优化过程中避免不了需要获取PHP内存消耗,使用memory_get_usage()函数可获取当前的内存消耗情况,函数使用简单,下面以示例的形式介绍下使用 memory_get_usage() 函数获取当前PHP内存消耗量的用法。 一,函数原型 int memory_get_usage ([ bool $real_usage=false ] ) 二,版本兼容 PHP 4 >= 4.3.2,PHP 5 三,基础用法与实例 1,获取当前的内存消耗量 <?php echo memory_get_usage(); $var=str_repeat("www.php......
做大流量访问级别的web应用开发的项目的时候,我们不得不经常要对应用中的各项功能不断的进行检测,优化以防止应用在关键时刻挂掉。下面作者就如何定位,排除以及避免MySQL数据库性能问题上面发表一些看法。期望能够帮助到同行们能够打造更坚固,更稳定的web应用。 (1)设计表时尽量使用 innodb数据库引擎 建表时,显式指定使用innodb数据库引擎,而不是myisam引擎,myisam引擎的锁是表锁,读锁和写锁是互斥的,读写操作是串行的......
判断某字符是否包含与某于数组中,方法有很多,刚学习php的新手们估计偏向于使用循环来解决,对于一般的小网站来说,这种解决方案是不会出现什么大问题的。但就性能来说,这种方法不是最好的方法,下面笔者就 foreach,in_array() array_search 这三种方法来比较这三种方法在性能表现上的差异。 <?php $runtime= new runtime; $runtime->start(); $a = 'k'; $b = array('a','b','c','d','e','f','g','h','i......
现在已经有不少配置不是很高的电脑用户正式用上了Windows7(以下简称Win 7),如何让低配置电脑可以更流畅的运行Win 7呢?本文教大家手动优化Win 7,而对象则是最容易被忽视的系统服务。 我们首先了解系统服务的一些系统知识,然后再根据Windows7用户的各种不同需求提供有针对性Windows7系统服务清理方案,对WIndows7的运行速度进行一个全面的提升。 什么是服务? 服务是系统用以执行指定系统功能的程序或进程,其功用是支持其他......
做php编程已经有两年之久了,现在将平时总结出来的一些比较实用的提高php性能的方法做一下总结并分享一下,欢迎新手围观,高手指正! 1、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 2、如果能将类的方法定义成st......
所有浏览器在下载JS的时候,会阻止一切其他内容的加载,比如其他资源的下载,内容的呈现等等。至到JS下载、解析、执行完毕后才开始继续并行下载其他资源并呈现内容。 (1)为什么JS不能像CSS、image一样并行下载了? 这里需要简单介绍一下浏览器构造页面的原理,当浏览器从服务器接收到了HTML文档,并把HTML在内存中转换成DOM树,在转换的过程中如果发现某个节点(node)上引用了CSS或者IMAGE,就会再发1个request去请求CSS或image......
随着互联网技术和理念的快速发展和迅速普及,很多企业越来越重视互联网,把互联网当作一种更为高效的资源和工具,并建立起一系列基于Web的网站服务。企业在建立或使用基于Web的网站服务时,都很难想象出当大批量用户同时访问网站系统时候的情境。这样,当Web网站遇到突发访问高峰时,很容易因没有预先估测网站访问量而导致服务器响应速度变慢甚至服务直接宕机的后果。 为了避免因为访问量陡增导致网站访问速度变慢甚至无法访......
分享几个提高MYSQL性能的方法,不够全面,还望得到大家的补充!错误之处还请拍砖! 1、分库分表 很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将其散列到100个表中,分别从members0到members99,然后根据mid分发记录到这些表中,牛逼的代码大概......
优化目标 1、减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO 次数是 SQL 优化中需要第一优先考虑,当然,也是收效最明显的优化手段。 2、降低CPU计算 除了 IO 瓶颈之外,SQL优化中需要考虑的就是CPU运算量的优化了。order by, group by,distinct … 都是消耗 CPU 的大户(这些操作基本上都是 CPU 处理内存中的数据......
MYSQL性能优化之分库分表与不停机修改mysql表结构,需要的朋友可以参考下 1、分库分表 很明显,一个主表(也就是很重要的表,例如用户表)无限制的增长势必严重影响性能,分库与分表是一个很不错的解决途径,也就是性能优化途径,现在的案例是我们有一个1000多万条记录的用户表members,查询起来非常之慢,同事的做法是将其散列到100个表中,分别从members0到members99,然后根据mid分发记录到这些表中,牛逼的代码大概是这样子:......
mysql cache 功能分析: 1 mysql 的 cache 功能的 key 的生成原理是:把 select 语句按照一定的 hash 规 则生成唯一的 key,select 的结果生成 value,即 key=>value。所以对于 cache 所以对于而言,语句是区分大小写的,也区分空格的。两个 select 语句必须完完全全一致,才能够获取到同一个 cache。 2 生成 cache 之后,只要该 select 中涉及到的 table 有任何的数据变动(insert,update,delete 操作等),相 关的所有 cache 都......
对于事务表,应使用BEGIN和COMMIT代替LOCK TABLES来加快插入,锁定也将降低多连接测试的整体时间,尽管因为它们等候锁定最大等待时间将上升。例如: Connection 1 does 1000 inserts Connections 2, 3, and 4 do 1 insert Connection 5 does 1000 inserts 如果不使用锁定,2、3和4将在1和5前完成。如果使用锁定,2、3和4将可能不在1或5前完成,但是整体时间应该快大约40%。 INSERT、UPDATE和DELETE操作在MySQL中是很......