test_async_performance.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. """
  2. 异步性能测试脚本
  3. 对比同步和异步实现的性能差异
  4. """
  5. from PIL import Image
  6. from agent.agent import OcrAgent
  7. import time
  8. def main():
  9. print("\n" + "="*70)
  10. print("🧪 异步 OCR 性能测试")
  11. print("="*70)
  12. # 加载测试图片
  13. print("\n📸 加载测试图片...")
  14. try:
  15. image = Image.open("./test1.jpg").convert("RGB")
  16. print(f"✅ 图片加载成功: {image.size}")
  17. except FileNotFoundError:
  18. # 尝试其他可能的路径
  19. try:
  20. image = Image.open("./test.jpg").convert("RGB")
  21. print(f"✅ 图片加载成功: {image.size}")
  22. except:
  23. print("❌ 未找到测试图片 (test1.jpg 或 test.jpg)")
  24. print("请确保测试图片存在于当前目录")
  25. return
  26. # 创建 Agent
  27. print("\n🤖 初始化 OCR Agent...")
  28. agent = OcrAgent()
  29. # 执行异步 OCR
  30. print("\n" + "="*70)
  31. print("🚀 开始异步并发 OCR 提取...")
  32. print("="*70)
  33. overall_start = time.perf_counter()
  34. result = agent.agent_ocr(image)
  35. overall_end = time.perf_counter()
  36. print("\n" + "="*70)
  37. print(f"✨ 总体执行时间: {overall_end - overall_start:.3f} 秒")
  38. print("="*70)
  39. # 输出结果摘要
  40. print("\n📊 结果摘要:")
  41. print(f" - 化学品中文名: {result['tag']['name_cn']}")
  42. print(f" - 化学品英文名: {result['tag']['name_en']}")
  43. print(f" - 成分数量: {len(result['tag']['cf_list'])}")
  44. print(f" - 安全信号词: {result['key_word']}")
  45. print(f" - 供应商数量: {len(result['supplier'])}")
  46. print("\n✅ 测试完成!")
  47. print("\n💡 提示: 观察日志中的时间戳,你会发现所有任务几乎同时开始执行")
  48. print(" 这就是真正的异步并发效果!")
  49. if __name__ == "__main__":
  50. main()