- Words Separating
有看過筆者[C/C++] Word Separating都知道文字處理如果要完全自行實做,那將會是...(嘔吐到死),在之前文章裡我刻意不用strtok()函式來自行實做單字分離,並且使用了linked-list型態以及相關的排序來完成,所以整體在撰寫上自然就有一定的複雜度存在。如果同樣的問題交給Perl來寫又會是怎樣的情形,程式碼如下:
Download:sepWord.pl
不要懷疑,程式碼就只有這樣,不到30行的Perl相當於上次寫了200多行的C,執行效率如何我們來測試一下。
### Perl : sepWord.pl ###
#time ./sepWord.pl text PLspText 0
real 0m0.018s
user 0m0.008s
sys 0m0.004s
### C: sepWord ###
#time ./sepWord text CspText 0
real 0m0.004s
user 0m0.000s
sys 0m0.004s
在粗略的測試比較之下,這一類的程式比較結果是C語言比Perl快四倍,實際的效能差距僅供參考,因為這兩個語言筆者我並未對他們做最佳化,例如C語言的排序部份,編譯最佳化以及Perl的正規表示法部份都未用到最佳的狀態,但唯一可以確定的是,對一般的程式設計師而言,同樣的功能程式,用C可以換取較好的效能,用Perl可以減少較多的開發時間,究竟哪一個好,各取所需啦!
No comments:
Post a Comment