For AI agents: the complete documentation index is available at /next/zh/llms.txt, the full documentation bundle is available at /next/zh/llms-full.txt, and this page is available as Markdown at /next/zh/api/lynx-native-api/trace-event.md.
Lynx
  • 简体中文
  • TraceEvent

    TraceEvent 是 Lynx 提供的性能埋点工具类。开发者可以通过 TraceEvent 在客户端代码中灵活埋点,记录关键函数、任务、渲染流程等的执行时序和耗时。

    Android

    beginSection

    标记一个 trace event 的开始。

    public static void beginSection(String category, String name)
    public static void beginSection(String category, String name, Map<String, String> args)

    参数说明

    category

    trace event 的类别

    name

    trace event 的名称。

    args (可选)

    自定义的 trace event 参数。

    示例

    TraceEvent.beginSection("render", "measure-layout");
    // ... your code ...
    TraceEvent.endSection("render", "measure-layout");
    
    // 添加自定义参数
    Map<String, String> args = new HashMap();
    args.put("component", "Image");
    args.put("size", "large");
    TraceEvent.beginSection("render", "draw-image", args);
    // ... your code ...
    TraceEvent.endSection("render", "draw-image");

    endSection

    标记一个 trace event 的结束。

    public static void endSection(String category, String name)

    参数说明

    category

    trace event 的类别

    name

    trace event 的名称。

    示例

    TraceEvent.beginSection("logic", "parse-data");
    // ... your code ...
    TraceEvent.endSection("logic", "parse-data");

    instant

    标记一个即时(没有持续时间) trace event。

    public static void instant(String category, String name)
    public static void instant(String category, String name, Map<String, String> args)

    参数说明

    category

    trace event 的类别

    name

    trace event 的名称。

    args (可选)

    自定义的 trace event 参数。

    示例

    TraceEvent.instant("network", "request-started");
    
    // 添加自定义参数
    Map<String, String> args = new HashMap<>();
    args.put("url", "https://example.com");
    args.put("method", "GET");
    TraceEvent.instant("network", "request-finished", args);

    iOS

    beginSection

    标记一个 trace event 的开始。

    + (void)beginSection:(NSString *)category withName:(NSString *)name
    + (void)beginSection:(NSString *)category withName:(NSString *)name debugInfo:(NSDictionary *)args

    参数说明

    category

    trace event 的类别

    name

    trace event 的名称。

    args (可选)

    自定义的 trace event 参数。

    示例

    [LynxTraceEvent beginSection:@"render" withName:@"measure-layout"];
    // ... your code ...
    [LynxTraceEvent endSection:@"render" withName:@"measure-layout"];
    
    // 添加自定义参数
    [LynxTraceEvent beginSection:@"render" withName:@"draw-image" debugInfo:@{@"component": @"Image", @"size": @"large"}];
    // ... your code ...
    [LynxTraceEvent endSection:@"render" withName:@"draw-image"];

    endSection

    标记一个 trace event 的结束。

    + (void)endSection:(NSString *)category withName:(NSString *)name

    参数说明

    category

    trace event 的类别

    name

    trace event 的名称。

    示例

    [LynxTraceEvent beginSection:@"logic" withName:@"parse-data"];
    // ... your code ...
    [LynxTraceEvent endSection:@"logic" withName:@"parse-data"];

    instant()

    标记一个即时(没有持续时间) trace event。

    + (void)instant:(NSString *)category withName:(NSString *)name
    + (void)instant:(NSString *)category withName:(NSString *)name debugInfo:(NSDictionary *)args

    参数说明

    category

    trace event 的类别

    name

    trace event 的名称。

    args (可选)

    自定义的 trace event 参数。

    示例

    [LynxTraceEvent instant:@"network" withName:@"request-started"];
    
    // 添加自定义参数
    [LynxTraceEvent instant:@"network" withName:@"request-finished" debugInfo:@{@"url": @"https://example.com", @"method": @"GET"}];

    Harmony

    beginSection

    标记一个 trace event 的开始。

    static void beginSection(traceCategory: TraceCategory, name: string, args?: Record<string, string>)

    参数说明

    category

    trace event 的类别

    export enum TraceCategory {
      Lynx = 'lynx',
      Vitals = 'vitals',
      Other = 'other'
    }
    name

    trace event 的名称。

    args (可选)

    自定义的 trace event 参数。

    示例

    TraceEvent.beginSection(TraceCategory.Other, "measure-layout");
    // ... 你的代码 ...
    TraceEvent.endSection(TraceCategory.Other, "measure-layout");
    
    // 带自定义参数
    const args: Record<string, string> = {
      "src": "https://example.com",
      "size": "large"
    }
    TraceEvent.beginSection(TraceCategory.Other, "draw-image", args);
    // ... 你的代码 ...
    TraceEvent.endSection(TraceCategory.Other, "draw-image");

    endSection

    标记一个 trace event 的结束。

    static void endSection(traceCategory: TraceCategory, name: string)

    参数说明

    category

    trace event 的类别

    name

    trace event 的名称。

    示例

    TraceEvent.beginSection(TraceCategory.Other, "parse-data");
    // ... 你的代码 ...
    TraceEvent.endSection(TraceCategory.Other, "parse-data");

    instant

    标记一个即时(没有持续时间) trace event。

    static instant(traceCategory: TraceCategory, name: string, args?: Record<string, string>)

    参数说明

    category

    trace event 的类别

    name

    trace event 的名称。

    args (可选)

    自定义的 trace event 参数。

    示例

    TraceEvent.instant(TraceCategory.Other, "request-started");
    
    // 带自定义参数
    const args: Record<string, string> = {
      "url": "https://example.com",
      "method": "GET"
    }
    TraceEvent.instant(TraceCategory.Other, "request-finished", args);

    Desktop (C API)

    Desktop public embedder API 通过 C API 宏暴露 trace 辅助能力。

    beginSection

    标记 trace section 的开始。需要使用相同的 category 和 name 与 LYNX_CAPI_TRACE_END 成对调用。

    LYNX_CAPI_TRACE_BEGIN(category, name);

    endSection

    标记 trace section 的结束。

    LYNX_CAPI_TRACE_END(category, name);

    instant

    记录即时 trace event。

    LYNX_CAPI_TRACE_INSTANT(category, name);

    counter

    记录 counter trace event。

    LYNX_CAPI_TRACE_COUNTER(category, name, value, incremental);

    示例

    void DecodeImage() {
      LYNX_CAPI_TRACE_BEGIN("image", "DecodeImage");
      // ... 你的代码 ...
      LYNX_CAPI_TRACE_END("image", "DecodeImage");
    }
    
    LYNX_CAPI_TRACE_INSTANT("network", "RequestStarted");
    LYNX_CAPI_TRACE_COUNTER("cache", "EntryCount", 42, false);

    兼容性

    LCD tables only load in the browser

    除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。