2009年9月15日 星期二
C++ auto pointer
相信許多寫C/C++語言的人一定都用過指標
C/C++指標很強大很好用
但使用時必須很小心
因為動不動就忘了將指標回收而造成了memory leak
或是不小心回收了卻又去存取指標造成系統crash
我們舉幾個例子好了
1.Dangling pointer
MyObject *A = new MyObject();
MyObject *B = A;
A->callMethod();
delete A; // free memory
A = NULL; // pointer to NULL to prevent access wrong memory address
B->callMethod(); //dangling pointer , system may crash
B指標指向一個可能已經被系統回收的記憶體
一般程式設計師會用以下的code來判斷這個指標是否可以被使用
if ( B != NULL )
B->callMethod();
但很顯然的B指標非NULL
它只是指向一個垃圾位址而已
你無法保證程式這樣執行一定正確而且不會crash
2.Exception發生
MyObject *A = NULL;
try{
A = new MyObject();
A->callMethod(); // exception may happen
delete A;
}
catch(..)
{
//error handle
如果你沒在這裡明確delete a,那一定memory leak
// delete A;
}
用C++的auto pointer不用害怕memory leak和dangling pointer
你只需要負責new你的記憶體就好
不需要要delete它
系統會自動回收不用的記憶體
例如
auto_ptr A( new MyObject() );
auto_ptr B = A;
auto_ptr C = A;
A->callMethod();
B->callMethod();
C->callMethod();
如果A記憶體被回收了
那B,C一定會是NULL
所以不會有dangling pointer的問題
如果允許使用auto pointer的話就儘量使用
可以提高系統的穩定度以及可靠度
你不用在茫茫code海中找到底那段code造成memory leak了
C/C++指標很強大很好用
但使用時必須很小心
因為動不動就忘了將指標回收而造成了memory leak
或是不小心回收了卻又去存取指標造成系統crash
我們舉幾個例子好了
1.Dangling pointer
MyObject *A = new MyObject();
MyObject *B = A;
A->callMethod();
delete A; // free memory
A = NULL; // pointer to NULL to prevent access wrong memory address
B->callMethod(); //dangling pointer , system may crash
B指標指向一個可能已經被系統回收的記憶體
一般程式設計師會用以下的code來判斷這個指標是否可以被使用
if ( B != NULL )
B->callMethod();
但很顯然的B指標非NULL
它只是指向一個垃圾位址而已
你無法保證程式這樣執行一定正確而且不會crash
2.Exception發生
MyObject *A = NULL;
try{
A = new MyObject();
A->callMethod(); // exception may happen
delete A;
}
catch(..)
{
//error handle
如果你沒在這裡明確delete a,那一定memory leak
// delete A;
}
用C++的auto pointer不用害怕memory leak和dangling pointer
你只需要負責new你的記憶體就好
不需要要delete它
系統會自動回收不用的記憶體
例如
auto_ptr
auto_ptr
auto_ptr
A->callMethod();
B->callMethod();
C->callMethod();
如果A記憶體被回收了
那B,C一定會是NULL
所以不會有dangling pointer的問題
如果允許使用auto pointer的話就儘量使用
可以提高系統的穩定度以及可靠度
你不用在茫茫code海中找到底那段code造成memory leak了
2009年9月10日 星期四
Wii&NGC combo 模擬器
相信有在玩模擬器的朋友們都知道,最近最Hot的模擬器之一就是Dolphin。這個模擬器當初只為了模擬NGC,
現在卻連Wii也模擬了,而且執行的效率還不錯。Dolphin模擬自從原始作者Open Source之後吸引了許多開發者
的參與,更新速度簡直像是用飛的一樣,短短的幾個月,已經更新到的r4247版(意指Project被開啟到至今修改過
了4247次),目前的更新速度依然相當快速,而且也不乏許多高手加入此Project(例如1964的作者),他在Google
上的Project專區也是相當的熱鬧,有興趣的人可以去看看。
Dolphin Project
順便貼上幾個他執行的影片
Wii版薩爾達傳說-曙光公主
NGC-薩爾達傳說-風之律動
Wii-任天堂明星大亂鬥(用Xbox360手把)
現在卻連Wii也模擬了,而且執行的效率還不錯。Dolphin模擬自從原始作者Open Source之後吸引了許多開發者
的參與,更新速度簡直像是用飛的一樣,短短的幾個月,已經更新到的r4247版(意指Project被開啟到至今修改過
了4247次),目前的更新速度依然相當快速,而且也不乏許多高手加入此Project(例如1964的作者),他在Google
上的Project專區也是相當的熱鬧,有興趣的人可以去看看。
Dolphin Project
順便貼上幾個他執行的影片
Wii版薩爾達傳說-曙光公主
NGC-薩爾達傳說-風之律動
Wii-任天堂明星大亂鬥(用Xbox360手把)
NDS模擬器Desmume
NDS模擬器出來很久了,但是很多都停止開發了,當初最紅的NO$GBA作者都不知道跑那去了,
現在唯一還有更新的是這個Open Source Project。老實說Desmume初期真的不怎樣,
但現在他的相容性和速度都有一定的水準,是一個可以期待的模擬器,如果有人想試試的話
可以去他的官網下載(但不會是最新的)
Desmume Project
如果想要用最新的非官方Release
你可以去以下網站下載
Emu svn daily build
順便貼上0.9.4+版運行的結果
王國之心
現在唯一還有更新的是這個Open Source Project。老實說Desmume初期真的不怎樣,
但現在他的相容性和速度都有一定的水準,是一個可以期待的模擬器,如果有人想試試的話
可以去他的官網下載(但不會是最新的)
Desmume Project
如果想要用最新的非官方Release
你可以去以下網站下載
Emu svn daily build
順便貼上0.9.4+版運行的結果
王國之心
2009年8月22日 星期六
2009年3月16日 星期一
100萬美金的Router ... Cisco uBR 10k
公司最近被Cisco坳要買一臺3千多萬的Router
最近到貨,好大一臺
這臺Router support docsis 1.0,1.1,2.0,3.0
每張line card有5ds,20us,可以插8張
最高可支援64000位user
很強
但很貴
外型可以參考Cisco uBR10k
最近到貨,好大一臺
這臺Router support docsis 1.0,1.1,2.0,3.0
每張line card有5ds,20us,可以插8張
最高可支援64000位user
很強
但很貴
外型可以參考Cisco uBR10k
2009年2月6日 星期五
RF的救星-Docsis 3.0 - 續(1)
今天先來談Docsis 3.0的速度到底能達多快
首先我們先了解一下Docsis 2.0能多快
Docsis 2.0在
1 Channel 256 QAM的狀態下
其頻寬下行可達42.88Mbit/s
而128 QAM
的上行可以達30Mbit/s
在Docsis 3.0的時候
支援了一個新的技術
叫Channel Bonding
可以同時使用數個RF Frequencies
一般DS/US的比例是8,4或4,4
也就是下行可以X8,上行X4
至少可以達到DS/US是340Mbit/s / 120Mbit/s
但這是在256QAM/128QaM的狀況下
其實只要RF tuner再進步
是可以到512QAM或是1024QAM的
而且Bonding的channel也可以再增加
事實上
Docsis 3.0是可以達到1Gbit/s以上的效率
今天到此為止
改天來談Docsis 3.0的Qos部份
首先我們先了解一下Docsis 2.0能多快
Docsis 2.0在
1 Channel 256 QAM的狀態下
其頻寬下行可達42.88Mbit/s
而128 QAM
的上行可以達30Mbit/s
在Docsis 3.0的時候
支援了一個新的技術
叫Channel Bonding
可以同時使用數個RF Frequencies
一般DS/US的比例是8,4或4,4
也就是下行可以X8,上行X4
至少可以達到DS/US是340Mbit/s / 120Mbit/s
但這是在256QAM/128QaM的狀況下
其實只要RF tuner再進步
是可以到512QAM或是1024QAM的
而且Bonding的channel也可以再增加
事實上
Docsis 3.0是可以達到1Gbit/s以上的效率
今天到此為止
改天來談Docsis 3.0的Qos部份
2009年2月4日 星期三
RF的救星-Docsis 3.0
未來
無線網路4G將會達到Gbit/sec
而有線網路也有光纖虎視眈眈
傳統xDSL和Cable有何前途
xDSL我不知道
但Cable未來的Docsis 3.0規格
是一個速度上可媲美光纖網路的標準
它不需要換到整個網路骨幹
只需要更新用戶端和MSO端的設備即可
改天我再來繼續談Docsis 3.0
無線網路4G將會達到Gbit/sec
而有線網路也有光纖虎視眈眈
傳統xDSL和Cable有何前途
xDSL我不知道
但Cable未來的Docsis 3.0規格
是一個速度上可媲美光纖網路的標準
它不需要換到整個網路骨幹
只需要更新用戶端和MSO端的設備即可
改天我再來繼續談Docsis 3.0
2009年1月30日 星期五
2009年1月29日 星期四
Playstation 2模擬器
PS2模擬器這玩意從我高中時代就有聽說
但那時的模擬器都是虎爛的居多
還記得當年巴哈某位大師說PS2是難以被模擬的
我一直覺得是個笑話
PS2再神勇
VU0/VU1再無敵
它的calculation power一定是有限的
果然不出所以然
正牌的PS2模擬器已經出來了
而且效果不錯
有興趣的人可以下載試試
http://www.pcsx2.net/
...啥?
不會用
下次再教你們
但那時的模擬器都是虎爛的居多
還記得當年巴哈某位大師說PS2是難以被模擬的
我一直覺得是個笑話
PS2再神勇
VU0/VU1再無敵
它的calculation power一定是有限的
果然不出所以然
正牌的PS2模擬器已經出來了
而且效果不錯
有興趣的人可以下載試試
http://www.pcsx2.net/
...啥?
不會用
下次再教你們
Wii模擬器已經可以玩了
http://www.dolphin-emu.com/news.php
這個模擬器可不只模擬Wii而已
它的GameCube也模擬的相當好
以下是大陸玩家測試它模擬Wii的效果
Naturo EX3
這個模擬器可不只模擬Wii而已
它的GameCube也模擬的相當好
以下是大陸玩家測試它模擬Wii的效果
Naturo EX3
訂閱:
文章 (Atom)