---
title: 记录Event时间戳
description: "在Event的创建与销毁章节中创建的Event可用于统计Stream上计算任务的耗时，代码示例如下。该示例仅用于说明Event使用方法，不可以直接拷贝编译运行。完整样例代码请参见Link(https://gitcode.com/cann/runtime/tree/9.0.0/example/event/1_event_timestamp)。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/programug/acldevg/runtime_doc_dev_0023.html
sourcePath: /source/zh/canncommercial/900/programug/acldevg/runtime_doc_dev_0023.html
indexId: 7b0f9426f63797e2707eee7b70d5a6fd6c16b009faaa7ed1cea66209c5fbe85c73
---
# 记录Event时间戳

在Event的创建与销毁章节中创建的Event可用于统计Stream上计算任务的耗时，代码示例如下。该示例仅用于说明Event使用方法，不可以直接拷贝编译运行。完整样例代码请参见Link(https://gitcode.com/cann/runtime/tree/9.0.0/example/event/1_event_timestamp)。

```
uint64_t time = 0;
float useTime = 0;

// 创建Stream
aclrtStream stream;
aclrtCreateStream(&stream);

aclrtEvent startEvent;
aclrtEvent endEvent;
// 创建Event，接口传入ACL_EVENT_TIME_LINE参数，表示创建的Event用于记录
aclrtCreateEventExWithFlag(&startEvent, ACL_EVENT_TIME_LINE);
aclrtCreateEventExWithFlag(&endEvent, ACL_EVENT_TIME_LINE);

// 插入startEvent
aclrtRecordEvent(startEvent, stream);
// 在Stream中下发计算任务
kernel<<< grid, block, 0, stream>>>(...);
// 插入endEvent
aclrtRecordEvent(endEvent, stream);
aclrtSynchronizeStream(stream);

// 获取时间戳并计算耗时
aclrtEventElapsedTime(&useTime, startEvent, endEvent);
```
