随笔分类 - 系统性能
记录系统性能优化(包括网站)方面经验
摘要:什么是内存泄漏,我以前以为是内存被人可以拿到里面内容。现在发现概念是内存区域没有释放掉。内存泄漏造成的表现形式是,进程越来越慢。慢的原因是,它申请的内存越来越多,没有释放掉内存。而操作系统对进程的内存占用有限制。操作系统会将大的进程置换到磁盘去。换到磁盘去就导致速度慢了。主要是磁盘的速度跟不上。这让...
阅读全文
摘要:大体分为:事前估算(设计算法之前就估算此算法性能)和事后估算(运行后,通过收集数据)直觉上以为是事后估算为主,毕竟,实践是检验真理的标准嘛。事后收集数据才是比较靠谱的。不过,想法错了。现在才明白,以"事前估算"为主要办法。为什么事后估算的办法不怎么使用呢?1、输入的数据量没法真实模拟。比如输入的数据...
阅读全文
摘要:本文主要是思维性的总结,是总结优化的方法学,对方面上面的错误进行总结。不会涉及到前端具体的技术,比如对js和css进行压缩、合并,减少http请求,缓存头控制等等。这些那本《高性能建站指南》都有现成的。 基于本人在多家公司分别遇到的网站速度与性能问题,多年所积累出的干货;有的开发10年经验,在遇到网站速度问题时,也仍然在犯同样的错误。一、背景与思维方式常见的情况:使用的是1m带宽(因为带宽是比较昂贵的资源,刚开始购买会比较少,起初够用了)。基于这个情况,是不是带宽少了呢?加带宽?js、css之类的文件也并没有压缩,为了提高高速度,那是不是应该要压缩一下呢?比如合并多个js文件,减少http请.
阅读全文
摘要:网站速度定位总体思想:1、找瓶颈法。瓶子的颈部(口子)大小决定了出入量,从而决定了速度。不去改善瓶颈,使劲费力气把瓶子容量扩大,速度也不会提高。不是什么都去改善就是好的。比如改善带宽,加缓存之类的。但是这些不是目前系统的瓶颈,改善了也不会发生质的飞跃。所以找到瓶颈所在。与哲学思想中的:找主要矛盾,解决主要矛盾,问题才会解决的思想类似。放到技术中叫做系统瓶颈。突破系统瓶颈。找到当前的主要矛盾是重要的。去研究代码,获取几毫秒的性能,不如去看看数据库,干掉一条执行超过1000毫秒的语句。遇到速度慢的问题,就想到“多多益善”的思维。把该加的先加了:把数据生成文件缓存啊,数据库加索引,硬件方面内存加,带
阅读全文
摘要:下载源码包的网址http://pecl.php.net/package/xhprof上面说了,每个版本适用的php版本。规划(预先搞清楚思路)一、这是一个php扩展的形式。我们安装gd2,curl都是php的扩展形式。只不过有的时候编译的时候就安装进去了。像操作mysql数据库,也是一个mysql.so这样的扩展,安装了扩展,就能调用mysql_query()这些函数。要操作oracle数据库,也有对应的oracle扩展加到php引擎中去。现在要把xhprof扩展加到php中去。很久没使用phpize安装扩展了。我自己忘得差不多了。于是重新去自己的博客找到以前写的文章复习一下。http://w
阅读全文
摘要:###################################方法与观念的改变###################################错误导向:我在网上会看到人们怎么优化网站,就是用yslow这样的工具来看,工具会告诉你要怎么做,哪方面有问题,比如我写在文档里面的像这样的:这里会告诉你要开启压缩。这里大致反映出时间。这些做法做都是正确的。只是这种都是花俏的工夫。把这些当成是优化的方向,方向不对。着力点错了。结果发现网站速度没明显改善。因为方法错误了。基本是这种想法:先按照上面说的,把该做的做了吧。肯定有提高的。始终没尝试找网站速度慢的瓶颈在哪里?同学总结得很恰到:这些工夫
阅读全文
摘要:压缩css和js脚本是非常值得的。根据经验,通常对大于1kb或者2kb的文件进行压缩。对图片进行压缩是得不偿失的。因为会消耗许多cpu资源(包括服务器端和客户端的)LoadModule expires_module modules/mod_expires.soCache-Control:Private 禁用代理apache的版本与压缩组件的关系:1.3对应了mod_gizp 2.x对应了mod_deflate也就是:1.3的gizp功能由mod_gizp提供。那么2.x版本中的gzip功能由mod_deflate提供首页平均使用了6-7个脚本文件,1-2个css文件 soutuan.com使用
阅读全文