添加性能分析工具模块,包括时间测量、内存分析和性能统计功能 添加测试文件和示例配置,完善性能分析工具的使用场景 在工具模块中实现单例装饰器并导出到__init__.py
82 lines
1.7 KiB
Python
82 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
简单的性能分析功能测试脚本
|
|
"""
|
|
|
|
import asyncio
|
|
import time
|
|
from core.utils.performance import (
|
|
timeit,
|
|
profile,
|
|
aprofile,
|
|
PerformanceStats,
|
|
performance_stats
|
|
)
|
|
|
|
|
|
print("=" * 80)
|
|
print("性能分析功能测试")
|
|
print("=" * 80)
|
|
|
|
# 重置全局性能统计
|
|
performance_stats.reset()
|
|
|
|
# 测试1: 同步函数的时间测量
|
|
@timeit
|
|
def sync_test():
|
|
"""同步测试函数"""
|
|
time.sleep(0.1)
|
|
return "sync done"
|
|
|
|
# 测试2: 异步函数的时间测量
|
|
@timeit
|
|
async def async_test():
|
|
"""异步测试函数"""
|
|
await asyncio.sleep(0.1)
|
|
return "async done"
|
|
|
|
# 异步主函数
|
|
async def main():
|
|
# 同步函数测试
|
|
print("执行同步函数...")
|
|
sync_result = sync_test()
|
|
print(f"同步函数结果: {sync_result}")
|
|
|
|
# 异步函数测试
|
|
print("\n执行异步函数...")
|
|
async_result = await async_test()
|
|
print(f"异步函数结果: {async_result}")
|
|
|
|
# 测试3: 详细性能分析
|
|
print("\n2. 测试性能分析上下文管理器:")
|
|
print("=" * 80)
|
|
|
|
with profile(enabled=False): # 禁用实际分析以避免输出太多
|
|
time.sleep(0.05)
|
|
print("性能分析上下文管理器测试完成")
|
|
|
|
# 测试4: 性能统计报告
|
|
print("\n3. 测试性能统计报告:")
|
|
print("=" * 80)
|
|
|
|
# 执行多次函数调用
|
|
for i in range(3):
|
|
sync_test()
|
|
await async_test()
|
|
|
|
# 生成并打印性能报告
|
|
print("\n性能统计报告:")
|
|
print(performance_stats.report())
|
|
|
|
|
|
# 执行测试
|
|
print("\n1. 测试时间测量装饰器:")
|
|
print("=" * 80)
|
|
|
|
# 使用 asyncio.run() 执行异步主函数
|
|
asyncio.run(main())
|
|
|
|
print("\n" + "=" * 80)
|
|
print("所有测试完成!")
|
|
print("=" * 80)
|