-
他52不速來客了552我5他55歲 5查看全部
-
聯合體。。。
查看全部 -
結構體。。。
查看全部 -
筆記本查看全部
-
1查看全部
-
對于宏的理解
查看全部 -
6-1到6-2的練習實例
查看全部 -
unset 很巧妙。只是把type 置為了0。而不是真正的抹掉了內存。下次用的時候根據type做判斷,直接覆蓋。這樣大大的節約了性能。
查看全部 -
gdb調試查看,值的存儲位置
查看全部 -
gdb 調試 packet array 變成了hash array
查看全部 -
Packed Array 和Hash Array。
如果能用到Packed Array 就盡量使用Packed Array。節省內存。
查看全部 -
多出1MB的內存用到哪里了?
查看全部 -
hashtable的巧妙設計
查看全部 -
nTableMask:用來計算最終落到哪個桶里邊的一個值。
arData?數組中的每個元素都是一個bucket。Bucket結構體元素如下。
? ? ?zval 是key-value的value
? ? ?zend_ulong h 是hash算法算出來的hash值
? ? *key 是key-value的key
nNumUsed代表了有多少bucket 被使用了。
nNumofElements是跟nNumofElements是有區別的,比如unset 掉一個數組中的一個元素,nNumUsed并不會減少。nNumofElements會減少,nNumOfElements是真正有意義的值,不包括unset掉的值。
nTableSize 是bucket大小。
nInternalPointer內部指針。
nNextFreeElement :有時候并不寫key就賦值一個value。通過這個nNextFreeElement知道了應該放到哪個位置。
pDestructor :用來析構用的。
查看全部 -
字符串的寫時復制
查看全部 -
這種字符串的實現是二進制安全的。
什么是非二進制安全?字符串以\0結尾,如果字符串中有\0那么就會被截斷。
什么是二進制安全呢?可以字符串len獲取字符串的內容,即便字符串中有\0也不會因此而截斷。
查看全部 -
查看全部
-
變量,簡單的圖示
查看全部 -
gdb 查看底層變量的存儲方式
查看全部 -
zend_uchar type 這個用一個字節表示變量的類型。
查看全部 -
zend_value每一項的字段解釋。
查看全部 -
zval 的結構體占用大小
查看全部 -
判斷大小端的demo
查看全部 -
謝謝老師???查看全部
-
結構體內存 8字節對齊,聯合體復用內存
查看全部 -
char a 1
int b 4
long 8
viod* 8
int e 4
char* f 8
查看全部 -
union_u{...}
//這里是聯合體 聯合體的大小為8字節 內容和結構體一樣?
但是不同之處它的變量是復用的 反復在這8字節存儲?
查看全部 -
stuct_s{? //這里是結構體 結構體的總大小是40字節?
在內存里是按字節對齊存放的 且小于4字節 的以4個字節的位置放置 單行大小為8字節對齊? 整體結構體以8個字節對齊
char a; //1字節
int b;//4字節
long c;//8字節
void* d;//8字節
int e;//4字節
char*f;//8字節
}
查看全部
舉報