Blog

PHP 單一實例設計模式與new 物件,消耗記憶體的比較

精選文章 Aug 31, 2012 Visitor 9321 Comments 0
class form {
	private static $oForm;
	// 單一實例
	public static function instance() {
		if (!self::$oForm) {
			self::$oForm = new form();
		}

		return self::$oForm;
	}
	public function select($aArray, $aOption) {
		// do something ......
	}
	public function radio($aArray, $aOption) {
		// do something ......
	}
	public function checkbox($aArray, $aOption) {
		// do something ......
	}
}

$aStatus[0] = '上架';
$aStatus[1] = '下架';

for ($i=0; $i<10000; $i++) {
	$oForm = form::instance();
	
	echo $oForm->select($a, $o);
}

echo memory_get_usage(); // 1480256

for ($i=0; $i<10000; $i++) {
	echo form::select($a, $o);
}

echo memory_get_usage(); // 1479656

for ($i=0; $i<10000; $i++) {
	$oForm = new form();
	
	return $oForm->{$m}($a, $o);
}

echo memory_get_usage(); // 1480016
精選文章 Aug 31, 2012 Visitor 9321 Comments 0