|
01 21 |
|
有天在看Linux系統程式設計時,翻到其中一頁關於linux2.6引進的epoll事件輪詢界面,在好奇心的驅使下,就想動手寫程式跑跑看epoll,select和poll到底那個效能比較好
而我測試的方法是利用這三個API寫一個小的web server,再用Apache Benchmark測試,並以測試的結果比較這三個效能的優劣,我下的apache benchmark指令為” ab -c 50 -n 500 http://192.168.15.25:5050/” ,結果請見如下
|
01 14 |
|
[2009.11.2]嚴重錯誤,kernel會自動poll driver是否有data給使用者,所以poll_wait函式會一直被呼叫,所以char driver只需註冊poll,open,release即可達到user space select的所有功能
前幾天跟同事討論到RTCP的事情時,突然腦中閃過一個想法,記得4年前有寫過一個小程式,可以定時把kernel的statics丟到user space, user space的program只用了select和read函式把資料讀出來並顯示在UI上,那時我以為poll_wait函式可以hang住user space process讓user space的程式可以等待kernel有資料時再讀出來,不過今天寫了一小段code發現自己觀念是錯的
|
01 13 |
|
前一陣子在玩效能評析工具時很意外的發現了這個好東西,一般偵測memory leak的工具都以連結特定library並以其攔截malloc或free,找出memory leaking的bug,或者是像valgrind針對單一的process動態偵測memory leaking的point,但是,有沒有一個tool,可以偵測系統上所有process 的memory consumption,並即時回報?當你系統有上百隻別人寫的程式,要如何快速的找出那隻程式亂幹記憶體?很感謝pidstat,它幫我解決上面提到的疑惑
Pidstat可在這個網站下載,它是sysstat這組系統工具中的其中一隻,sysstat還包含sar,sardc...等其它好用的東東,不過我這邊只專門介紹pidstat的用法,pidstat可下的command如下
|
10 13 |
|
最近假日真多,連續破了好幾個遊戲,如”鬼屋魔影5”,”末日之戰-彈頭”…等,不過發現近視度數好像加深了,看東西都糊糊的,不過這樣也好,年紀大時老花眼不會這麼快來
話說這一陣子都在玩SIP的東東,也成功的把PJSIP porting在有DSP的板子上運作(板子上的DSP可以直接編解碼RTP,所以我修改PJSIP以便攔截RTP),而藉著PJSIP強大的函式庫,我的程式除了硬體控制的部份外,其它SIP控制的部份零零總總加起來可能連100行都不到,由此可見PJSIP封裝的能力,但難能可貴的是以下幾點
1.它實在很好移植-好像有網友已經把PJSIP擺在PSP上了
2.明確的程式架構-PJSIP的架構讓讀它的人很爽
3.詳細的說明文件-就是這點贏過oSIP,Sofia SIP…等
|
09 22 |
|
實在不曉得為什麼下這樣的標題,可能最近武俠小說看太多了,不過在講這個主題前,請大家一定要支持”海角七號”這部電影,真得很好看,令人好笑又感動,我打算有機會再安排個墾丁之旅,好好把當時的電影場景再逛一遍
回歸正題,LIST這個資料結構不難懂,只要把買電影票要排隊的那套邏輯拿來好好想一想,就知道LIST是做什麼用的,LIST可以說是QUEUE和STACK的原型,雖然只支援sequential access,但如果善用排序和搜尋,它存取資料的速度其實非常快,之前寫LIST的資料結構,都是用C++的STL,後來最近發現一個純C寫的Library “simclist”,它這支library使用上也蠻簡單的,支援類iterator的方式存取list,所以我把C++ STL和simclist拿出來比較看看,從記憶體,效能,和排序時間看看它們的優點
|
09 04 |
|
之前處理XML文件時,就是用這套工具橫行江湖,Expat提供細緻的函式讀寫xml文件,SCEW則是把Expat函式包裝成亮麗的界面供使用者更方便的存取xml,個人覺的,這兩套函式庫實在不輸給.net System.xml下的API
首先下載expat library和scew library,這兩套軟體的使用方式很簡單,執行configure,make,make install後,就可以使用它們的library,而我這邊的範例編譯時用static link,所以我都直接連接它們的.a函式庫檔
Makefile的範例如下
|
08 29 |
|
|
08 21 |
|
網路上有一堆介紹如何使用它的文章,所以我這邊就不重覆了,而我這篇主要的目的是為了記錄在設定CentOS-Base.repo時碰到的問題,第一個碰到的問題是如何找到國內有提供yum update的站台,第二個問題是如果公司有設防火牆擋部份http通訊,該如何處理
在眾多介紹yum的文章中,我挑選了ftp2.tnc.edu.tw,這是國內少數有提供yum update service並且也還存活的站臺,當然,除了http之外,它也提供ftp傳輸的功能,所以我的CentOS-Base.repo檔的內容就可寫成如下

