import time
from myTimer import measure_time

# 简单使用方式
@measure_time
def slow_function():
    """一个耗时的函数"""
    time.sleep(1.2)  # 模拟耗时操作
    return "操作完成"

# 带参数的使用方式
@measure_time(unit='ms', print_result=False)
def process_data(items):
    """处理数据的函数"""
    result = []
    for item in items:
        # 模拟处理每个项目需要一些时间
        time.sleep(0.1)
        result.append(item * 2)
    return result

# 递归函数使用示例
@measure_time
def fibonacci(n):
    """计算斐波那契数列第n项"""
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

def main():
    print("示例1: 基本用法")
    result = slow_function()
    print(f"函数返回: {result}\n")
    
    print("示例2: 获取运行时间")
    data = [1, 2, 3, 4, 5]
    result, time_taken = process_data(data)
    print(f"处理 {data} 的结果: {result}")
    print(f"处理耗时: {time_taken:.3f} 毫秒\n")
    
    print("示例3: 测量递归函数性能")
    n = 10
    fib_result = fibonacci(n)
    print(f"斐波那契数列第 {n} 项是: {fib_result}\n")
    
    print("示例4: 测量匿名函数")
    result = measure_time(lambda: sum(range(1000000)))()
    print(f"计算结果: {result}")

if __name__ == "__main__":
    main()