当前位置:首页>python>Java+Python 混合计算架构:金融 AI 高精度计算实战

Java+Python 混合计算架构:金融 AI 高精度计算实战

  • 2026-07-02 12:31:08
Java+Python 混合计算架构:金融 AI 高精度计算实战

导读

在金融 AI 里,有一个无法回避的事实:

Java 擅长服务、并发、安全,但不擅长科学计算;Python 擅长量化、金融模型、数据分析,但不适合做高稳定对外服务。

如果只用 Java,写 DCF、VaR、MACD、组合优化会非常笨重,精度也难保证;

如果只用 Python,服务化、监控、权限、审计、高并发又很难做到企业级。

所以,企业级金融 AI 的最优解一定是:Java + Python 混合计算架构

本文基于真实可上线的 AI 智能体金融项目,完整讲解:

混合架构设计思路、Java 调用 Python 引擎、进程隔离安全、四大金融计算工具实现、异常处理、生产部署方案。

全文 3000 字以上、带流程图、完整可运行代码、生产级最佳实践。

一、为什么金融 AI 必须用 Java+Python 混合架构?

1.1 单一语言架构的致命短板

纯 Java 架构的问题

  1. 金融计算库极少,缺乏 pandas、numpy、scipy、quantlib
  2. 矩阵运算、时序计算、优化器难写
  3. 量化策略、指标算法实现成本高、易出错
  4. 模型迭代慢,无法快速跟上金融研究节奏

纯 Python 架构的问题

  1. 高并发、长连接、流式输出(SSE)支持弱
  2. 微服务、安全、权限、审计生态不如 Java
  3. 生产运维、监控、降级、限流体系不成熟
  4. 企业级管控、合规审计能力不足

1.2 混合架构的核心优势

我们的方案非常清晰:

  • Java 做主服务
    接口、并发、安全、审计、注册中心、智能体调度
  • Python 做计算引擎
    DCF、VaR、技术指标、组合优化、量化模型
  • 进程隔离
    安全、稳定、不互相影响
  • 标准协议通信
    JSON 参数 + 标准输出

一句话:

Java 管稳定与合规,Python 管专业与精度。

1.3 混合架构整体流程

用户请求    ↓JavaSpring Boot)接口层 → 鉴权、审计、限流    ↓Agent智能体调度 → 决定是否需要计算    ↓Java 调用 PythonScriptExecutor    ↓独立进程启动Python → 执行金融计算脚本    ↓Python 输出JSON结果    ↓Java 接收结果 → 拼装回答 → 流式返回用户    ↓全链路日志 + 金融合规审计

二、混合计算整体架构设计(图文)

2.1 架构分层图

┌─────────────────────────────────┐│           Agent 智能体层          ││  (决策、调度、对话、上下文管理)   │└───────────┬─────────────────────┘            │┌───────────▼─────────────────────┐│      Java 业务与工具封装层        ││     @Tool 注解、参数校验、异常     │└───────────┬─────────────────────┘            │┌───────────▼─────────────────────┐│     PythonScriptExecutor 桥接层  ││    进程管理、编码、超时、隔离     │└───────────┬─────────────────────┘            │┌───────────▼─────────────────────┐│        Python 计算引擎层          ││ DCF / VaR / 技术指标 / 组合优化  │└─────────────────────────────────┘

2.2 安全隔离机制

  • 独立进程启动,不嵌入 JVM
  • 只允许执行指定目录脚本
  • 无系统权限、无网络权限
  • 输入输出 JSON 白名单校验
  • 超时强制杀死,避免卡死服务

2.3 数据流转格式

  • Java → Python:JSON 字符串参数
  • Python → Java:标准输出 UTF-8 字符串
  • 统一异常格式,方便 Java 识别错误

三、核心桥接器:PythonScriptExecutor(完整代码)

这是整个混合架构的心脏

3.1 执行器完整实现

@Slf4j@Componentpublic class PythonScriptExecutor {    private final String pythonCommand;    private static final String SKILLS_BASE_PATH = "sk-agent-agents/src/main/resources/skills";    private static final String PYTHON_IO_ENCODING = "utf-8";    private static final long DEFAULT_TIMEOUT_MS = 10000;    public PythonScriptExecutor() {        this.pythonCommand = detectPythonCommand();    }    /**     * 自动检测 python / python3     */    private String detectPythonCommand() {        try {            if (new ProcessBuilder("python3""--version").start().waitFor() == 0) {                return "python3";            }        } catch (Exception ignored) {}        try {            if (new ProcessBuilder("python""--version").start().waitFor() == 0) {                return "python";            }        } catch (Exception ignored) {}        log.warn("⚠️ 未检测到Python环境,金融计算工具将不可用");        return null;    }    /**     * 执行Python脚本     * @param skillPath 技能目录:如 super-financial-advisor/investment-analysis     * @param scriptName 脚本名:dcf_calculator.py     * @param args 参数JSON     */    public ScriptResult executeScript(String skillPath, String scriptName, String... args) {        if (pythonCommand == null) {            return ScriptResult.error("Python环境未配置");        }        try {            // 构建脚本路径            Path scriptPath = Paths.get(SKILLS_BASE_PATH, skillPath, "scripts", scriptName);            if (!Files.exists(scriptPath)) {                return ScriptResult.error("脚本不存在:" + scriptPath);            }            // 构建命令            List<String> command = new ArrayList<>();            command.add(pythonCommand);            command.add("-u"); // 无缓冲输出            command.add(scriptPath.toString());            Collections.addAll(command, args);            // 启动进程            ProcessBuilder pb = new ProcessBuilder(command);            pb.environment().put("PYTHONIOENCODING", PYTHON_IO_ENCODING);            pb.redirectErrorStream(true); // 合并错误流            Process process = pb.start();            String output = readInputStream(process.getInputStream());            int exitCode = process.waitFor();            if (exitCode == 0) {                return ScriptResult.success(output.trim());            } else {                return ScriptResult.error("执行失败(" + exitCode + "):" + output);            }        } catch (Exception e) {            log.error("Python执行异常", e);            return ScriptResult.error("执行异常:" + e.getMessage());        }    }    /**     * 读取流并按UTF-8编码     */    private String readInputStream(InputStream is) throws IOException {        try (BufferedReader reader = new BufferedReader(                new InputStreamReader(is, StandardCharsets.UTF_8))) {            StringBuilder sb = new StringBuilder();            String line;            while ((line = reader.readLine()) != null) {                sb.append(line).append("\n");            }            return sb.toString();        }    }    /**     * 执行结果封装     */    @Data    @AllArgsConstructor    public static class ScriptResult {        private boolean success;        private String output;        private String error;        public static ScriptResult success(String output) {            return new ScriptResult(true, output, null);        }        public static ScriptResult error(String error) {            return new ScriptResult(falsenull, error);        }    }}

3.2 关键设计点

  1. 自动探测 python/python3
  2. -u 无缓冲输出
    保证流式输出不卡顿
  3. PYTHONIOENCODING=utf-8
     解决中文乱码
  4. redirectErrorStream(true)
     错误信息合并,方便排查
  5. 进程隔离
    不影响 JVM 稳定性
  6. 统一返回结构
    便于 Java 处理

四、四大金融计算工具封装(Java 侧 @Tool)

我们把金融最核心的4 类计算全部封装为 @Tool,让 Agent 自动调用。

4.1 DCF 现金流折现估值

@Tool(description = "DCF现金流折现估值,参数:cashFlows未来现金流、discountRate折现率、terminalGrowth永续增长率、sharesOutstanding总股本")public String calculateDcf(        double[] cashFlows,        double discountRate,        double terminalGrowth,        double sharesOutstanding) {    log.info("📊 工具调用:DCF估值计算");    String json = String.format(            "{\"cash_flows\":[%s],\"discount_rate\":%.4f,\"terminal_growth\":%.4f,\"shares\":%.2f}",            arrayToString(cashFlows), discountRate, terminalGrowth, sharesOutstanding);    PythonScriptExecutor.ScriptResult result = executor.executeScript(            "super-financial-advisor/investment-analysis",            "dcf_calculator.py",            json);    return result.isSuccess() ? result.getOutput() : "计算失败:" + result.getError();}

4.2 技术指标(MA、RSI、MACD)

@Tool(description = "计算股票技术指标:MA、RSI、MACD,参数:prices收盘价数组")public String calculateTechnicalIndicators(double[] prices) {    log.info("📊 工具调用:技术指标计算");    String json = String.format("{\"prices\":[%s]}"arrayToString(prices));    var result = executor.executeScript(            "super-financial-advisor/investment-analysis",            "technical_indicators.py",            json);    return result.isSuccess() ? result.getOutput() : "计算失败:" + result.getError();}

4.3 VaR 风险价值计算

@Tool(description = "投资组合VaR风险计算,参数:portfolioValue组合价值、meanReturn收益率、stdDev标准差、confidenceLevel置信度")public String calculateVar(        double portfolioValue,        double meanReturn,        double stdDev,        double confidenceLevel) {    log.info("📊 工具调用:VaR风险计算");    String json = String.format(            "{\"portfolio_value\":%.2f,\"mean_return\":%.6f,\"std_dev\":%.6f,\"confidence\":%.2f}",            portfolioValue, meanReturn, stdDev, confidenceLevel);    var result = executor.executeScript(            "super-financial-advisor/risk-management",            "var_calculator.py",            json);    return result.isSuccess() ? result.getOutput() : "计算失败:" + result.getError();}

4.4 马科维茨投资组合优化

@Tool(description = "投资组合优化,最大化夏普比率,参数:assets资产代码、expectedReturns预期收益、riskFreeRate无风险利率")public String optimizePortfolio(        String[] assets,        double[] expectedReturns,        double riskFreeRate) {    log.info("📊 工具调用:投资组合优化");    String assetsJson = "[\"" + String.join("\",\"", assets) + "\"]";    String returnsJson = arrayToString(expectedReturns);    String json = String.format(            "{\"assets\":%s,\"returns\":[%s],\"risk_free\":%.4f}",            assetsJson, returnsJson, riskFreeRate);    var result = executor.executeScript(            "super-financial-advisor/risk-management",            "portfolio_optimizer.py",            json);    return result.isSuccess() ? result.getOutput() : "计算失败:" + result.getError();}

4.5 数组转字符串工具

private String arrayToString(double[] arr) {    StringBuilder sb = new StringBuilder();    for (int i = 0; i < arr.length; i++) {        if (i > 0) sb.append(",");        sb.append(arr[i]);    }    return sb.toString();}

五、Python 侧计算脚本示例(可直接运行)

5.1 DCF 计算器示例

import sysimport jsondef dcf_valuation(cash_flows, discount_rate, terminal_growth, shares):    if len(cash_flows) == 0:        return {"error""现金流不能为空"}    pv = 0    for i, cf in enumerate(cash_flows):        pv += cf / ((1 + discount_rate) ** (i + 1))    last_cf = cash_flows[-1]    terminal_value = last_cf * (1 + terminal_growth) / (discount_rate - terminal_growth)    pv += terminal_value / ((1 + discount_rate) ** len(cash_flows))    value_per_share = pv / shares    return {        "total_value"round(pv, 2),        "value_per_share"round(value_per_share, 2),        "terminal_value"round(terminal_value, 2)    }if __name__ == "__main__":    data = json.loads(sys.argv[1])    result = dcf_valuation(        cash_flows=data["cash_flows"],        discount_rate=data["discount_rate"],        terminal_growth=data["terminal_growth"],        shares=data["shares"]    )    print(json.dumps(result, ensure_ascii=False))

六、混合架构生产级安全与稳定性

6.1 安全沙箱

  • 只允许执行 skills 目录下脚本
  • 禁止系统命令、禁止网络请求
  • 最小权限运行

6.2 超时控制

// 可在executeScript中增加超时boolean finished = process.waitFor(5TimeUnit.SECONDS);if (!finished) {    process.destroyForcibly();    return ScriptResult.error("执行超时");}

6.3 异常熔断

  • 连续失败自动熔断
  • 避免重复调用崩溃
  • 日志全量记录

6.4 资源隔离

  • 计算与 Web 服务分离
  • 不占用 JVM 内存
  • 不影响接口响应

七、与 AI 智能体的完整联动流程

  1. 用户问:贵州茅台估值多少?
  2. Agent 理解意图:需要 DCF 计算
  3. 调用 @Tool calculateDcf
  4. Java 调用 PythonScriptExecutor
  5. Python 执行计算,返回 JSON
  6. LLM 整理结果
  7. 流式输出给用户
  8. 审计日志记录计算参数与结果

八、生产环境部署建议

  1. 宿主机安装 Python,3.9+,安装 pandas、numpy、ta
  2. 脚本目录权限只读
  3. Java 服务与 Python 环境同机部署(低延迟)
  4. 日志集中采集
  5. 监控脚本执行耗时、失败率
  6. 超时时间设置 5 秒内

九、总结:混合架构是金融 AI 的标准答案

金融 AI 的核心诉求是:

服务要稳、计算要准、合规要严、迭代要快

Java+Python 混合架构完美满足:

  • Java 提供企业级服务能力
    高并发、安全、审计、管控、流式输出
  • Python 提供金融级计算能力
    高精度、易迭代、生态强大
  • 进程隔离保证安全稳定
  • 标准 JSON 保证跨语言兼容

本文的整套架构,已经在金融投顾、智能风控、资产配置等生产环境验证稳定可靠,是企业级金融 AI 的标准落地架构

扫码详细了解该项目

最新文章

随机文章

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