Makefile 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. # TsDB2 Makefile
  2. # 时序数据库构建、测试与开发工具
  3. .PHONY: all build test clean run help \
  4. test-full test-commit test-dirty test-integrity test-mem \
  5. demo-analyzer fmt lint deps tree
  6. # =============================================================================
  7. # 默认目标
  8. # =============================================================================
  9. all: build
  10. # =============================================================================
  11. # 构建
  12. # =============================================================================
  13. build:
  14. @echo "=== 构建 TsDB2 ==="
  15. go build ./...
  16. @echo "✅ 构建完成"
  17. # =============================================================================
  18. # 测试
  19. # =============================================================================
  20. # 运行所有核心测试
  21. test: test-full test-commit test-dirty test-integrity test-mem
  22. # 完整功能测试 (28 项测试)
  23. test-full:
  24. @echo ""
  25. @echo "=========================================="
  26. @echo " 完整功能测试 (28 项)"
  27. @echo "=========================================="
  28. cd demo/full_test && go run main.go
  29. # 自动提交机制测试 (5 场景)
  30. test-commit:
  31. @echo ""
  32. @echo "=========================================="
  33. @echo " 自动提交机制测试 (5 场景)"
  34. @echo "=========================================="
  35. cd demo/no_commit_test && go run main.go
  36. # 脏页阈值性能测试
  37. test-dirty:
  38. @echo ""
  39. @echo "=========================================="
  40. @echo " 脏页阈值性能对比测试"
  41. @echo "=========================================="
  42. cd demo/dirty_threshold_test && go run main.go
  43. # 数据完整性测试
  44. test-integrity:
  45. @echo ""
  46. @echo "=========================================="
  47. @echo " 数据完整性测试"
  48. @echo "=========================================="
  49. cd demo/integrity_test && go run main.go
  50. # 内存使用测试
  51. test-mem:
  52. @echo ""
  53. @echo "=========================================="
  54. @echo " 内存使用测试"
  55. @echo "=========================================="
  56. cd demo/mem_test && go run main.go
  57. # =============================================================================
  58. # Demo 程序
  59. # =============================================================================
  60. # 运行 Analyzer (数据库可视化工具)
  61. demo-analyzer:
  62. @echo "=== 启动 TsDB2 Analyzer ==="
  63. cd analyzer && go run main.go
  64. # =============================================================================
  65. # 开发工具
  66. # =============================================================================
  67. # 运行主程序
  68. run:
  69. @echo "=== 运行主程序 ==="
  70. go run main.go
  71. # 代码格式化
  72. fmt:
  73. @echo "=== 格式化代码 ==="
  74. go fmt ./...
  75. @echo "✅ 格式化完成"
  76. # 代码静态检查
  77. lint:
  78. @echo "=== 代码静态检查 ==="
  79. go vet ./...
  80. @echo "✅ 检查完成"
  81. # 依赖管理
  82. deps:
  83. @echo "=== 整理依赖 ==="
  84. go mod tidy
  85. @echo "=== 验证依赖 ==="
  86. go mod verify
  87. @echo "✅ 依赖检查完成"
  88. # 显示项目结构
  89. tree:
  90. @echo "=== TsDB2 项目结构 ==="
  91. @echo ""
  92. @echo "TsDB2/"
  93. @echo "├── DB/ # 数据库核心层"
  94. @echo "│ ├── core/ # 底层引擎 (页式存储、B+树、WAL)"
  95. @echo "│ ├── db.go # DB 层封装"
  96. @echo "│ ├── table.go # 泛型表操作"
  97. @echo "│ ├── query.go # 查询构建器"
  98. @echo "│ └── model.go # 模型解析"
  99. @echo "├── analyzer/ # 数据库可视化工具"
  100. @echo "├── demo/ # 测试程序"
  101. @echo "│ ├── full_test/ # 完整功能测试"
  102. @echo "│ ├── no_commit_test/ # 自动提交测试"
  103. @echo "│ ├── dirty_threshold_test/ # 脏页阈值测试"
  104. @echo "│ ├── integrity_test/ # 数据完整性测试"
  105. @echo "│ └── mem_test/ # 内存使用测试"
  106. @echo "├── docs/ # 文档"
  107. @echo "└── Makefile # 构建脚本"
  108. @echo ""
  109. # 清理临时文件
  110. clean:
  111. @echo "=== 清理临时文件 ==="
  112. @rm -f demo/*/*.db
  113. @rm -f *.db
  114. @rm -f demo/*/*.exe
  115. @echo "✅ 清理完成"
  116. # =============================================================================
  117. # 帮助信息
  118. # =============================================================================
  119. help:
  120. @echo "╔═══════════════════════════════════════════════════════════╗"
  121. @echo "║ TsDB2 Makefile 使用说明 ║"
  122. @echo "╚═══════════════════════════════════════════════════════════╝"
  123. @echo ""
  124. @echo "📦 构建与运行"
  125. @echo " make build - 构建整个项目"
  126. @echo " make run - 运行主程序"
  127. @echo " make clean - 清理临时文件 (.db, .exe)"
  128. @echo ""
  129. @echo "🧪 核心测试"
  130. @echo " make test - 运行所有核心测试 (推荐)"
  131. @echo " make test-full - 完整功能测试 (28 项)"
  132. @echo " make test-commit - 自动提交机制测试 (5 场景)"
  133. @echo " make test-dirty - 脏页阈值性能对比测试"
  134. @echo " make test-integrity - 数据完整性测试"
  135. @echo " make test-mem - 内存使用测试"
  136. @echo ""
  137. @echo "🎨 Demo 程序"
  138. @echo " make demo-analyzer - 启动数据库可视化工具"
  139. @echo ""
  140. @echo "🛠️ 开发工具"
  141. @echo " make fmt - 格式化代码"
  142. @echo " make lint - 代码静态检查 (go vet)"
  143. @echo " make deps - 依赖管理 (tidy + verify)"
  144. @echo " make tree - 显示项目结构"
  145. @echo ""
  146. @echo "📖 快速开始"
  147. @echo " make build && make test # 构建并运行所有测试"
  148. @echo " make demo-analyzer # 启动可视化工具"
  149. @echo ""
  150. @echo "💡 提示"
  151. @echo " - 首次使用建议运行: make test"
  152. @echo " - 查看 Analyzer: make demo-analyzer"
  153. @echo " - 提交前检查: make fmt && make lint"
  154. @echo ""