dz̸PHP5ÖÐÀ¬»ø»ØÊÕËã·¨(Garbage Collection)µÄÑÝ»¯
ǰÑÔ
PHPÊÇÒ»ÃÅÍйÜÐÍÓïÑÔ£¬ÔÚPHP±à³ÌÖгÌÐòÔ±²»ÐèÒªÊÖ¹¤´¦ÀíÄÚ´æ×ÊÔ´µÄ·ÖÅäÓëÊÍ·Å£¨Ê¹ÓÃC±àдPHP»òZendÀ©Õ¹³ýÍ⣩£¬Õâ¾ÍÒâζ×ÅPHP±¾ÉíʵÏÖÁËÀ¬»ø»ØÊÕ»úÖÆ£¨Garbage Collection£©¡£ÏÖÔÚÈç¹ûÈ¥PHP¹Ù·½ÍøÕ¾£¨php.net£© ¿ÉÒÔ¿´µ½£¬Ä¿Ç°PHP5µÄÁ½¸ö·ÖÖ§°æ±¾PHP5.2ºÍPHP5.3ÊÇ·Ö±ð¸üеģ¬ÕâÊÇÒòΪÐí¶àÏîÄ¿ÈÔȻʹÓÃ5.2°æ±¾µÄPHP£¬¶ø5.3°æ±¾¶Ô5.2²¢²» ÊÇÍêÈ«¼æÈÝ¡£PHP5.3ÔÚPHP5.2µÄ»ù´¡ÉÏ×öÁËÖî¶à¸Ä½ø£¬ÆäÖÐÀ¬»ø»ØÊÕËã·¨¾ÍÊôÓÚÒ»¸ö±È½Ï´óµÄ¸Ä±ä¡£±¾ÎĽ«·Ö±ðÌÖÂÛPHP5.2ºÍPHP5.3µÄÀ¬ »ø»ØÊÕ»úÖÆ£¬²¢ÌÖÂÛÕâÖÖÑÝ»¯ºÍ¸Ä½ø¶ÔÓÚ³ÌÐòÔ±±àдPHPµÄÓ°ÏìÒÔ¼°Òª×¢ÒâµÄÎÊÌâ¡£
PHP±äÁ¿¼°¹ØÁªÄÚ´æ¶ÔÏóµÄÄÚ²¿±íʾ
À¬»ø»ØÊÕ˵µ½µ×ÊǶԱäÁ¿¼°ÆäËù¹ØÁªÄÚ´æ¶ÔÏóµÄ²Ù×÷£¬ËùÒÔÔÚÌÖÂÛPHPµÄÀ¬»ø»ØÊÕ»úÖÆÖ®Ç°£¬ÏȼòÒª½éÉÜPHPÖбäÁ¿¼°ÆäÄÚ´æ¶ÔÏóµÄÄÚ²¿±íʾ£¨ÆäCÔ´´úÂëÖеıíʾ£©¡£
PHP¹Ù·½ÎĵµÖн«PHPÖеıäÁ¿»®·ÖΪÁ½Àࣺ±êÁ¿ÀàÐͺ͸´ÔÓÀàÐÍ¡£±êÁ¿ÀàÐͰüÀ¨²¼¶ûÐÍ¡¢ÕûÐÍ¡¢¸¡µãÐͺÍ×Ö·û´®£»¸´ÔÓÀàÐͰüÀ¨Êý×é¡¢¶ÔÏóºÍ×ÊÔ´£»»¹ÓÐÒ»¸öNULL±È½ÏÌØÊ⣬Ëü²»»®·ÖΪÈκÎÀàÐÍ£¬¶øÊǵ¥¶À³ÉΪһÀà¡£
ËùÓÐÕâЩÀàÐÍ£¬ÔÚPHPÄÚ²¿Í³Ò»ÓÃÒ»¸ö½Ð×özvalµÄ½á¹¹±íʾ£¬ÔÚPHPÔ´´úÂëÖÐÕâ¸ö½á¹¹Ãû³ÆÎª¡°_zval_struct¡±¡£zvalµÄ¾ßÌ嶨ÒåÔÚPHPÔ´´úÂëµÄ¡°Zend/zend.h¡±ÎļþÖУ¬ÏÂÃæÊÇÏà¹Ø´úÂëµÄժ¼¡£
typedef union _zvalue_value { long lval; /* long value */ double dval; /* double value */ struct { char *val; int len; } str; HashTable *ht; /* hash table value */ zend_object_value obj; } zvalue_value; struct _zval_struct { /* Variable information */ zvalue_value value; /* value */ zend_uint refcount__gc; zend_uchar type; /* active type */ zend_uchar is_ref__gc; };
ÆäÖÐÁªºÏÌå¡°_zvalue_value¡±ÓÃÓÚ±íʾPHPÖÐËùÓбäÁ¿µÄÖµ£¬ÕâÀïÖ®ËùÒÔʹÓÃunion£¬ÊÇÒòΪһ¸özvalÔÚÒ»¸öʱ¿ÌÖ»ÄܱíʾһÖÖÀà Ð͵ıäÁ¿¡£¿ÉÒÔ¿´µ½_zvalue_valueÖÐÖ»ÓÐ5¸ö×ֶΣ¬µ«ÊÇPHPÖÐËãÉÏNULLÓÐ8ÖÖÊý¾ÝÀàÐÍ£¬ÄÇôPHPÄÚ²¿ÊÇÈçºÎÓÃ5¸ö×ֶαíʾ8ÖÖÀàÐÍ ÄØ£¿ÕâËãÊÇPHPÉè¼Æ±È½ÏÇÉÃîµÄÒ»¸öµØ·½£¬Ëüͨ¹ý¸´ÓÃ×ֶδﵽÁ˼õÉÙ×ֶεÄÄ¿µÄ¡£ÀýÈ磬ÔÚPHPÄÚ²¿²¼¶ûÐÍ¡¢ÕûÐͼ°×ÊÔ´£¨Ö»Òª´æ´¢×ÊÔ´µÄ±êʶ·û¼´¿É£©¶¼ÊÇ Í¨¹ýlval×ֶδ洢µÄ£»dvalÓÃÓÚ´æ´¢¸¡µãÐÍ£»str´æ´¢×Ö·û´®£»ht´æ´¢Êý×飨עÒâPHPÖеÄÊý×éÆäʵÊǹþÏ£±í£©£»¶øobj´æ´¢¶ÔÏóÀàÐÍ£»Èç¹ûËùÓÐ ×Ö¶ÎÈ«²¿ÖÃΪ0»òNULLÔò±íʾPHPÖеÄNULL£¬ÕâÑù¾Í´ïµ½ÁËÓÃ5¸ö×ֶδ洢8ÖÖÀàÐ͵ÄÖµ¡£
¶øµ±Ç°zvalÖеÄvalue£¨valueµÄÀàÐͼ´ÊÇ_zvalue_value£©µ½µ×±íʾÄÇÖÖÀàÐÍ£¬ÔòÓÉ¡°_zval_struct¡±ÖÐµÄ typeÈ·¶¨¡£_zval_struct¼´ÊÇzvalÔÚCÓïÑÔÖеľßÌåʵÏÖ£¬Ã¿¸özval±íʾһ¸ö±äÁ¿µÄÄÚ´æ¶ÔÏó¡£³ýÁËvalueºÍtype£¬¿ÉÒÔ¿´µ½ _zval_structÖл¹ÓÐÁ½¸ö×Ö¶Îrefcount__gcºÍis_ref__gc£¬´ÓÆäºó׺¾Í¿ÉÒԶ϶¨ÕâÁ½¸ö¼Ò»ïÓëÀ¬»ø»ØÊÕÓйء£Ã»´í£¬PHPµÄ À¬»ø»ØÊÕÈ«¿¿ÕâÁ©×Ö¶ÎÁË¡£ÆäÖÐrefcount__gc±íʾµ±Ç°Óм¸¸ö±äÁ¿ÒýÓôËzval£¬¶øis_ref__gc±íʾµ±Ç°zvalÊÇ·ñ±»°´ÒýÓÃÒýÓã¬Õâ »°ÌýÆðÀ´ºÜÞÖ¿Ú£¬ÕâºÍPHPÖÐzvalµÄ¡°Write-On-Copy¡±»úÖÆÓйأ¬ÓÉÓÚÕâ¸ö»°Ìâ²»ÊDZ¾ÎÄÖØµã£¬Òò´ËÕâÀï²»ÔÙÏêÊö£¬¶ÁÕßÖ»Ðè¼Çס refcount__gcÕâ¸ö×ֶεÄ×÷Óü´¿É¡£
ÍÆ¼öÐÅÏ¢
- ¡¾ÊÓÆµ²¥·Å¡¿JplayerÊÓÆµ²¥·ÅÆ÷µÄʹÓÃ
- memcacheÄÚ´æÔÀí
- Memcache¼¼Êõ·ÖÏí£º½éÉÜ¡¢Ê¹Óᢴ洢¡¢Ëã·¨¡¢ÓÅ»¯....
- php³£ÓÃÕýÔò±í´ïʽ
- phpÐÔÄܼà²âÄ£¿éXHProf
- ÈÃCI¿ò¼ÜÖ§³Öservice²ã
- ʹÓÃPHPÉú³É´øLOGOµÄ¸öÐÔ»¯¶þάÂëͼÏñ
- ¹ØÓÚCodeIgniterÄã¿ÉÄܲ»ÖªµÀµÄ5¸ö֪ʶµã
- Memcache ºÁÃë¼¶³¬Ê±¼°ÆäËû³£¼ûÎÊÌâ»ã×Ü
- [PHP±Ê¼Ç]PHPQueryÒ»¸ö´¦ÀíDOMµÄÀûÆ÷
ÈÈÃÅÐÅÏ¢
- nohup: redirecting stderr to stdou....
- ʹÓÃlog_formatΪNginx·þÎñÆ÷ÉèÖøüÏêϸµÄÈÕÖ¾¸ñʽ
- jquery easyUI--dataGrid-Json
- [Ô´´]·ÂGoogle Reader¡¢ÐÂÀË΢²©¡¢ÌÚѶ΢²©µ....
- ÀûÓÃKeepalived+mysql¹¹½¨¸ß¿ÉÓÃMySQLË«Ö÷×Ô¶....
- Nginx+keepalivedʵÏÖ¸ºÔؾùºâºÍË«»úÈȱ¸¸ß¿ÉÓÃ
- jqueryʵÏÖÒ³Ãæ¼ÓÔØ½ø¶ÈÌõ
- Rolling cURL: PHP²¢·¢×î¼Ñʵ¼ù
- codeigniter ·ÓÉÖÕ¼«ÓÅ»¯(url rewrite)
- linuxÏÂÉèÖÃsshÎÞÃÜÂëµÇ¼
×î½ü¸üÐÂ
- PHP»ñÈ¡Óû§µÄÕæÊµIP£¬²¢ÅжÏÊÇ·ñÄÚÍøIP
- PHP ´íÎóÈÕÖ¾ error_log
- ÀûÓÃbigpipe»úÖÆÊµÏÖÒ³ÃæÄ£¿éµÄÒì²½äÖȾ chunked¼¼Êõ
- php¿ØÖÆÎļþÏÂÔØËÙ¶È
- js + php ¶ÁÈ¡¡¢²¥·ÅÊÓÆµÁ÷ ¼æÈÝfirefox£¬c....
- ¡¾ÊÓÆµ²¥·Å¡¿JplayerÊÓÆµ²¥·ÅÆ÷µÄʹÓÃ
- UNICODE Óë UTF-8 µÄ¹ØÏµ
- memcacheÄÚ´æÔÀí
- Memcache¼¼Êõ·ÖÏí£º½éÉÜ¡¢Ê¹Óᢴ洢¡¢Ëã·¨¡¢ÓÅ»¯....
- phpʹÓÃmb_detect_encoding¼ì²â×Ö·û´®±àÂë
ÆÀÂÛ