DEV Community

Alex Martinez
Alex Martinez

Posted on • Edited on

5

Using time() and duration() in DataWeave for performance check

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())
Enter fullscreen mode Exit fullscreen mode

Output:

{
  "time": 0,
  "result": 6
}
Enter fullscreen mode Exit fullscreen mode

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())
Enter fullscreen mode Exit fullscreen mode

Output:

{
  "start": "2023-03-21T16:00:21.487377Z",
  "result": 6,
  "end": "2023-03-21T16:00:21.487408Z"
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Output:

"PT0.000024S"
Enter fullscreen mode Exit fullscreen mode

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs