PHP 垃圾回收 机制:Zend GC详解

2012-11-17 杜世伟 Php

概述

在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间

是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refcount为0,那么变量的空间可以被释放

,否则就不释放,这是一种非常简单的GC实现。然而在这种简单的GC实现方案中,出现了意想不到的变量内

存泄漏情况(Bug:http://bugs.php.net/bug.php?id=33595),引擎将无法回收这些内存,于是在PHP5.3中出

现了新的GC,新的GC有专门的机制负责清理垃圾数据,防止内存泄漏。本文将详细的阐述PHP5.3中新的

GC运行机制。

阅读全文>>

标签: PHP 垃圾 回收

评论(0) 浏览(3854)

Mysql多表删除方法

2012-11-17 杜世伟 Mysql

在MySQL数据库中,如果需要多张表同时删除数据,应该怎么做呢?下面就将为您介绍MySQL中多表删除的方法,希望对您有所启迪。

1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉

DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id

2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉

阅读全文>>

标签: mysql 删除

评论(0) 浏览(2891)

慎言谨行 修心第一事

2012-11-3 杜世伟 Message

1、聪明外露者德薄,词华太盛者福浅。
2、为善者常受福,为利者常受祸,心安为福,心劳为祸。
3、成大事者,皆从战战兢兢之心来。
4、人能清心寡欲,自然血气和平,却疾多寿。
5、人之精神,贵藏而用之,苟炫于外,鲜有不败者。

阅读全文>>

标签: 朋友 人生

评论(0) 浏览(3663)

人情似纸张张薄 世事如棋局局新

2012-11-3 杜世伟 Message

人情似纸张张薄,世事如棋局局新。贫居闹市无人问,富在深山有远亲。
不信但看宴中酒,杯杯先敬富贵人。门前拴上高头马,不是亲来也是亲。
门前放根讨饭棍,亲戚故友不上门。世人结交需黄金,黄金不多交不深,
纵令然诺暂相许,终是悠悠路行心。有钱有酒多兄弟,急难何曾见一人。
洒肉朋友朝朝有,无钱无势亲不亲。相逢好比初相识,到老终无怨恨心。
胜者为王败者寇,只重衣冠不重人。三贫三富不到老,十年兴败多少人。

阅读全文>>

标签: 人情 世事 朋友

评论(0) 浏览(3556)

php 垃圾回收机制

2012-11-2 杜世伟 Php

本文主要讨论PHP5.2和5.3的垃圾回收机制区别。

5.2使用的是“引用计数”方式进行回收。简单地理解的话,就是每个分配的内存区域都有一个计数器,记录有多少个变量指针指向这片内存。当指向该片内存的指针数量为0,那么该片内存区域就可以被回收。

引用计数计数简单,强大,但是有一个致命的缺陷,就是环状引用。考虑以下的代码:

阅读全文>>

标签: PHP

评论(0) 浏览(3821)

PHP的内存泄露问题与垃圾回收

2012-11-2 杜世伟 Php

你写了一个php脚本,一般都不用考虑内存泄露和垃圾回收的问题,因为一般情况下你的脚本很快就执行完退出了。

但在一些运行时间长,数据量大的时候,程序运行一段时间后,php脚本就占用了过多内存,然后就报错(PHP Fatal error: Allowed memory size of 134217728 bytes exhausted)退出了。一般来说,每个页面处理结束,新建的simple_html_dom对象就应该被销毁了——但是实际上没有,很明显,内存泄露发生了。

阅读全文>>

标签: PHP

评论(0) 浏览(4130)

数据库设计规范化的五个要求

2012-10-26 杜世伟 Mysql

通常情况下,可以从两个方面来判断数据库是否设计的比较规范。一是看看是否拥有大量的窄表,二是宽表的数量是否足够的少。若符合这两个条件,则可以说明这个数据库的规范化水平还是比较高的。当然这是两个泛泛而谈的指标。为了达到数据库设计规范化的要求,一般来说,需要符合以下五个要求。

阅读全文>>

标签: mysql

评论(0) 浏览(3753)

Linux 重启命令

2012-10-26 杜世伟 Linux

在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部
工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。

阅读全文>>

标签: linux 重启

评论(0) 浏览(4890)

给数据减肥 让MySQL数据库跑的更快

2012-10-26 杜世伟 Mysql

在数据库优化工作中,使数据尽可能的小,使表在硬盘上占据的空间尽可能的小,这是最常用、也是最有效的手段之一。因为缩小数据,相对来说可以提高硬盘的读写速度,并且在查询过程中小表的内容处理时所占用的系统资源比较少。同理,如果在比较小的列上设置索引的话,其索引所占用的资源也会比较少。那么数据库管理员该如何给自己的数据减肥呢?对此笔者有如下几个建议。

阅读全文>>

标签: mysql

评论(0) 浏览(3377)

使用Redis的五个注意事项

2012-10-23 杜世伟 Redis

1.使用key值前缀来作命名空间

虽然说Redis支持多个数据库(默认32个,可以配置更多),但是除了默认的0号库以外,其它的都需要通过一个额外请求才能使用。所以用前缀作为命名空间可能会更明智一点。

另外,在使用前缀作为命名空间区隔不同key的时候,最好在程序中使用全局配置来实现,直接在代码里写前缀的做法要严格避免,这样可维护性实在太差了。

阅读全文>>

标签: redis

评论(0) 浏览(3860)

Powered by emlog 沪ICP备2023034538号-1