# time-interval-calculate **Repository Path**: matchrom/time-interval-calculate ## Basic Information - **Project Name**: time-interval-calculate - **Description**: 通过双向链表实现了可嵌套的运行时长测量功能。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-12-31 - **Last Updated**: 2024-01-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 双向链表实现的时长测量代码 ## 功能简介   采用双向链表实现了可任意嵌套的时长测量代码,可输出时长单位有us和ms。 ## 使用方法   使用前先定义一个时长测量的节点指针,传入时长测量初始化函数中,指向在堆中分配的内存空间。在时长测量开始处执行时长测量开始函数,在结束处执行时长测量结束函数。在任意处读取该测量节点测得的时间间隔,并释放所占用的内存空间。   不同的时长测量实例采用节点ID区分,节点ID应大于等于0,在代码中会判断ID的值,并且要保证现存的实例中不存在相同ID。   输出时间单位可选微秒或毫秒,在时长计算函数中传入TIME_US或TIME_MS确定。 ## 注意事项   那么该代码的可重入性由C库的内存分配函数的可重入性决定,是否线程安全由链表表头指针是全局变量还是局部变量决定。如果使用的C库函数是可重入的,而且时长测量代码使用位于函数栈内的表头指针的话,则该时长测量代码是可重入的并且线程安全的。   不建议在中断服务程序中使用该代码。   建议在需要使用该代码的函数内部定义表头指针并初始化。   如果使用RTOS的话,应在使用该代码的线程内分别定义表头指针并初始化。   因为链表存储在堆中,活动的时长测量实例个数受堆内存大小的限制。