CANN Runtime Dump 能力全解析:从算子参数 Dump 到异常算子 Dump 的四级演进与文件分析方法
CANNAscend人工智能任务调度【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址https://gitcode.com/cann/runtime点击查看免费下载导读Dump 功能是 CANN Runtime 在算子执行异常、精度问题与性能分析场景下的核心维测手段。本指南以example/5_performance/adump/目录下的示例为主线系统讲解 CANN Runtime 提供的 Dump 能力体系——从算子信息统计 → 回调式 Dump → 配置化 Dump → 异常算子 Dump四个递进层次覆盖aclopStartDumpArgs、acldumpRegCallback、aclmdlInitDump、acldumpSaveExceptionInfo等关键接口的调用方式并结合dump_artifact_analysis_en.md给出 Dump 文件路径定位、转换命令与字段含义的完整分析方法。读完本文你将掌握 Dump 的四种打开方式、输出路径的优先级规则以及如何通过回调字段和 Tensor 字段对 Dump 产物进行准确的诊断与定位。一、adump 示例目录与 Dump 能力全景在 CANN Runtime 仓库中example/5_performance/adump/ 目录集中承载了 Dump 相关的全部示例。从示例的组织结构可以看出 Dump 能力的演进路线即operator information statistics算子信息统计→ callback Dump回调式 Dump→ configuration-based Dump配置化 Dump→ Exception operator Dump异常算子 Dump四个阶段0_adump_args通过aclopStartDumpArgs/aclopStopDumpArgs导出单算子参数算子信息文件并查询当前 Dump 输出路径1_adump_callback通过acldumpRegCallback/acldumpUnregCallback注册回调以回调方式接收 Dump 数据并演示acldumpChunk的基础解析2_model_dump_config通过aclmdlInitDump/aclmdlSetDump/acldumpGetPath/aclmdlFinalizeDump组合演示基于配置文件的 Dump3_save_exception_info通过acldumpGetExceptionInfoPath/acldumpSaveExceptionInfo主动将自定义张量数据保存到异常算子 Dump 路径。所有示例均支持 Ascend 950PR/Ascend 950DT、Atlas A3 训练/推理系列产品、Atlas A2 训练/推理系列产品。二、环境准备与一键运行2.1 运行前置条件已安装 CANN 开发运行环境默认安装根目录为/usr/local/Ascend已获取本仓库cann/runtime的示例代码。2.2 编译运行步骤参考各子示例 README 中的统一流程以 0_adump_args/README_en.md 为例# 1. 加载 CANN 环境变量${install_root} 为 CANN 安装根目录默认 /usr/local/Ascend source ${install_root}/cann/set_env.sh # 2. 自动识别 SOC_VERSION 与 ASCENDC_CMAKE_DIR source ${git_clone_path}/example/set_sample_env.sh # 3. 编译并运行单个示例 bash run.sh2.3 批量运行全部 Dump 示例adump/run.sh 提供了顺序执行全部四个示例的入口脚本bash run.sh脚本行为如下首先source ../../common/resolve_cann_env.sh并调用resolve_cann_env完成 CANN 环境解析依次遍历0_adump_args、1_adump_callback、2_model_dump_config、3_save_exception_info四个示例目录在每个子目录内执行bash run.sh每个示例执行成功打印[SUCCESS]失败打印[FAILURE]并将failed置 1任一示例失败脚本最终返回非零状态码exit 1全部通过则打印[SUCCESS] All adump samples completed successfully.。这种逐示例执行 失败即退出非零的设计便于在 CI 或批量验证场景中快速定位失败项。三、示例一0_adump_args —— 单算子参数 Dump 与路径查询3.1 功能定位在单算子执行场景下Dump 算子信息并输出到path参数指定的目录。其特点在于每个 shape 对应一个算子信息文件文件内容包含算子类型、算子属性、算子输入输出 format、数据类型、shape 等信息。需要注意的是aclopStartDumpArgs输出的是算子信息文件而非张量数据文件。3.2 核心调用序列从 0_adump_args/main.cpp 的源码可以看到完整流程// 1. 初始化aclInit 设置 Device 创建 Stream CHECK_ERROR(adump::InitRuntime(deviceId, stream, dumpCfgPath)); // dumpCfgPath ./acl.json // 2. 开启算子参数 Dump 功能 CHECK_ERROR(aclopStartDumpArgs(ACL_OP_DUMP_OP_AICORE_ARGS, dumpPath)); // dumpPath /tmp LogDumpPath(DATA_DUMP, dumpPath); // 查询当前 Dump 输出路径 // 3. 构造输入输出shape 为 {4, 2} 的 aclTensor调用算子库接口 CHECK_ERROR(aclnnAddGetWorkspaceSize(self, other, alpha, out, workspaceSize, executor)); CHECK_ERROR(aclnnAdd(workspaceAddr, workspaceSize, executor, stream)); // 4. 等待任务完成并拷贝结果 CHECK_ERROR(aclrtSynchronizeStream(stream)); CHECK_ERROR(aclrtMemcpy(resultData.data(), ..., ACL_MEMCPY_DEVICE_TO_HOST)); // 5. 关闭算子参数 Dump 功能 CHECK_ERROR(aclopStopDumpArgs(ACL_OP_DUMP_OP_AICORE_ARGS)); // 6. 释放资源并反初始化 CHECK_ERROR(aclrtDestroyStream(stream)); CHECK_ERROR(aclrtResetDeviceForce(deviceId)); CHECK_ERROR(aclFinalize());其中关键 API接口作用aclopStartDumpArgs(acldumpType dumpType, const char *path)开启算子参数 Dumppath指定算子信息文件的输出目录aclopStopDumpArgs(acldumpType dumpType)关闭算子参数 DumpacldumpGetPath(acldumpType dumpType)查询指定 Dump 类型的当前输出路径示例同时覆盖了 Device 管理aclrtSetDevice/aclrtSynchronizeDevice/aclrtResetDeviceForce、Stream 管理aclrtCreateStream/aclrtSynchronizeStream/aclrtDestroyStream、内存管理aclrtMalloc/aclrtFree与数据搬移aclrtMemcpy等 Runtime 基础能力。3.3 配置与输出该示例的 acl.json 内容为{dump: {dump_path: ./, dump_list: [], dump_op_switch: on, dump_data: tensor}}示例运行后的典型输出如下摘自 0_adump_args/README_en.md[INFO] The dump data path is /tmp. [INFO] acldumpGetPath returned dump path: ... [INFO] result[0] is: 1.000000 ... [INFO] result[7] is: 11.000000 [INFO] Run the device_normal sample successfully. please make sure dump data has been in path: /tmp四、示例二1_adump_callback —— 回调方式接收 Dump 数据4.1 功能定位当不希望 Dump 数据直接落盘、而希望在宿主进程内即时处理时可以通过注册回调函数的方式接收 Dump 数据。示例在单算子执行场景下注册acldumpRegCallback回调在回调中解析acldumpChunk的 fileName、offset、isLastChunk、flag 及数据预览并输出汇总统计。4.2 核心调用序列从 1_adump_callback/README_en.md 可知其关键接口初始化aclInit→acldumpRegCallback注册 Dump 回调→acldumpGetPath查询输出路径→acldumpUnregCallback注销回调→aclFinalize回调数据解析在回调内解析acldumpChunk的 fileName、offset、isLastChunk、flag 与数据预览acldumpGetPath与回调中收到的文件名做对应确认 Dump 数据来源目录。其配置同样位于 1_adump_callback/acl.json与算子参数示例一致{dump: {dump_path: ./, dump_list: [], dump_op_switch: on, dump_data: tensor}}4.3 典型输出[INFO] acldumpGetPath returned dump path: ... [INFO] Receive dump tensor data success. file..., bufLen..., isLastChunk..., offset..., flag..., preview... ... [INFO] Dump callback summary: total chunks..., total bytes..., total files... [INFO] Run the device_normal sample successfully.输出中的Dump callback summary直接给出本次回调接收到的分片总数、总字节数与文件总数用于快速判断 Dump 数据是否完整。五、示例三2_model_dump_config —— 基于配置文件的模型级 Dump5.1 功能定位该示例在单算子 API 场景中使用模型级 Dump 配置接口与目录中其他示例互补展示配置化 Dump 的用法。配置文件采用单算子 Dump 场景推荐的dump_op_switch: on配置。5.2 核心调用序列初始化aclInit→aclmdlInitDump初始化 Dump 配置→aclmdlSetDump加载 Dump 配置文件→acldumpGetPath查询当前 Dump 输出路径→aclmdlFinalizeDump结束当前 Dump 配置→aclFinalize其余为常规的 Device/Stream/内存/搬移管理。其 acl.json 与算子参数示例的差别在于dump_list中放入了一个空对象[{}]{dump: {dump_path: ./, dump_list: [{}], dump_op_switch: on, dump_data: tensor}}5.3 典型输出[INFO] Configured model dump path is: ... [INFO] result[0] is: 1.000000 ... [INFO] Run the model dump config sample successfully.六、示例四3_save_exception_info —— 主动保存自定义张量到异常算子 Dump 路径6.1 功能定位在实际工程中部分组件或框架需要在算子发生异常时保存自定义数据。该示例通过dump_sceneaic_err_brief_dump开启异常算子 Dump先运行一个正常的aclnnAdd算子随后调用acldumpGetExceptionInfoPath查询异常算子 Dump 根路径含 deviceId构造acldumpTensorInfo复用算子的 Device 地址、shape 与数据类型调用acldumpSaveExceptionInfo在该路径下保存张量数据userTag会写入 Dump 文件 proto 头的 OpAttr 中。6.2 关键约束务必遵守fileName是相对路径不能为空也不能包含..段最终落盘位置被限制在异常算子 Dump 根路径之内避免重复覆盖为避免重复运行覆盖已有文件示例在fileName后追加.custom.{毫秒级时间戳}后缀作为实际落盘文件名例如save_exception_info变为save_exception_info.custom.20260721153012345必须先开启异常算子 Dump调用前必须通过dump_sceneaic_err_brief_dump开启异常算子 Dump否则接口返回失败地址与放置类型该接口直接把tensorAddr作为 Device 数据地址读取因此示例将addrType置为ACL_DUMP_ADDR_RAW、placement置为ACL_DUMP_PLACEMENT_DEVICE。6.3 配置与输出3_save_exception_info/acl.json 采用异常算子 Dump 场景的专用配置{ dump: { dump_path: ./, dump_scene: aic_err_brief_dump } }典型输出[INFO] acldumpGetExceptionInfoPath success, exception dump path is: .../extra-info/data-dump/0/ [INFO] acldumpSaveExceptionInfo success, data has been saved under exception dump path: .../extra-info/data-dump/0/ [INFO] result[0] is: 1.000000 ... [INFO] Run the save_exception_info sample successfully.七、Dump 文件路径规则与优先级依据 dump_artifact_analysis_en.md 的说明Dump 文件目录由 Dump 类型、配置与环境变量共同决定具体规则如下模型 Dump、单算子数据 Dump、溢出算子 Dump目录由配置文件中的dump_path指定环境变量不会覆盖该路径算子信息统计目录由aclopStartDumpArgs(uint32_t dumpType, const char *path)的path参数指定该接口只输出算子信息文件不输出张量数据文件当前输出路径查询可调用acldumpGetPath(acldumpType dumpType)查询某 Dump 类型的当前输出路径异常算子 Dump 根路径为dumpPath/extra-info/data-dump/deviceId/其路径优先级为ASCEND_DUMP_PATHASCEND_WORK_PATH 配置文件中的dump_path 当前目录./也可调用acldumpGetExceptionInfoPath(char *path, size_t maxLen)查询。各 Dump 类型的路径定位方式汇总类型说明路径定位方式模型 Dump导出模型中算子的输入输出数据配置文件中的dump_path单算子数据 Dump导出单个算子的输入输出张量数据配置文件中的dump_path算子信息统计导出算子信息文件算子类型、属性、输入输出 format、数据类型、shape 等aclopStartDumpArgs的path参数溢出算子 Dump导出溢出算子的输入输出数据配置文件中的dump_path异常算子 Dump导出异常算子的输入、输出、workspace、Tiling 等信息ASCEND_DUMP_PATH、ASCEND_WORK_PATH、配置文件dump_path或当前目录./下的dumpPath/extra-info/data-dump/deviceId/八、Dump 文件转换与数据分析8.1 张量 Dump 文件转换使用msaccucmp.py convert将张量 Dump 文件转换为便于查看的格式以下示例以 NumPy 为目标msaccucmp.py convert -d dump_file -out output_dir注意aclopStartDumpArgs生成的算子信息文件不适用于上述张量 Dump 转换命令。转换完成后用 Python 直接查看 NumPy 数据import numpy as np data np.load(converted_file.npy) print(data.shape) print(data.dtype) print(data)8.2 大数据量下的快速体检当数据量较大时应优先检查 shape、dtype、最大值、最小值以及是否包含 NaN 或 Inf而不是直接打印全部数据import numpy as np data np.load(converted_file.npy) print(shape:, data.shape) print(dtype:, data.dtype) print(min:, np.nanmin(data)) print(max:, np.nanmax(data)) print(has_nan:, np.isnan(data).any()) print(has_inf:, np.isinf(data).any())这套先 shape/dtype/范围/异常值再数值比对的顺序与后文的分析建议一脉相承能够显著减少精度问题排查时的无效操作。九、回调字段与张量字段详解9.1acldumpChunk回调字段注册acldumpRegCallback回调后回调函数可通过acldumpChunk获取分块chunk的 Dump 数据。各字段含义与建议如下字段含义分析建议fileNameDump 数据原本计划写入的绝对文件名用于按文件名合并同一张量或同一次 Dump 的分块bufLendataBuf的字节长度用于判断当前回调携带的数据量isLastChunk是否为最后一个分块0否1是只有收到最后一个分块后文件数据才算完整offset当前分块写入文件时使用的偏移量-1表示追加用于按偏移量还原分块数据flag保留标志位当前未定义具体标志通常只需记录dataBufDump 数据内容地址按bufLen读取字节数据再结合文件名或元数据解析9.2acldumpTensorInfo张量字段在异常算子 Dump 或自定义张量保存场景中acldumpTensorInfo的关键字段如下字段含义分析建议type张量类型如输入、输出用于判断数据在算子中的角色tensorSize张量数据大小字节与 shape 和 dataType 推算的结果比对判断数据是否完整format张量格式与算子期望格式比对排查格式不匹配问题dataType张量数据类型转换或查看原始字节时必须使用tensorAddr张量数据地址用于标识要保存的数据地址addrType张量地址类型调用acldumpSaveExceptionInfo时必须为ACL_DUMP_ADDR_RAW表示tensorAddr是 Device 上的原始数据地址placement张量数据放置位置调用acldumpSaveExceptionInfo时必须为ACL_DUMP_PLACEMENT_DEVICE表示读取 Device 侧数据shapeNumshape中有效维度的数量不得超过 25否则接口返回ACL_ERROR_INVALID_PARAM不设置或为 0 时保存文件中当前 shape 为空originShapeNumoriginShape中有效维度的数量不得超过 25在动态 shape 或格式转换场景下需与originShape的有效维度一致shape张量当前 shape仅前shapeNum个维度有效可与模型或算子的输入输出规格比对originShape张量原始 shape仅前originShapeNum个维度有效用于在动态 shape 或格式转换场景下追溯原始维度十、Dump 问题定位的实战建议综合 dump_artifact_analysis_en.md 与各示例的实际用途可按以下顺序展开分析先定位文件根据路径优先级、配置文件dump_path或 API 返回的路径确认文件是否按预期生成再选择需要转换和查看的文件精度问题先查元数据比对 shape、dataType、format 是否符合预期再比较数值差异避免在元数据错误的情况下误判数值结果异常算子 Dump 结合日志先查看异常算子名称、输入、输出、workspace 与 Tiling 信息再结合 Runtime 日志或 AI Core Error 信息定位问题分块数据先还原再分析对回调方式接收的分块数据必须依据fileName、offset、isLastChunk还原出完整文件后再进行分析切忌对单个分块直接下结论。十一、小结CANN Runtime 的 adump 示例目录以四个递进示例完整覆盖了 Dump 能力的不同打开方式aclopStartDumpArgs面向算子信息统计与单算子参数导出acldumpRegCallback面向进程内实时接收分块数据aclmdlInitDump/aclmdlSetDump面向配置文件驱动的模型级 DumpacldumpGetExceptionInfoPath/acldumpSaveExceptionInfo面向异常场景下自定义张量的主动保存。配合acldumpGetPath的路径查询能力与msaccucmp.py convert的转换工具链开发者可以在算子精度、异常与溢出排查中快速建立开启 Dump → 定位文件 → 转换数据 → 校验元数据 → 数值比对的完整工作流。更多 API 的调用顺序与参数约束可进一步参考 Dump 配置 API 参考文档。赞分享CANNAscend人工智能任务调度【免费下载链接】runtime本项目提供CANN运行时组件和维测功能组件。项目地址https://gitcode.com/cann/runtime点击查看免费下载相关推荐CANN Runtime 回调式 Dump 实战基于 acldumpRegCallback 解析单算子 Dump 数据块CANN Runtime 回调式 Dump 实战基于 acldumpRegCallback 解析单算子 Dump 数据块 导读 本文以 CANN RuntimCANNAscend人工智能任务调度CANN Runtime 算子信息 Dump 实战基于 aclopStartDumpArgs 的单算子执行与算子参数落盘CANN Runtime 算子信息 Dump 实战基于 aclopStartDumpArgs 的单算子执行与算子参数落盘 导读 本文围绕 CANN/runtiCANNAscend人工智能任务调度CANN Runtime 单算子 AICore 参数 Dump 实践基于 aclopStartDumpArgs 的算子信息落盘指南CANN Runtime 单算子 AICore 参数 Dump 实践基于 aclopStartDumpArgs 的算子信息落盘指南 导读 本文基于 CANN/CANNAscend人工智能任务调度上一篇推荐开源项目log4cplus - 强大的C日志库下一篇Tess4J核心功能解析从图片到PDF的OCR全流程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

单头C++11任务调度器:线程池与内存序的并发实践

单头C++11任务调度器:线程池与内存序的并发实践

简介:单头C11任务调度程序是一款面向中高级C开发者的轻量级并发任务管理工具,适合在服务器、桌面应用或工具脚本中管理大量并发任务。它基于C11标准库的线程、异步任务和互斥等并发原语,实现了任务队列、线程池与异步调度机制,并以…

2026/9/20 13:51:33 阅读更多 →
PicoClaw MCP Server CLI 完全指南:用 `picoclaw mcp` 管理 MCP 服务器配置

PicoClaw MCP Server CLI 完全指南:用 `picoclaw mcp` 管理 MCP 服务器配置

PicoClaw MCP Server CLI 完全指南:用 picoclaw mcp 管理 MCP 服务器配置 【免费下载链接】picoclaw Tiny, Fast, and Deployable anywhere — automate the mundane, unleash your creativity 项目地址: https://gitcode.com/gh_mirrors/pi/picoclaw PicoCl…

2026/9/20 13:50:32 阅读更多 →
站点地图域名一致性检查:Front-End-Checklist 如何保证 sitemap 所有 URL 落在正确域名与协议上

站点地图域名一致性检查:Front-End-Checklist 如何保证 sitemap 所有 URL 落在正确域名与协议上

站点地图域名一致性检查:Front-End-Checklist 如何保证 sitemap 所有 URL 落在正确域名与协议上 【免费下载链接】Front-End-Checklist 🗂 The essential checklist for modern web development, for humans and AI agents 项目地址: https://gitcode.…

2026/9/21 16:44:49 阅读更多 →

最新新闻

MATLAB晶粒生长模拟:蒙特卡洛Potts模型实现与应用

MATLAB晶粒生长模拟:蒙特卡洛Potts模型实现与应用

1. 项目背景与核心价值在材料科学研究领域,晶粒组织的演化过程直接影响着金属、陶瓷等材料的力学性能和物理特性。传统实验方法需要耗费大量时间和资源进行金相制备、热处理和显微观察,而计算机模拟技术为研究者提供了一种高效、低成本的替代方案。这个M…

2026/9/22 0:07:44 阅读更多 →
5年大厂面试官揭秘:奇拿面试题新手避坑指南

5年大厂面试官揭秘:奇拿面试题新手避坑指南

5年大厂面试官揭秘:奇拿面试题新手避坑指南 官方文档翻了三遍还是像看天书?别慌,这就是典型的【奇拿】场景。很多【新手避坑】指南只讲理论,却忽略了大厂面试官真正想听的那句人话。今天我就把底裤都扒了,带你用最短时间抓住【奇拿】考点的核心,让你下…

2026/9/22 0:07:44 阅读更多 →
qq恢复网站入门到精通:3步避坑,选型不踩雷

qq恢复网站入门到精通:3步避坑,选型不踩雷

qq恢复网站入门到精通:3步避坑,选型不踩雷 官方文档翻了三遍还是晕?别急,谁第一次看QQ找回账号的后台逻辑不是这样。官方流程太冗长,关键节点藏得深,导致你卡在“验证方式”和“数据同步”上,根本抓不住重点。今天咱们不念经,直接拆解从0到1搭…

2026/9/22 0:07:44 阅读更多 →
Excel VBA中Range.Value数组特性解析与应用

Excel VBA中Range.Value数组特性解析与应用

1. 深入理解VBA中Range.Value返回的数组特性在Excel VBA开发中,Range对象的Value属性是最基础也是最常用的功能之一。但许多开发者(包括我在早期)都曾在这个看似简单的操作上栽过跟头。今天我们就来彻底剖析这个日常操作背后的机制。关键发现…

2026/9/22 0:07:44 阅读更多 →
3个坑解决版本升级API全变:手写实现如何打广告核心逻辑

3个坑解决版本升级API全变:手写实现如何打广告核心逻辑

3个坑解决版本升级API全变:手写实现如何打广告核心逻辑 版本升级后 API 全变了,你写的代码直接报 AttributeError ,是不是瞬间血压飙升?别慌,这种时候硬啃新文档不如 手写实现 底层逻辑来得快。…

2026/9/22 0:07:44 阅读更多 →
ISO9001体系高频面试题:3年实战避坑指南与代码级解析

ISO9001体系高频面试题:3年实战避坑指南与代码级解析

ISO9001体系高频面试题:3年实战避坑指南与代码级解析 昨天刚带一个新人做审计,他手里拿着从网上复制的《质量手册》草稿,问我在“4.1…

2026/9/22 0:06:44 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →