如何优化CodeIgniter性能
首先,是个控制器,一般的标准的写法如下: function index(){$query = $this-》db-》get(’module_pages’);$links = ’’;if ( $query-》num_rows 》 0){foreach ($query-》result_array() as $page):$links .= ’《a href=“’.site_url($page[’uri’]).’“》’;$links .= ucwords($page[’title’]).’《/a》《br /》’;endforeach;$data[’links’] = $links;}for ($i=0; $i 《 10; $i++){$this-》db-》like(’title’, ’London’);$query = $this-》db-》get(’module_pages’, 1);if ( $query-》num_rows == 1 ){$row = $query-》row_array();$row[’body’] = str_replace(’Getting’, ’booya’, $row[’body’]);$data[’body’] = $row[’body’];}}$this-》load-》view(’welcome2’, $data);}视图文件类似以下: 《?=$links?》《?=str_replace(’booya’, ’Getting’, ucwords($body))?》基准测试,默认的CI设置下,没有采用缓存等。结果是:Requests per second: 45.03 [#/sec] (mean)还行,但是怎样才能更好呢?把循环结果赋给变量 foreach ($query-》result_array() as $page):修改为: $pages = $query-》result_array();foreach ($pages as $page):Requests per second: 46.75 [#/sec] (mean)不错,有了小小的进步。快了1.7请求每秒。使用Memcache用缓存对象的王者,Memcache。我们需要修改一下控制器的代码。 $memcache = new Memcache;$memcache-》connect(’localhost’, 11211) or die (“Could not connect“);$data = $memcache-》get(’view_data’);if ( !$data ){$query = $this-》db-》get(’module_pages’);$links = ’’;if ( $query-》num_rows 》 0){$pages = $query-》result_array();foreach ($pages as $page):$links .= ’《a href=“’.site_url($page[’uri’]).’“》’;$links .= ucwords($page[’title’]).’《/a》《br /》’;endforeach;$data[’links’] = $links;}for ($i=0; $i 《 10; $i++){$this-》db-》like(’title’, ’London’);$query = $this-》db-》get(’module_pages’, 1);if ( $query-》num_rows == 1 ){$row = $query-》row_array();$row[’body’] = str_replace(’Getting’, ’booya’, $row[’body’]);$data[’body’] = $row[’body’];}}$memcache-》set(’view_data’, $data, false, 3600) or die (“Failed to save data at the server“);}$this-》load-》view(’welcome2’, $data);速度更快了,但是还是进步不是太多。怎样才能更快呢?eAccelerator添加eAccelerator扩展,确实好很多。还有吗?CodeIgniter Output CachiningCI的output cache使用比较容易 $this-》output-》cache(3600);160.73 requests per second,已经有了很好的改善,但是我不会停止:)Output Caching + eAccelerator当她们同时启用时,Requests per second: 389.84 [#/sec] (mean)。
怎么理解css中vertical-align这个属性
vertical-align 属性设置元素的垂直对齐方式。它的值比较多:baseline | sub | super | top | text-top | middle | bottom | text-bottom | inherit。baseline:将支持valign特性的对象的内容与基线对齐sub:垂直对齐文本的下标super:垂直对齐文本的上标top:将支持valign特性的对象的内容与对象顶端对齐text-top:将支持valign特性的对象的文本与对象顶端对齐middle:将支持valign特性的对象的内容与对象中部对齐bottom:将支持valign特性的对象的文本与对象底端对齐text-bottom:将支持valign特性的对象的文本与对象底端对齐inherit:规定应该从父元素继承 vertical-align 属性的值(任何版本的IE(包括 IE8)都不支持属性值 “inherit“)注:常用的有top、middle、bottom,其他的不是很常用。一般是用做img的对其。
怎么读Nginx
Nginx读作[’ɛndʒɪn eks]。
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx 在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
Nginx的特点
Nginx可以在大多数Unix Linux OS上编译运行,Nginx既可以在内部直接支持 Rails和 PHP程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比Perlbal 要好很多。-codeigniter
作为邮件代理服务。Nginx 同时也是一个非常优秀的邮件代理服务(最早开发这个产品的目的之一也是作为邮件代理服务器)。
Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。