测量函数执行时间是性能分析和优化的基础操作,不同编程语言和场景下有多种实现方式。以下是全面的技术方案:
一、基础概念
二、主流实现方式
import time
start = time.perf_counter() # 推荐使用perf_counter而非time.time()
# 被测函数
result = your_function()
end = time.perf_counter()
print(f"耗时: {(end - start)*1000:.2f}ms")
C++示例(纳秒级精度):
#include <chrono>
auto start = std::chrono::high_resolution_clock::now();
// 被测代码
auto end = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
std::cout << "耗时: " << duration.count() << "μs" << std::endl;
performance.now()
APItime
命令三、最佳实践建议
const times = 1000;
console.time('benchmark');
for(let i=0; i<times; i++) {
targetFunction();
}
console.timeEnd('benchmark'); // 输出平均时间需除以times
四、高级场景方案
var m1, m2 runtime.MemStats
runtime.ReadMemStats(&m1)
functionUnderTest()
runtime.ReadMemStats(&m2)
fmt.Printf("内存消耗: %d bytes", m2.Alloc - m1.Alloc)
五、常见问题排查
top
命令)strace
跟踪系统调用选择方案优先级建议:语言原生API > 专业分析工具 > 自定义实现。对于生产环境,推荐结合APM系统进行全链路监控。
没有搜到相关的文章