SuperAPI AI 工具集

django-perf-review

数据与分析

查看项目

更新于 10-15 21:51

技能介绍

用途:审查 Django 代码中的性能问题,在报告前先研究代码库以确认问题真实存在,只报告可证明的结论,允许零发现。

主要能力:按影响程度分类问题。优先级 1 为 N+1 查询(严重),需在循环访问关联数据前使用 select_related/prefetch_related,序列化器中同样要优化查询集;优先级 2 为无界查询集(严重),列表端点应分页,大批量处理用 iterator(),避免对无界查询集调用 list();优先级 3 为缺失索引(高),对大表 WHERE 与 ORDER BY 字段加索引,常用查询模式用复合索引;优先级 4 为循环写入(高),用 bulk_create、update()、bulk_update、查询集 delete() 替代循环中的 create/save/delete;优先级 5 为低效模式(低),如 count() 与 exists()、len(queryset) 与 count(),通常可跳过。

使用方式:先追踪数据流,从视图到查询集到模板或序列化器,确认关联字段在循环中被访问;搜索代码库中已有的 select_related、prefetch_related、分页;核实表数据量是否足够大;确认是否为高频路径;排除缓存等缓解措施。无法完成全部验证则不应报告。输出按文件或组件给出摘要与发现,每条含位置、问题、验证过程、证据与修复建议。

适用场景:Django 视图、DRF 序列化器、模型属性、模板循环等性能审查。

限制:不报告测试文件、仅管理后台视图、管理命令、迁移文件、一次性脚本、被禁用特性开关后的代码、小于 1000 行且不会增长的表、冷路径代码及微优化。查询集变量赋值、单次 list() 调用、单对象缺少 select_related 均非 N+1,不应误报。严重程度须与实际影响匹配。