Using time() and duration() in DataWeave for performance check
Alex Martinez
Posted on March 21, 2023
You can use duration()
to get the total number of milliseconds it took to execute a function.
Script:
%dw 2.0
output application/json
import duration from dw::util::Timer
fun myFunc() = [1, 2, 3] reduce $+$$
---
duration(() -> myFunc())
Output:
{
"time": 0,
"result": 6
}
You can use time()
to get an even more detailed result of when the function started and ended. This will give you more insight into the total time it took to execute.
Script:
%dw 2.0
output application/json
import time from dw::util::Timer
fun myFunc() = [1, 2, 3] reduce $+$$
---
time(() -> myFunc())
Output:
{
"start": "2023-03-21T16:00:21.487377Z",
"result": 6,
"end": "2023-03-21T16:00:21.487408Z"
}
This way you can use -
to get the total number of time.
Script:
%dw 2.0
output application/json
import time from dw::util::Timer
fun myFunc() = [1, 2, 3] reduce $+$$
var funcResult = time(() -> myFunc())
---
funcResult.end - funcResult.start
Output:
"PT0.000024S"
💖 💪 🙅 🚩
Alex Martinez
Posted on March 21, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.