我要求迭代近百万条记录。当前代码是使用过滤器和排序逻辑在Dataweave中编写的。但是,我看到了性能问题。我正在考虑使用Java组件将此DataWeave逻辑转换为Java,并查看是否可以提高性能。
如何提高代码的性能?
如果您使用Global functions
或使用'p()' functions
,数据编织会有一些性能问题。如果您在dwl中有任何此类功能,请避免使用它。
由于您正在处理大量记录,如果记录相同,您可以使用scatter-gather
模式并利用记录的异步处理。您可以通过配置执行转换/过滤逻辑的线程池来进一步调整性能。
为了实现分散聚集模式,您可以参考此link。您在数据编织中实现的订单逻辑可以移动到自定义聚合器,您可以根据自定义逻辑对记录重新排序
如果没有任何帮助,请考虑在自定义Java组件中使用Java8 Streams API来过滤和排序记录。