乐于分享
好东西不私藏

阿里开源的 AI 代码审查工具open-code-review,居然故意「少报」?我本机跑通后理解了

阿里开源的 AI 代码审查工具open-code-review,居然故意「少报」?我本机跑通后理解了

QUOTE

阿里内部用了两年(据官方自述)的 AI 代码审查,开源了,我本地下载、装好、跑了一遍。

—— 开源仓库猎人

我自己平时就用 coding agent 写代码,最怕的就是审查这一步翻车。不是怕它不审,是怕它「审了跟没审一样」。我见过太多次这三种翻车:

  • 漏文件:一个 PR 改了 20 个文件,它只扫了其中 3 个,剩下 17 个它觉得「应该不用看」;

  • 定位漂移:它告诉你「第 142 行有问题」,你打开一看 142 行啥也没有,真正的问题在 387 行;

  • 输出随机:同一个 PR,第一次说 Looks good、第二次说存在 SQL 注入、第三次说线程安全风险,代码一行没动,只有 AI 在变。

这三种翻车根子往往都指向同一件事:把太多事压给 LLM。至少在我见过的翻车里,文件筛选、流程控制、精确定位、规则执行、一致性输出这些,LLM 并不是最稳的那一环(当然也受上下文预算、diff 生成、工具实现、模型参数和提示模板等影响,不能全怪模型)。所以翻这周周榜,看到 alibaba/open-code-review 冲上来,我没光看标语,下载下来跑,至于「阿里内部用了两年、审了数百万个缺陷」这种规模,本地实测验不了,只能当作项目方自述,下面我会标清楚。

下面是这次真实跑过的经过,关键终端输出我都贴了出来(完整命令和源码见文末说明)。

说起来,读者比趋势榜更早把它递到我眼前。这得从上周一的实测说起:那篇我跑了 tirth8205/code-review-graph,思路是先把代码建成本地 SQLite 图谱,让 Agent 少读无关文件。评论区有读者问,能不能把它和「阿里OCR」结合做 AI code review;我一开始按字面理解,回了一通「把图片文字提取出来再喂给 code-review-graph」,结果被另一位读者纠正:他说的「OCR」其实是「阿里的 open code review」。我这才反应过来,主角早被点出来了,就是 alibaba/open-code-review。所以这周它冲上趋势榜,正好给了我由头,把那篇评论区里读者点名、我却照字面意思带偏的项目真正跑一遍,补上那个乌龙。

本文看点

01

阿里内部审查助手,孵化的开源 CLI

02

我本机实跑:规则提示+文件选择+接 LLM 的 AI 审查

03

顺着「审查门禁」还有三个互补项目

01

OVERVIEW

它到底是什么

按项目方介绍,OpenCodeReview 是个 AI 驱动的代码审查 CLI,前身是阿里集团内部的官方 AI 代码审查助手,过去两年在内部服务了数万开发者、识别了数百万个代码缺陷,充分验证后才孵化为开源项目,配置一个模型端点就能用。

按项目方说法,它做的事:读取 Git diff → 通过带工具调用能力的 Agent 把变更文件发给可配置的 LLM → 生成行级精度的结构化审查意见。Agent 能读完整文件、搜代码库、看其他变更拿上下文,所以是深度审,不是只扫一眼 diff。另外据项目方文档,除了 diff 审查,还有 ocr scan 能直接扫整个文件,适合审计不熟悉的代码库、或者没有有意义 diff 的目录。

阿里的思路其实就一句话:让工程做工程,让 AI 做 AI。它没把宝全押在提示词上,但也确实做了「场景化提示词调优」,官方把这块列为核心能力之一;更关键的是它把流程重写了:哪些文件要审、哪些规则该查,由工程逻辑先钉死,只有「理解代码、定位问题」这种 LLM 真正擅长的动态判断,才交给模型。具体拆成四块能力(按项目方说法):

  • 精准文件选择:改了 20 个文件,重要改动也不容易漏掉,该审哪些由程序判定,不靠 LLM 自己猜。

  • 智能文件打包:message_en.properties / message_zh.properties 这类成对的国际化文件,OCR 会自动打包给同一个 Agent,避免把同一份逻辑拆成两份看。

  • 规则按路径匹配:java 文件命中 java.md、go 文件命中 go.md(首个匹配路径即生效),不靠用户在提示词里硬写规则,我贴的 delegate rule 输出就是它匹配到的安全规则。

  • 定位与反思独立成模块:行号不准时有一层独立的「定位 + 反思」组件去校正(官方说它提升 AI 反馈的位置与内容准确度,背后仍会调用模型),不是纯靠 LLM 临场发挥,也不是纯确定性保证。

这套描述听着漂亮,但漂亮话我见多了。我更想知道的是:它到底能不能落地。所以我没急着配 key,而是先看它不依赖 LLM key 也能跑的那部分(规则提示、文件选择):这部分才是它和「套个提示词让通用 Agent 审」真正的区别;要出审查评论,仍然得接自己的 LLM。(这里的「规则提示」指 ocr delegate rule 按路径匹配吐出的审查规则文件,它本身不做缺陷检测,只是把该查什么钉死。)

02

HANDS-ON

我到底怎么测的

安装它很简单。官方给了 npm 包,我用本机 Node 22 直接 npm install -g @alibaba-group/open-code-review安装,装下来是 v1.8.4 的预编译二进制(darwin/arm64),不需要 Go 工具链,和我的 M 芯片 Mac 对得上。装完先看版本:

bash

$ ocr version

open-code-review v1.8.4 (e78474478) darwin/arm64

built at: 2026-08-01T03:29:59Z

https://github.com/alibaba/open-code-review

版本是当天构建的,说明项目还在高频迭代。接着 ocr --help 暴露出一整套命令:review / scan / delegate / rules / session / viewer,分工很清楚。

重点在 delegate 这一类—:它的 preview / rule 子命令完全不需要 LLM key。但要说清:delegate 把审查交给你的宿主 coding agent 去跑,所以 OCR 这边不用单独配 key,真正的审查仍靠宿主 agent 自己的模型,不是「完全不需要模型」。我拿来跑了一遍。

先写了个故意留缺陷的 Go 文件,把平时最容易出的几个坑都放进去:

go

package main

import "fmt"

// 故意留几个常见缺陷

func divide(a, b int) int {

    return a / b // 可能除零

}

func main() {

    data := []int{1, 2, 3}

    for i := 0; i <= len(data); i++ { // 越界

        fmt.Println(data[i])

    }

    _ = divide(10, 0)

}

然后跑 ocr delegate rule buggy.go。这一步不调 LLM,吐出来的是一整套 Go 审查规则,而且是模板引擎匹配出来的,不是 LLM 现编的。我贴两段真实的:

text

> Favor precision over recall: report only defects that are likely real

> in the changed code and its reachable context. A false positive costs

> reviewer trust. Treat correctness and security findings as blocking...

- SQL, shell commands, URLs, paths, headers, templates, regexes, or

  serialized data assembled from untrusted input without appropriate

  parameterization, validation, escaping, allowlisting...

你品一下这两段。第一段讲的是「精确率优先于召回率,误报会消耗 reviewer 的信任」,这不是泛泛的「请审查这段代码」,而是带着明确取舍的审查策略。第二段直接点名 SQL 注入、命令注入、路径穿越这些具体边界。能确认的是,这些规则是写死在仓库里的静态文件,不是模型临场生成;至于规则最初由谁编写、是否直接来自内部真实案例,项目方没公开细节,我只能说读起来像工程经验沉淀,不能当成已证实的事实。

我又在 workspace 模式下跑了 ocr delegate preview,它准确选出了我新增的 handler.go(一个忘了关 response body 的文件),输出是:

bash

$ ocr delegate preview

# Files (1 reviewable / 1 total)

  - `handler.go` [added] +9/-0

这两步让我确认了一件事:它「不依赖 key 的工程层」那一半是确定的,文件筛选、规则匹配都是确定性逻辑,跑出来对得上官方描述。但定位与反思那一环仍会调用模型,不能说是「纯工程保证」;而且这只是流程跑通,不代表低误报或不会漏文件(这点下面单独说)。

— 本机实测跑通(含接 LLM 后的 AI 审查)

接上我自己的 LLM,把最值钱的那步也跑通

前面那几步免 key,但真正让 LLM 出审查评论的 ocr review / ocr scan,必须你自己的 LLM 端点(OpenAI 兼容或 Anthropic 都行)。OCR 用 ocr config 就能接任意 OpenAI 兼容网关,不用改一行业务代码:

bash

# 把 OCR 接上你自己的 LLM(这里是我本机配的一个 OpenAI 兼容端点)

ocr config set provider myllm

ocr config set custom_providers.myllm.url https://你的-OpenAI兼容端点/v1

ocr config set custom_providers.myllm.protocol openai

ocr config set custom_providers.myllm.api_key $YOUR_LLM_KEY

ocr config set model 你的模型名

这里补一句实在话:OCR 把 diff 和文件发给你的 LLM 去审,端点指向哪儿,代码就流向哪儿。配本地或公司私有网关自然没问题;但要是为了顺手配了个公共云端模型,源码改动就出了公司内网。团队用的话,先把模型端点的数据合规确认清楚,别把敏感仓库的改动直接丢到外部。

配好之后,ocr scan 直接扫整个文件。我另写了一个专门埋缺陷的文件,下文叫它 defects-demo.go(扫描输出里显示的原名还是 buggy.go),里面故意放了 SQL 注入、nil 解引用、硬编码密钥等几类缺陷,模型吐出来的审查意见(节选):

注:这个埋缺陷的文件我另命名为 defects-demo.go,和前面 ocr delegate rule 举例的 buggy.go 不是同一个,免得重名搞混;它扫出来一共报了 6 条意见(节选见下),为省篇幅只贴输出、没全文贴源码。

text

─── buggy.go:13-14 ───

[security · critical] SQL injection: userID is directly concatenated into the query string...

Remediation: use a parameterized query with placeholders, e.g.

db.QueryRow("SELECT name FROM users WHERE user_id = ?", userID).

─── buggy.go:24-25 ───

[bug · high] Nil dereference panic: db is declared as var db *sql.DB (nil) and passed to

UserQuery. Calling db.QueryRow(...) on a nil *sql.DB panics at runtime...

─── buggy.go:34-34 ───

[security · high] Hardcoded secret: apiSecret is embedded directly in source code...

─── buggy.go:26-29 ───

[security · medium] Error information leakage: the raw database error ... returned directly to the

client via http.Error(w, err.Error(), 500)...

─── buggy.go:25-25 ───

[performance · medium] Missing request context: the handler does not pass r.Context()...

─── buggy.go:34-34 ───

[maintainability · low] Unused constant: apiSecret is declared but never referenced...

Summary: 1 file(s) reviewed, 6 comment(s), ~13097 token(s) used, 37s elapsed

一条 critical(SQL 注入)、一条 high(nil panic)、一条 high(硬编码密钥),加上几个 medium/low。注意它给的不是「这段代码可能有问题」这种废话:SQL 注入那条直接给了参数化查询的修法,连 db.QueryRow(...) 都写好了。(注:上面示例用的是 ? 占位符,这是 MySQL / SQLite 风格;PostgreSQL 要用 $1。我不能证明这段示例能直接套到某个具体驱动上,只能说它把「参数化」这个正确方向给出来了。)

ocr review 走的是 diff 视角,默认审你本次改动或新增、且通过了文件过滤的文件(二进制、不支持扩展名、测试文件、vendor / node_modules 等会被自动排除,不是所有改动都会进审查)。我加了个 pay.go(含命令注入和除零),它审出来两条都是 critical,而且直接给出了带「-」「+」标记的修复 diff

text

─── pay.go:11-11 ───

[security · critical] Shell Command Injection

Line 11 directly concatenates user input into a shell command via sh -c...

Example exploit: ProcessPayment("100; rm -rf /") would execute echo pay 100; rm -rf /...

- cmd := exec.Command("sh", "-c", "echo pay "+userInput)

+ cmd := exec.Command("echo", "pay", userInput)

─── pay.go:20-22 ───

[bug · critical] Integer Division by Zero Panic

Line 21 performs division without checking if the divisor is zero...

  func Calc(a, b int) int {

+ if b == 0 {

+ return 0

+ }

      return a / b

  }

Summary: 1 file(s) reviewed, 2 comment(s), ~20506 token(s) used, 41s elapsed

顺带说一句:上面 Calc 的修复是 OCR 直接给的 diff——b == 0 时 return 0。这能避免 panic,但 return 0 可能悄悄掩盖了错误的业务结果;更稳妥的接口通常是返回 (int, error),或按你的业务约定显式处理。所以「直接给修复 diff」不等于修复一定正确,这点得说清楚。

所以现在可以确认:AI 审查那一步,我用自己机器上的 LLM 跑通了,不是只验了免 key 的一半。从规则文本和我这次跑出的结果看,它是在往「精确率优先」的方向走,我贴的这几个意见都对应真实缺陷,但「performance / maintainability」那两类(缺 request context、未用常量)值不值得在审查里报,业内本就有争议。得说清一个点:我的测试本身偏「召回」一侧,我埋的都是显眼缺陷,只想看它能不能发现问题,并没有准备一份干净代码去看它会不会乱报,也没展示它主动放弃了哪些低置信度问题,所以「少报 / 低噪声」恰恰是我这次没直接演示出来的那半。

它擅长抓什么、不擅长什么

看了上面这些真实输出,可以给它画一张能力地图:哪些问题它大概率能帮你兜住,哪些别指望它:

更擅长(对照我刚贴的输出)

• 明确的安全漏洞:SQL 注入、命令注入、硬编码密钥,defects-demo.go 和 pay.go 里的这几类它都抓到了

• 显眼的运行时崩溃:nil 解引用、除零 panic

• 确定性的格式 / 路径问题:规则按路径匹配,成对的国际化文件会被自动打包一起审

别指望它(也超出本次实测)

• 业务逻辑对不对、架构合不合理,这类判断 LLM 本来就难拿准

• 是否贴合你们团队的私有上下文、需求到底实现没

• 隐蔽、跨多文件的复杂缺陷,它本就是低召回取向,这类更容易被放过

03

MY TAKE

我的判断:打动我的是「可预期」的取向

项目方做了一套很硬核的基准(项目方披露,非本人复现;该基准基于 v1.3.1,本文实测为 v1.8.4):50 个开源仓库、200 个真实 PR、10 种语言、1505 个真实缺陷、80+ 高级工程师人工标注。拿 OCR 去对比 Claude Code,结论是:精确率(Precision)约 25%–38%,远高于 Claude Code 的约 7%–16%(但绝对值仍不到一半);F1 更高、token 只花约 1/9、审查还更快;但召回率更低

这最后一点不是翻车,是有意设计:在多数常规业务代码里,我平时做 code review 时最烦的往往不是 AI 少发现几个问题,而是每行都给你一个黄标、最后只能全点 Ignore。

当然,安全、支付、基础设施这类场景,漏掉一个严重问题往往比多处理几条误报更糟,所以召回率高低本来就取决于你的业务取舍。OCR 正是选了 precision over recall,宁可少报,也不拿误报消耗你的信任。

项目方把这套思路概括为「确定性工程 × Agent 混合驱动」:文件筛选、智能打包、规则匹配这些能钉死的,由工程逻辑强约束;定位与反思是独立的模块(仍会调模型),Agent 负责它真正擅长的动态决策和上下文召回。

我自己的判断是:对团队来说,它最值钱的地方不是「比通用 Agent 多审出几个 bug」,而是相对可预期。我前面说怕 review 翻车,怕的其实就是「不可预期」:今天审得严、明天可能就飘了,你都不敢信它,最后还是要自己重看一遍。OpenCodeReview 把规则钉死、把噪声压得比通用 Agent 低(这是相对结论,不是绝对无噪声),等于给这一步加了一道相对可预期的门禁(这是设计愿景;我这次两个小文件既没重复运行、也没接 CI,稳定性和「更少误报」都证不了,得靠真实 PR 验证)。但它召回率偏低,意味着它不替代人审,是「第一道过滤」。要不要上,取决于你更怕漏报还是更怕误报,这是只有你自己的业务能回答的问题,我没法替你拍板。

落到工程上,OCR 支持把审查结果输出成结构化 JSON(ocr review --format json),这意味着能直接挂进 GitHub Actions、GitLab CI 这类流水线,在 PR 合并前做一道自动初审,比人工手动跑一遍更稳。这偏部署层面,本文没演示,CI 模板以官方文档为准。

04

ALSO WORTH

再聊三个相关项目:都围着「让审查更靠谱」

PLUS 1ayghri/i-have-adhd(约 1.5 万星)

严格说它不直接提升「审查质量」,而是解决审查之后的可读性:Agent 把意见埋进长篇,这个项目是个 skill,专门把输出拆块、结论前置。算审查门禁的「下游」,门禁负责审得准,它负责看得清。关系偏弱,但同属「让 Agent 写出来的代码更靠谱」这一圈。

PLUS 2tirth8205/code-review-graph(约 2.8 万星)

上周一我实测过。它先把函数、调用关系建成本地 SQLite 图谱,查询时只把相关文件交给 Agent。和 OpenCodeReview 是同一方向的两端:一个负责「缩小要审的范围」,一个负责「把范围内的审得稳」。评论区读者问的「能不能和阿里 OCR 结合」,思路上确实能拼,但这只是我的推测,我没真把两个接起来跑过。

PLUS 3DeusData/codebase-memory-mcp(约 3.7 万星)

code-review-graph 的同类替代,C 写单二进制、零依赖、158 种语言。我还没部署,描述来自 README;它代表「最小侵入给大仓库建索引」这条路线,和 OpenCodeReview 不冲突,同样能先做范围缩小。是否真能串起来用,待实测。

WRAP-UP

写在最后

回到开头说的「翻车」:open-code-review 干的事,就是给 Agent 写代码最容易翻车的那一步,加一道相对可预期、相对低噪声的门禁(设计愿景:稳定性未测)。它不替代人审,是「第一道过滤」:低召回意味着它可能漏,精确率相对更高意味着它报出来的相对更值得看,误报比通用 Agent 少得多,这是相对结论(基于基准 Precision 25%–38% vs 7%–16%);但 OCR 自己的绝对 Precision 仍不到一半,所以「认真看」不等于「每条都对」。我这次连需要 LLM 的那一半也用自己机器上的端点跑通了,流程是通的、该报的明显缺陷也报出来了;但「它比通用 Agent 更稳、更少误报」这种结论,得靠那套官方基准和你的真实 PR 去验证。

我是开源仓库猎人,专注于发现 GitHub 上的热门开源项目,不只是罗列,更想说清楚它们在往哪个方向走。每周一三五深度解读,周日盘点十大热点。

如果觉得今天这篇有收获,我们周三见。

声明

文中 star 数来自 GitHub API(截至 2026-08-02),周增来自 git-trending-rank 第 31 周快照。open-code-review 的「安装 + 规则提示 + 文件选择」为本人在本机免 key 实测(Node 22 / macOS arm64,代码与终端输出均真实跑出);「AI 端到端审查(ocr scan / ocr review)」也用本人自有 LLM 端点(agnes-2.0-flash,OpenAI 兼容)实跑,模型与 token 消耗为真实数据。code-review-graph 为 2026-07-27 文章实测;codebase-memory-mcp 尚未部署,描述来自 README。

延伸阅读

这周 GitHub周榜10个热门项目,为何是阿里代码审查和 skills 框架领跑?本周的周报。它把我今天跑的 open-code-review,和上周一测的 code-review-graph,一起摆进了「准备试」,这篇周一稿,就是从那张周榜清单里挑出来的。

我装了 4 个 AI 编程工具:Orca 的并行舰队,真有用,还是画饼?上周五的横评,我把 orca / kimi-code / jcode / pi 四个 coding agent 全装到本机、读了源码验了一遍,和今天这篇是同一系列。

实测 code-review-graph:项目方说少读 82 倍代码,我拿 279 行仓库实测却几乎没省  上周周报的实测稿,正好和本期主项目阿里 open-code-review 同属「代码审查」赛道。

END
基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-08 09:35:45 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/899220.html
  2. 运行时间 : 0.108146s [ 吞吐率:9.25req/s ] 内存消耗:5,080.02kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=8fd2803b0ab48dab3b9f65f1eb39b15e
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 4.22 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.11 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000543s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000840s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000305s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000233s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000456s ]
  6. SELECT * FROM `set` [ RunTime:0.000218s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000595s ]
  8. SELECT * FROM `article` WHERE `id` = 899220 LIMIT 1 [ RunTime:0.000863s ]
  9. UPDATE `article` SET `lasttime` = 1786152945 WHERE `id` = 899220 [ RunTime:0.004266s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000251s ]
  11. SELECT * FROM `article` WHERE `id` < 899220 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000445s ]
  12. SELECT * FROM `article` WHERE `id` > 899220 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000499s ]
  13. SELECT * FROM `article` WHERE `id` < 899220 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001250s ]
  14. SELECT * FROM `article` WHERE `id` < 899220 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003953s ]
  15. SELECT * FROM `article` WHERE `id` < 899220 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008377s ]
0.109849s