星期四, 2月 15, 2007

程式開發重點

如果想要程式開發快速,勢必要減少重複,像小黃書(Ruby on Rails)所說

別反複作同樣的事

以及

《重構》— 改善既有程式的設計 —

如何重構既有系統的步驟系統化地加以整理和描述

可重覆使用的funtion整理與精簡到一定的極致其實也是一種藝術

別一昧的重覆

改變觀念才有大幅度的成長

星期二, 2月 13, 2007

釋放記憶體

釋放記憶體
我在 Windows 下做過的一件最傻的事情莫過於"釋放記憶體"了。
有一天我看到一個 Windows 程式說:"這個程式可以幫你把大量記憶體釋放出來給一個很大的程式用。

"我試了一下,居然一下把我的 64M 記憶體釋放出來 48M!我高興極了。

現在想一想,那是多麼傻的事情,那麼多的記憶體留著幹什麼?不用白不用啊!一作業系統,居然還需要別人寫的程式來釋放記憶體,那是什麼樣的作業系統?

在 Linux 下用 free 命令,你會發現你的記憶體幾乎每時每刻都快要被用完。
那是因為 Linux 把大部分記憶體用來作為磁片緩衝了。Linux 有比 Windows 先進的磁片緩衝技術。
你有沒有發現你往硬盤寫數據的時候,很快就完成了?

那是因為 Linux在記憶體裏有很多磁片緩衝區,你要寫到硬盤上的數據先被寫到了這些記憶體裏,然後 Linux 就告訴你"拷貝完成",當你馬上又想刪除剛才寫入的某些數據時,Linux 只是把數據從記憶體裏移除,然後報告"刪除完成".在一定的間隔時間後,Linux 才把數據寫回硬盤,這樣不但高效,避免了多次硬盤操作

而且減少了文件的不連續,也就是減少了"碎片".Windows 當然也有磁片緩衝,但是由於它記憶體管理的低效率,它不敢把大量記憶體都用來作為磁片緩衝,因為它沒有能力在用的時候隨時把記憶體收回來。

LINUX的搜尋筆記

找檔的指令

which (尋找『執行檔』)
whereis (尋找特定檔案)
locate
find

延伸閱讀
whereis可以用updatedb 來更新資料庫檔案


http://linux.vbird.org/linux_basic/0220filemanager.php#which