我在写一个用于批量处理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