Saturday, November 19, 2011

[程式心得]如何找到Memory Leak, (簡介Google Heap Leak Checker)

這次為了找Memory Leak用了各種工具,發現了這超好用的工具。

Google Heap Checker

http://google-perftools.googlecode.com/svn/trunk/doc/heap_checker.html

使用方法很簡單, 只要在compiler程式的時候增加 -ltcmalloc 的參數就可以了。
不過我是在Ubuntu上面使用 遇到一些使用上的小問題。順便解說一下


首先在Ubuntu 可以用 sudo apt-get install google-perftool 來安裝
但是安裝完之後會少一個symbolic link
所以需要先



$ sudo ln -s /usr/lib/libtcmalloc.so.0 /usr/lib/libtcmalloc.so.0

他有多種使用方法,我只介紹我用到的方法 
 
dump heap然後比較heap的差異
 
其他有興趣的可以自行google

要執行程式的時候

$ HEAPPROFILE=/tmp/heapfile ./my-program 
 
這樣會每隔一段時間你的heap 有變化的的時候 會dump到 
/tmp/heapfile.0001.heap

/tmp/heapfile.0002.heap
/tmp/heapfile.0003.heap
/tmp/heapfile.0004.heap
 
這樣就可以比較兩個不同時間點的heap 
比較的工具是 pprof
 
但是Ubuntu裡面有另外一個叫做 pprof的工具 
所以在Ubuntu裡面改名為 google-pprof ,別用錯了
 

想看heap內容的時候可以

$ google-pprof --gv /path/to/my-program /tmp/heapfile.0001.heap
 
要比較兩個heap差別時 
 
$ google-pprof --gv --base=/tmp/heapfile.0001.heap /path/to/my-program /tmp/heapfile.0003.heap
 
圖的長相可以看這邊http://goog-perftools.sourceforge.net/doc/heap_profiler.html
有整個call graph,還會把差越多的block畫的越大塊。
非常好用,我就是用這個找到一個小小的leak。


希望對大家以後跟memory leak奮戰可以很快結束。

順便說,另外一個同系列的performance profile也很好用喔

Sunday, November 06, 2011

[看戲心得]2011淡水國際藝術節-西仔反傳說

由於相機不好,拍的照片都不漂亮,引用以下這個Blog,整理得挺好的
http://blog.udn.com/nieh234/5788440
偷盜一張圖,這個人是我弟,其中演了一小段只有一個人的戲。



這是一場非常特殊有趣的表演。這齣劇今年是第三次表演,第一次是2009年。當時距離中法戰爭(現在好像都改稱清法戰爭)125周年,不知道是誰發起,要來演一齣淡水的劇,當時獲得淡水鎮公所的大力支持,由幾個在淡水的藝術團體負責規劃,演員主要都是淡水居民。

演出的地點就在當年中法戰爭的發生地點,現在的滬尾砲台公園,露天演出。利用現成的地形當作演出的舞台。不只是單純的演出歷史,而是把當時的民情,影響到後來淡水的文化都融合進去。

譬如當時根據老一輩的傳說,會打贏是因為淡水有清水祖師爺、馬祖 等等神明的幫忙,當時的林投樹林造成法軍無法集中火力。最後戰役結束之後,淡水人為了祭拜亡靈,也安撫遠渡重洋卻戰死沙場的法軍,每年的8/20都會在門口擺上飯菜,俗稱"拜門口",當時看到神明與天兵天將出場的時候,我都快哭了。

 之前兩年都是由淡水鎮公所主辦,今年新北市府大力支持,讓整齣劇更加的精緻與完善。觀眾也越來越多,演員年紀從7歲到77歲都有。也因為有大量的淡水素人演員,讓許多的淡水居民為了看自己的家人表演而來,在現場還聽到有小朋友很興奮的說"前面那一個是阿罵"。

真的是令人很感動的表演。












Friday, November 04, 2011

[讀書心得] 時間旋渦 四顆星-值得一看


這本書是上禮拜就看完的,不過上禮拜要來寫讀書心得的時候,電腦當機了,所以我就拖到今天才寫。

時間漩渦這是時間迴旋三部曲的最終回(三本都算是獨立的故事,只是繼承了同樣的時空背景)。

作者真的是一個非常會講故事的作家,雖然開頭讓我覺得有一點點悶~~但是到了1/3之後,開始了整個冒險。讓我迫不及待的想要知道接下來的情節,接下來的冒險。

這一本解釋了假想智慧生物的來源、目的,將三部曲做個完整的結束,在整個假想智慧生物的故事設定及敘事方法上相當的成功。。

但這本美中不足的地方就是最後的結局啦~我個人覺得寫到一個段落就好了,本書的最後一段對我個人來說,覺得有點畫蛇添足的感覺,真是太可惜啦。

所以列為四顆星  值得一看 不過如果沒看過前兩集 不建議看這一本。

Sunday, September 25, 2011

[讀書心得]怒月 (五顆星-非常推薦)


 這本小說是一本爽度很高的小說。在介紹這本小說之前先來談談作者 海萊因。在台灣的科幻小說出版界,把三個人並稱為科幻小說三巨頭,創造機器人三定律的艾西莫夫,科幻預言都成真,寫了[2001 太空漫遊] 的克拉克,以及我個人最喜歡的海萊因

他的小說有翻譯成中文的,我有買的有四本 怒月4=71、絕版的銀河公民以及滾石家族遊太空。全部都很讚,有空慢慢介紹。為什麼說他的小說我很喜歡,主要是因為他跟另外兩位的硬科幻比起來,他主要著重於人性,情感的描述。

怒月這部小說主要劇情就是月球是地球的附屬,一直被剝削,所以決定開始訪抗。小說中教你想要反抗高壓統治政權,應該要如何反抗、如何祕密活動、行動該注意什麼樣的原則、組織要如何建立,才不會被滲透、最終該如何推翻政府等等,整個就是教你怎麼篡位起義阿。

引述一下書商的介紹

" 2075年,月球從地球流放犯的監獄,變成了供應地球資源的巨大工 廠,月亮被居住其上的人類稱為「露娜」(Luna)。但這群露娜居民卻過著嚴峻壓抑的生活,一切都是因為地球統治者無情地壓榨月球的水、冰塊、小麥、鋼 鐵……他們再也無法忍受。
但是,露娜人沒有武器、沒有戰艦,不缺武器的地球質量卻是月球的八十倍、人口是月球的三千六百倍!
這是一場沒有回頭路的戰役,月球看似貧瘠,但在造物賦予月球的太陽能量、重力環境裡,埋藏著戰勝地球的唯一方法,一旦這個祕密被揭露,月球就將從奴隸成為王者。"

這真的是一部爽度很高的小說,至於科幻的合理性,一直都不是海萊因小說的重點,他用的是科幻的背景,講一個有趣的故事。讓你從行動開始就一直與主角一起經歷一場精彩刺激的冒險。

另外要特別提到的是,這本小說的翻譯者是個對於推廣科幻小說非常努力的人,對於整個翻譯的要求很高,翻譯需要的不是照文字一個字一個字的翻,有些東西是文化的相異,如何翻譯得恰當,讓另外一個語言的讀者可以完全了解作者所鋪陳的梗。有在看南方公園中文版的人肯定能夠了解我說的意思。這位翻譯者真的做得很好,整部小說讀起來真的非常順暢,讚。

評等:五顆星-非常推薦

Saturday, August 27, 2011

[讀書心得]時間迴旋 - 六顆星-非看不可


剛開始寫讀書心得就把王牌拿出來,時間迴旋  是我看過最好看的一部科幻小說,到現在為止推薦給超過十個人看,甚至是平常不太看科幻小說的人看。一致的評價就是"只要開始看就停不下來"。

故事從三個小孩的友情開始,有一天他們遇到了人類世界上的大事,一瞬間所有的星星都不見了,在太空上的衛星一夕之間全部掉下來了。作者藉著這三個人所遇到的遭遇、三個人的特殊友情,描述整個世界的變化。

寫到這邊我就放棄了,我想不到辦法濃縮這部小說 ,就是好看,還沒看過的可以跟我借,這本小說我買了之後就一直在外流浪,借給我堂妹快半年,後來發現,我叔叔嬸嬸,我堂妹的同學們都被我堂妹推薦後都看了。


[讀書心得]網路殺神讀後感(有一點點雷)四顆星 -值得一看

花了大概一個禮拜的時間把網路殺神看完了。前半本的劇情如上一篇文章講的,一個死掉的人策劃了一場現實生活中絕對做得到也絕對無法阻止的連續殺人。讓我迫不及待地往下看想知道到底怎麼阻止這場災難。

作者的確沒有寫昏頭,不會真的認為只靠幾個Daemon就可以一路暢行無阻。因此,人的因素被導入。藉由人與 Daemon的合作,讓Daemon更為的完整。中間一場大高潮充分的表現了人與Daemon融合後的強,且讓資工背景的人感到大快人心 (咦?!請參考小說)。

結尾提出了非常有趣的構想,為了不影響大家閱讀的樂趣就不提了。

可惜的是作者畢竟不是專業寫手,在幾個主要劇情及高潮點,作者都寫得很不錯,但在堆砌腳色個性,完善整個故事情節的部分卻略嫌粗糙。

整體來說,對普羅大眾來說是一部值得一看的小說。

但如果你是資訊背景的~這就是一部六顆星必看不可的小說。

Monday, August 22, 2011

[讀書心得]Daemon 網路殺神(1/5讀後感)



前幾天到誠品閒晃的時候,看到一本很厚的小說,書名是"網路殺神" 。感覺就又是個把駭客神化的小說。正要跳過的時候,看到書皮上有一句話"請不要因為這本書的厚度而錯過他",心想這標語還蠻有創意的,就拿起來看了一下。赫然發現,寫中文序的推薦名人有CIH、XDite、Mr. Friday。這就讓我提起了對這本小說的興趣。

雖然我現在只看了大約1/5,但是對於書中的創意感到非常有趣。兇手利用各式各樣的Daemon,分散在網路上,根據網路上的新聞判斷是否達到啟動的條件。也就說,這些Daemon不啟動時,你根本不可能找到。而他啟動的時候,就是有人要被殺了。最有趣的是第1個Daemon的啟動條件是在網路上看到兇手的訃聞。

也就是說,兇手已經死了,而他也持續的在殺人。你抓不到兇手,也無法阻止他殺人。最吸引我的是,這本書中的手法全部都是現在,或是說幾年前的技術。也就是說,全部都是可行的。

目前給四顆星,不過得扣掉翻譯不佳,給三顆半好了。等看完再來評價。

Monday, September 13, 2010

Profiling tool

最近在找程式的效能問題,以前用了gprof,後來用valgrind都不好用

後來找到一套oprofile




http://oprofile.sourceforge.net/news/
相當好用阿 大推

Tuesday, April 13, 2010

OGRE 初體驗 - 暫停出刊

哈哈,這真的是一段冒險的故事,就在我安裝完後,範例也可以跑了的時候。

決定換個東西啦~

這就叫作計畫永遠趕不上變化,變化永遠趕不上老闆的一句話阿。

接下來應該是一段與ActionScript一起努力的故事了吧。

不過ActionScript用的人很多,就沒必要特別說明啦,到是PushButtom這一個第三方的函式庫

可以幫助撰寫遊戲,正在試用中,如果有心得的話會再寫介紹的。

Wednesday, March 31, 2010

OGRE 初體驗 - 安裝及範例

我只能說,這真的是一段愛與冒險的故事阿~

安裝準備:

Visual Studio 2008 sp1 =>Evil M$
OGRE SDK vc9_v1-7-0 => http://www.ogre3d.org
下載prebuild SDK

安裝步驟:
1. 安裝Visual Studio 2008 sp1
2. 解開OGRE SDK 後 會產生一資料夾 放置到個人覺得開心的地方。
3. 設定Environment Variable "OGRE_HOME" 到剛剛的位置。

開始使用
1. 編譯sample code
2. 編譯tutorial

待續 ....

OGRE 初體驗 - 前言

現在正在嘗試著使用OGRE來開發遊戲,由於OGRE本身是一組3D繪圖函式庫,因此官方在遊戲開發方面的文件相較於專門做遊戲引擎的工具來說,非常的少,順便藉著這一系列文章做一個紀錄,記錄整個流程,以及把文件做一整理。

Sunday, June 14, 2009

天阿,上一篇文章已經是半年前了

這半年真的是摸啥壞啥,連機車都 一起壞,馬的。

生活慢慢的上了軌道,有重要的努力目標。

雖然工作效率還是不夠好,但是至少慢慢的增加。

希望接下來可以飛快的恢復以前的工作效率 !

衝阿!