在将现有批处理过程从Java转换为Groovy时,我遇到了一些相当重要的性能问题。用Java编写的现有批处理过程定期从不同数据源读取数据并执行某些数据转换。已经发现的是,在将10+代码转换为Groovy之后,出现了严重的性能下降,并且出现了出乎意料的高间隔。
中的代码是一个简化的示例,它展示了使用集合闭包进行简单循环和筛选时发现的问题之一。它被设置为Maven项目,可以很容易地在本地复制并执行。
下面是Groovy代码的亮点:
List items = (0..length).collect()
List even = items.findAll { item -> it