mule - DataWeave 与 Java 性能
问题描述
我需要迭代近百万条记录。当前代码是用 Dataweave 编写的,带有过滤器和排序逻辑。但是,我看到了性能问题。我正在考虑使用 Java 组件将此 DataWeave 逻辑转换为 Java,并查看这是否会提高性能。
如何提高代码的性能?
解决方案
如果您正在使用Global functions
或使用'p()' functions
. 如果您的 dwl 中有任何此类功能,请避免使用它。
由于您正在处理大量记录,如果记录相同,您可以使用scatter-gather
模式并利用记录的异步处理。您可以通过配置执行转换/过滤逻辑的线程池来进一步调整性能。
对于分散聚集模式的实现,您可以参考此链接。您在数据编织中实现的订单逻辑可以移动到自定义聚合器,您可以根据自定义逻辑重新排序记录
如果没有任何帮助,请考虑在您的自定义 Java 组件中使用 Java8 Streams API 来过滤和排序记录。
推荐阅读
- php - 在 Libxml 中包装标签
- vba - 删除附件时如何过滤掉gif文件?
- database - 如何在我的“A”表中使用“B”表的 id 序列?
- node.js - 无法从正在运行的终端之外杀死 Mongodb 服务器
- javascript - 点击时的javascript可重复功能
- assembly - 看起来我在 MASM x86 中进行了无限循环!我想我需要一些帮助来了解到底发生了什么
- python - 带有 wxPython 的基于 OOP 的 GUI
- python - 通过同一个 websocket 连接发送和接收帧而不阻塞
- javascript - 使用 JavaScript 查找文本的边界
- karate - 空手道:匹配每个包含 URL 的 Json 数组失败