You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ballerina中测量函数执行耗时及获取毫秒级时间戳

在Ballerina中获取毫秒级时间戳并计算函数执行耗时

获取绝对时间的毫秒级时间戳

Ballerina的time模块没有直接返回毫秒时间戳的API,但可以通过time:utcNow()或time:localNow()返回的time:Time结构体,结合秒数和纳秒数计算出毫秒级时间戳:

import ballerina/time;
import ballerina/io;

public function main() {
    // 获取UTC时间的毫秒戳
    time:Time utcTime = time:utcNow();
    int64 utcMillis = utcTime.seconds * 1000 + utcTime.nanos / 1_000_000;
    io:println("UTC毫秒时间戳: ", utcMillis);

    // 获取本地时间的毫秒戳
    time:Time localTime = time:localNow();
    int64 localMillis = localTime.seconds * 1000 + localTime.nanos / 1_000_000;
    io:println("本地毫秒时间戳: ", localMillis);
}

计算函数执行耗时(推荐用单调时钟)

如果只是为了统计函数执行耗时,更推荐使用单调时钟,它不受系统时间调整(如NTP同步)的影响,计算结果更准确:

import ballerina/time;
import ballerina/io;

public function main() {
    // 记录执行开始的单调时间
    time:Duration start = time:monotonicNow();

    // 调用需要统计耗时的函数
    yourTargetFunction();

    // 记录执行结束的单调时间
    time:Duration end = time:monotonicNow();

    // 计算并输出耗时(毫秒)
    int64 elapsedMillis = time:durationToMillis(time:subtractDurations(end, start));
    io:println("函数执行耗时: ", elapsedMillis, " ms");
}

// 示例目标函数
function yourTargetFunction() {
    // 模拟业务逻辑,休眠300毫秒
    time:sleep(300);
}

内容的提问来源于stack exchange,提问作者Kavindu Gimhan Zoysa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:45:23