- 論壇徽章:
- 0
|
最近在弄一個(gè)SHELL,其功能是對(duì)INPUT的文件(CSV)進(jìn)行格式檢查,如空值檢查,格式檢查(如判斷日期,時(shí)間的格式是否合法)等.處理完畢后再將處理結(jié)果寫到日志中.
現(xiàn)在遇到一個(gè)問題,就是SHELL運(yùn)行效率非常低下,處理10000行的數(shù)據(jù),得花40多分鐘.不曉得大家有何招數(shù)提高效率?
對(duì)于這個(gè)SHELL,我覺得有幾個(gè)點(diǎn)可能會(huì)提高效率,但不曉得如何實(shí)現(xiàn):
1,此SHELL中涉及到一個(gè)配置文件,此文件定義了對(duì)哪些列作何種類型的CHECK,現(xiàn)在的程序是每讀一行INPUT的數(shù)據(jù),都要讀一次這個(gè)配置文件. 能否一次性的將此文件讀入內(nèi)存,以后直接從內(nèi)存里讀取?
2,此SHELL中寫日志時(shí),是發(fā)現(xiàn)一個(gè)問題寫一次日志. 我想問的是,能否將日志先緩存一下,待到積累到一定數(shù)量時(shí)才物理的寫磁盤?
3,此SHELL基本上是用純SHELL語法實(shí)現(xiàn)的,中間夾雜了一些AWK. 我想問的是,對(duì)于大文本數(shù)據(jù)的處理,用什么工具效率會(huì)比較高? |
|