memory_get_usage
我的輸出結果:
368272
184
160
160
352
? 關于memory_get_usage問題,如果有處理過C指針,內存調用或者匯編的經驗就很好理解。
? memory_get_usage,可以檢測到內存的位置,你們當他是一個自動搜索器
?? ?
? 368272? :
? 你定義的變量值肯定要有地方保存,不然cpu怎么知道在哪吧,對吧。當然系統肯定不會讓我們自己去
保存變量的,太麻煩而且容易會修改一些數據出錯。
? 我們用memory_get_usage()檢測了一下內存,系統就知道發現我們內存是從368272開始的。
? echo $m1 = memory_get_usage();
? 368272簡單說就是你存放變量值或者php中數據的開始,轉換為16進制就是5000:9E90這個內存開始。
我們把這個開始的內存地址命名為m1。
? $var_string = "123"; ?
? 我們定義了字符串”123“對吧,這時候這個字符串被保存到我們前面定義的內存m1地址中了,這些操
作是系統自動的,我們并沒有操作他。
? 原來的內存地址為368272,我們加入了一個字符串,內存肯定被占用了一些對吧。這就和向一個杯子
倒水(字符串)一樣,水的位置肯定增加改變吧,這樣我們的內存就被消耗了一些了。
? 原來的內存為368272,根據輸出結果后面為184,我們可以知道占用了184的內存,m1+184=368456,所
以368456是現在內存的位置了。
?? ?
? 184? :
? $m2 = memory_get_usage()-$m1; ?
? m2就很簡單了,我們用memory_get_usage()又檢測一下內存得出是368456,我們用 m2=368456-m1(368272)=184。出來了吧,這就是184的來歷,也是m2的值。
?
? 后面的160、160、352也是一樣的。
2017-09-15
自己贊自己,有積分不?