之前在 mydroid/development/pdk/docs 有些document (HTML)
例如說介紹Android Build system ,
如何在Android裡作不同的device setting
或者是 porting Android kernel and driver
可是最近都變成給DroidDoc吃的 jd檔
然後我make 或者是make docs都沒產生這些文件
最後發現在mydroid/development/pdk 裡有個README
按照他的說明就可以產生這些文件的HTML檔了
或者是用懶人速成法
$mydroid> make -j pdk pdk_all
^^^^^^^^^^^^^^ 兩個缺一不可
Thursday, August 13, 2009
Sunday, August 2, 2009
用家裡電腦編Android
昨天買了cpu mainboard and DDR3
今天來測試一下
AMD Phenom II x4 955
DDR3 1333 4G
real 21m36.468s
user 53m51.970s
sys 4m19.640s
明天來試公司的intel 4核的
不過那好像ddr2...
公司的
real 21m18.609s
user 63m43.910s
sys 4m29.210s
DDR2 800
CPU Core2 Quad Q9400 2.66G
不確定為啥家裡的 real跟公司的是差不多的
今天來測試一下
AMD Phenom II x4 955
DDR3 1333 4G
real 21m36.468s
user 53m51.970s
sys 4m19.640s
明天來試公司的intel 4核的
不過那好像ddr2...
公司的
real 21m18.609s
user 63m43.910s
sys 4m29.210s
DDR2 800
CPU Core2 Quad Q9400 2.66G
不確定為啥家裡的 real跟公司的是差不多的
Thursday, July 23, 2009
A2DP in ubuntu
http://fosswire.com/post/2008/1/a2dp-stereo-linux/
不過amarok好像找不到地方把audio direct 到bluetooth
不過amarok好像找不到地方把audio direct 到bluetooth
Thursday, July 16, 2009
Android查看memory usage
在adb shell裡有幾種方法可以看memory
1. android shell裡的top
PID CPU% S #THR VSS RSS UID Name
VSS -Virtual memory 的size
RSS -就是指physical 的page
不過在android上這兩項不一定是實際的數值
第一是這裡拿到的值是process可以用的memory space
而不是實際上已經使用的memory
第二是在android上很多processes之間有share
所以phy pages是可以被share的
2. 用busybox的top
不過...............那出來的值好像都怪怪的
3.用procrank
# procrank
PID Vss Rss Pss Uss cmdline
Uss是這個process exclusive 的memory
Pss 不是很清楚
不過好像是Uss 加上 RSS/ (用這塊shared memory的process數目)
procrank的source在 mydroid/extras/procrank
主要是利用 kernel 在2.6.25後一個新的功能
在/proc/pid/裡新加一個 pagemap
http://lwn.net/Articles/230975/
4. 如果要看java heap的使用量的話
dumpsys meminfo
** MEMINFO in pid 608 [com.android.phone] **
native dalvik other total
size: 4112 3655 N/A 7767
allocated: 3829 2821 N/A 6650
free: 266 834 N/A 1100
(Pss): 2087 1785 2877 6749
(shared dirty): 1124 3952 928 6004
(priv dirty): 1968 1380 556 3904
Objects
Views: 0 ViewRoots: 0
AppContexts: 5 Activities: 0
Assets: 3 AssetManagers: 3
Local Binders: 18 Proxy Binders: 14
Death Recipients: 1
OpenSSL Sockets: 0
SQL
heap: 142 dbFiles: 0
numPagers: 2 inactivePageKB: 24
activePageKB: 0
dumpsys的source在/mydroid/frameworks/base/cmds/dumpsys
1. android shell裡的top
PID CPU% S #THR VSS RSS UID Name
VSS -Virtual memory 的size
RSS -就是指physical 的page
不過在android上這兩項不一定是實際的數值
第一是這裡拿到的值是process可以用的memory space
而不是實際上已經使用的memory
第二是在android上很多processes之間有share
所以phy pages是可以被share的
2. 用busybox的top
不過...............那出來的值好像都怪怪的
3.用procrank
# procrank
PID Vss Rss Pss Uss cmdline
Uss是這個process exclusive 的memory
Pss 不是很清楚
不過好像是Uss 加上 RSS/ (用這塊shared memory的process數目)
procrank的source在 mydroid/extras/procrank
主要是利用 kernel 在2.6.25後一個新的功能
在/proc/pid/裡新加一個 pagemap
http://lwn.net/Articles/230975/
4. 如果要看java heap的使用量的話
dumpsys meminfo
** MEMINFO in pid 608 [com.android.phone] **
native dalvik other total
size: 4112 3655 N/A 7767
allocated: 3829 2821 N/A 6650
free: 266 834 N/A 1100
(Pss): 2087 1785 2877 6749
(shared dirty): 1124 3952 928 6004
(priv dirty): 1968 1380 556 3904
Objects
Views: 0 ViewRoots: 0
AppContexts: 5 Activities: 0
Assets: 3 AssetManagers: 3
Local Binders: 18 Proxy Binders: 14
Death Recipients: 1
OpenSSL Sockets: 0
SQL
heap: 142 dbFiles: 0
numPagers: 2 inactivePageKB: 24
activePageKB: 0
dumpsys的source在/mydroid/frameworks/base/cmds/dumpsys
Friday, June 12, 2009
用vi來改binary file
最近試著用vi來改binary
加 -b
$> vi -b BINARY_FILE
打開binary後
:%!xxd
就會看到byte 跟ascii
像ultraedit看到的那樣
不過沒像ultraedit方便 左邊到哪 右邊就到哪
改完後
:%!xxd -r
然後就存檔啦
一開始不加-b的話 vi最後會幫你加上eol 所以會多一個byte
少這一步就蝦忙很久了.....
加 -b
$> vi -b BINARY_FILE
打開binary後
:%!xxd
就會看到byte 跟ascii
像ultraedit看到的那樣
不過沒像ultraedit方便 左邊到哪 右邊就到哪
改完後
:%!xxd -r
然後就存檔啦
一開始不加-b的話 vi最後會幫你加上eol 所以會多一個byte
少這一步就蝦忙很久了.....
Tuesday, June 9, 2009
Chromium上也有zygote了
繼Android後
chromium上也放zygote了
http://src.chromium.org/viewvc/chrome?view=rev&revision=17909
不過還沒研究兩者的差別就是了
chromium上也放zygote了
http://src.chromium.org/viewvc/chrome?view=rev&revision=17909
不過還沒研究兩者的差別就是了
Saturday, June 6, 2009
V8 javascript engine
http://code.google.com/events/io/sessions/V8BuildingHighPerfJavascriptEngine.html
在V8 Memory Model 那頁
他用了tagged pointers
因為object都是4 byte aligned 的 所以bit 0 1都沒有東西
所以這兩個bit就會被設為01 來代表這是個pointer
而如果是一般的integer時 bit 0會被設為0
只有31bit來代表 signed integer
所以integer 就是 2^30 - 1 ~ -2^30
不過這ok嗎????
然後Elements Pointer是在幹嘛的?
-----------------------------------
接下來在Hidden class的介紹
Properties的pointer 指到一個buffer 這buffer是多大呢???
然後在p2 construct的時候
使用hidden class的design decision? 90%的數據是怎麼來的
會不會這時class 0 1已經被GC掉了? 如果被GC重新construct的話 最後p2還會指到class 2嗎
還是會指到class 3 但class 3跟class 2的content 是一樣的
在video最後面有人問到說如果p2 是先constuct y再x的話 p2 跟p1會是一樣的嗎?
答案是不一樣的 雖然他們的內容是一樣 只是順序不同
他們還是兩個不同的class
-----------------------------------
接下來在Monomorphic load inline cache
好像是intel syntax?
一開始 compare 這是個pointer or integer
然後比這class的pointer
如果都一樣的話就load properties 來達到fast property access的功能
不過megamorphic好像沒講到太多
------------------------------------
接下來講GC
generational
但又分三種
另外與其他JavaScriptCore or Java的GC有什麼不同呢
每個人的GC都說是棒呆了
----------------------------------
RE
Webkit跟V8在String 上的 implementation哪不一樣造成JSCRE 的performance不好
The implementation of automaton to recognize RE
在V8 Memory Model 那頁
他用了tagged pointers
因為object都是4 byte aligned 的 所以bit 0 1都沒有東西
所以這兩個bit就會被設為01 來代表這是個pointer
而如果是一般的integer時 bit 0會被設為0
只有31bit來代表 signed integer
所以integer 就是 2^30 - 1 ~ -2^30
不過這ok嗎????
然後Elements Pointer是在幹嘛的?
-----------------------------------
接下來在Hidden class的介紹
Properties的pointer 指到一個buffer 這buffer是多大呢???
然後在p2 construct的時候
使用hidden class的design decision? 90%的數據是怎麼來的
會不會這時class 0 1已經被GC掉了? 如果被GC重新construct的話 最後p2還會指到class 2嗎
還是會指到class 3 但class 3跟class 2的content 是一樣的
在video最後面有人問到說如果p2 是先constuct y再x的話 p2 跟p1會是一樣的嗎?
答案是不一樣的 雖然他們的內容是一樣 只是順序不同
他們還是兩個不同的class
-----------------------------------
接下來在Monomorphic load inline cache
好像是intel syntax?
一開始 compare 這是個pointer or integer
然後比這class的pointer
如果都一樣的話就load properties 來達到fast property access的功能
不過megamorphic好像沒講到太多
------------------------------------
接下來講GC
generational
但又分三種
- Scanenge
- Full non-compact GC
- Full compact GC
另外與其他JavaScriptCore or Java的GC有什麼不同呢
每個人的GC都說是棒呆了
----------------------------------
RE
Webkit跟V8在String 上的 implementation哪不一樣造成JSCRE 的performance不好
The implementation of automaton to recognize RE
Subscribe to:
Posts (Atom)