我在寫一個用於批量處理excel文件的程序。每行的數據都放入一個映射中,並且文件名和sheetname確定處理提取的數據的腳本。這些腳本沒有捆綁到我的程序中,它們甚至沒有實現特定接口的類。用緩存提升批量Groovy eval()
這是處理循環邏輯:
excelfile.eachLineOnSheet { line, sheet ->
def data = extractData();
def lineprocessorscript = determineLineProcessor(excelfile, sheet);
Eval.xy data, outputfile, lineprocessorscript
}
當然,這很容易,但對大文件,我想提高性能。首先我緩存了行處理器的代碼,這樣.groovy文件只能讀取一次。
是否有可能通過以某種方式緩存編譯的腳本來使Eval.xy更快? 我想保持我的腳本簡單,以便不要實現任何接口或東西。
這真是太棒了!雖然你不喜歡腳本實現任何特定的接口,但我建議將綁定變量(現在有機會)重命名爲比'x'和'y'更有意義的東西。這將有助於將來維護腳本文件,恕我直言。 – 2011-05-20 18:17:21
謝謝,我真的這樣做了,只是沒有在這裏發佈這個更改,以保持評論的Eval。xy線和新解決方案100%兼容:-) – jabal 2011-05-21 10:21:07