Linux 实时优化:禁用休眠与锁定 CPU 高性能电源管理实战教程
一、简介1.1 技术背景Linux 原生电源管理系统是为笔记本、通用服务器设计核心目标是降低功耗、减少发热包含两大核心机制系统休眠 / 挂起Suspend、CPU 动态调频与节能 C/P 状态。 在通用桌面、云服务器场景下电源节能收益显著但在工业硬实时场景中所有电源状态切换都会引入不可控毫秒级调度抖动成为周期任务超时、设备控制失效的核心诱因。系统休眠 Suspend触发整机内存挂起、硬件断电、时钟重置唤醒过程会产生数十毫秒中断阻塞实时任务直接超时CPU 深度 C 休眠状态内核空闲时将 CPU 核心断电休眠任务唤醒需要重新上电、缓存重建单次唤醒延迟可达几百微秒schedutil 动态调频负载变化时升降 CPU 电压 / 主频电压切换存在硬件延迟高频小幅负载波动会持续引入随机抖动P 状态节能低频运行时 CPU 运算延迟升高突发实时任务无法瞬间满速响应。大量工控、机器人开发者踩坑即便开启 PREEMPT_RT 全域抢占、CPU 隔离、中断线程化cyclictest 测试依旧存在几百微秒甚至毫秒级延迟峰值根源就是未关闭全套电源节能机制。 本文完整讲解电源管理实时优化全套方案内核关闭休眠编译、GRUB 屏蔽睡眠、永久锁定 CPU 为 performance 最高频模式、禁用 CPU C/P 节能状态从硬件电源层面消除抖动来源构建无电源干扰的确定性实时运行环境。1.2 典型落地应用场景工业伺服 / EtherCAT 控制系统125us 周期闭环任务不允许 CPU 上电、调频带来周期漂移机器人运动控制单元编码器高频采样电压切换抖动会造成电机震荡自动驾驶嵌入式设备感知 / 决策硬实时任务电源波动引发时序异常高精度采集仪器AD/DA 定时采样CPU 低频会造成采样精度丢失低延迟金融交易节点杜绝调频带来报文处理时延波动。1.3 学习本文核心价值彻底理清休眠、C/P 状态、动态调频三类电源机制如何破坏实时确定性掌握两套优化方案内核编译永久关闭休眠、运行时 sysfs 一键锁定高性能学会 GRUB 内核参数固化电源配置实现开机自动禁用所有节能通过 cyclictest 量化对比节能 / 高性能两种模式的延迟差异直观验证优化收益补齐 PREEMPT_RT 整套实时调优体系搭配 CPU 隔离、中断亲和、无调试内核实现极致低抖动。二、核心概念与电源延迟原理2.1 基础术语释义表格术语通俗解释CONFIG_SUSPEND内核休眠总开关开启后支持整机内存挂起、待机CPU C-StateCPU 空闲休眠层级C0 全速运行C1~C6 逐级深度断电休眠CPU P-StateCPU 运行频率档位P0 最高频Pn 低频节能档位schedutilLinux 默认动态调频器负载升降自动切换主频电压performance固定最高频率调频策略无动态电压切换mem_sleep系统休眠模式s2idle / 深度待机实时设备必须禁用cpufreqLinux CPU 调频子系统负责管理主频与电压2.2 各类电源机制对实时性的破坏原理2.2.1 系统休眠 CONFIG_SUSPEND开启休眠后系统任意时刻可能因闲置触发挂起流程挂起阶段冻结所有任务、关闭外设时钟、切断 CPU 供电全程数十毫秒不可抢占唤醒阶段硬件重新初始化、缓存刷新、中断恢复唤醒延迟波动极大工控设备运行中若触发休眠直接导致控制总线断连、设备故障。延迟危害单次休眠唤醒产生 5~30ms 超大延迟峰值完全突破工业实时指标。2.2 CPU C-State 深度休眠CPU 无任务时自动进入 C1~C6 休眠核心断电、L1/L2 缓存失效实时任务突然就绪时CPU 需要重新上电、重建缓存唤醒耗时 200~1000us多核心隔离场景下闲置实时核心频繁进出 C 状态随机引入抖动高并发中断场景C 状态频繁切换叠加中断抢占抖动持续放大。2.3 schedutil 动态调频机制负载波动时内核下发电压 / 频率切换指令硬件电压调节器切换存在固有硬件延迟几十微秒窗口滑动负载检测会持续小幅升降频反复引入切换抖动实时任务突发高负载时CPU 无法瞬间拉满主频前几帧周期运算延迟飙升。2.4 P-State 低频节能档位系统空闲时自动降频至低 P 档位实时任务启动初期运算速度不足周期计算耗时变长导致任务截止时间超时。2.3 节能模式 VS 高性能模式指标对比表格电源配置方案典型最大调度延迟抖动稳定性功耗表现适用场景默认全节能休眠 C 状态 schedutil3~10ms极差、随机大峰值低功耗笔记本、普通服务器仅关闭休眠保留动态调频500~2000us中等波动中等非严格软实时设备全套电源优化禁休眠 C 关闭 performance80~200us极小稳定较高工业硬实时、机器人三、环境准备3.1 软硬件环境硬性要求操作系统Ubuntu20.04/22.04 LTS、Debian11、CentOS Stream8/9内核版本5.15 / 6.1 LTS支持完整 cpufreq、休眠配置推荐 PREEMPT_RT 实时内核硬件x86/ARM 物理机虚拟机电源管理模拟不完整仅用于学习内存编译内核≥4G磁盘空余≥20G权限内核编译、sysfs 电源配置、GRUB 修改全部需要 root/sudo。3.2 全套工具一键安装可直接复制bash运行# 更新软件源 sudo apt update -y # 内核编译全套依赖 sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf dwarves git wget -y # CPU调频、实时延迟测试工具 sudo apt install cpufrequtils rt-tests htop -y工具说明cpufrequtilscpufreq-set/cpufreq-info用于切换调频策略、查看当前频率rt-testscyclictest量化测试电源优化前后调度延迟htop可视化查看 CPU 实时负载与运行频率。3.3 环境前置校验命令bash运行# 查看当前CPU调频策略 cpufreq-info # 查看系统休眠支持状态 cat /sys/power/mem_sleep # 查看CPU C-State可用档位 cat /sys/devices/system/cpu/cpu0/cpuidle/available_governors # 延迟测试工具验证 cyclictest --version输出无报错即代表环境就绪。四、完整实战三层电源实时优化方案本文提供三层递进优化方案临时运行时配置测试用、GRUB 永久内核参数快速落地、内核编译彻底禁用休眠量产最优。方案一临时 sysfs 配置即时生效重启失效用于测试验证适合调试阶段快速对比节能 / 高性能延迟差异所有命令一键批量执行。步骤 1全局锁定 CPU 为 performance 最高频bash运行# 所有CPU核心切换至固定高性能模式 sudo cpufreq-set -r -g performance # 批量写入最大频率禁止降频 MAX_FREQ$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq) for cpu in /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq; do echo $MAX_FREQ | sudo tee $cpu echo $MAX_FREQ | sudo tee ${cpu%max_freq}scaling_min_freq done作用所有 CPU 永久锁定硬件最高主频彻底消除 P-State 低频切换、schedutil 动态升降频抖动。步骤 2禁用 CPU 全部 C-State 休眠bash运行# 关闭所有CPU空闲休眠档位强制CPU保持C0全速 for cpu in /sys/devices/system/cpu/cpu*/cpuidle/state*disable; do echo 1 | sudo tee $cpu done作用CPU 空闲时不进入任何断电休眠消除唤醒缓存重建延迟。步骤 3禁用整机系统休眠与待机bash运行# 屏蔽系统待机、s2idle深度休眠 sudo sh -c echo none /sys/power/mem_sleep # 阻止系统自动触发挂起 sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target步骤 4验证临时配置是否生效bash运行# 确认调频策略为performance cpufreq-info | grep governor # 确认休眠模式为none cat /sys/power/mem_sleep # 查看C-State全部关闭 cat /sys/devices/system/cpu/cpu0/cpuidle/state0/disable方案二GRUB 内核参数永久固化推荐量产快速方案临时配置重启全部失效通过内核启动参数开机自动禁用所有电源节能无需重新编译内核适配大部分工控设备。步骤 1编辑 GRUB 启动配置bash运行sudo vim /etc/default/grub修改GRUB_CMDLINE_LINUX_DEFAULT字段追加全套电源禁用参数plaintextGRUB_CMDLINE_LINUX_DEFAULTquiet splash cpufreq.default_governorperformance idlepoll mem_sleepnone nohzoff参数逐行解释cpufreq.default_governorperformance开机默认锁定高性能调频器idlepoll禁用 CPU C-State 休眠空闲时轮询不进入断电mem_sleepnone彻底关闭系统休眠待机nohzoff关闭空闲滴答时钟减少电源状态切换触发。步骤 2更新 GRUB 并重启生效bash运行sudo update-grub sudo reboot步骤 3重启校验内核参数bash运行cat /proc/cmdline输出包含全部新增电源参数即配置永久生效。方案三内核编译彻底关闭休眠 CONFIG_SUSPEND高端量产最优对于高确定性精密设备直接在内核编译层移除休眠功能从根源杜绝挂起唤醒风险。步骤 1 准备 RT 内核源码沿用 5.15 LTSbash运行mkdir ~/rt_power_kernel cd ~/rt_power_kernel wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.15.100.tar.xz wget https://cdn.kernel.org/pub/linux/kernel/v5.x/rt-patches/patch-5.15.100-rt64.xz tar -xf linux-5.15.100.tar.xz xz -d patch-5.15.100-rt64 cd linux-5.15.100 patch -p1 ../patch-5.15.100-rt64 cp /boot/config-$(uname -r) .config步骤 2 menuconfig 关闭休眠配置bash运行make menuconfig路径Power management options ---取消勾选Suspend to RAM (CONFIG_SUSPEND)Hibernation (CONFIG_HIBERNATION)Suspend to disk / standby同时确认 CPU 调频默认策略设置为 performance。步骤 3 编译安装内核bash运行make -j$(nproc) sudo make modules_install sudo make install sudo update-grub sudo reboot该内核从底层移除休眠逻辑不存在任何挂起唤醒流程实时确定性最高。4.4 延迟对比实测实验统一测试命令对比优化前后抖动bash运行# 最高优先级实时任务持续120秒压测 cyclictest -p 99 -t 1 -D 120默认节能模式最大延迟 4000~10000us随机出现毫秒峰值GRUB 固化高性能模式最大延迟稳定 100~200us无超大抖动内核禁用休眠 全电源关闭抖动最低工业精密设备首选。五、常见问题与解答Q1 执行 cpufreq-set 提示找不到 performance 调节器答内核未开启 cpufreq_performance 驱动menuconfig 开启 CPUFreq performance 驱动或升级 5.15 以上 LTS 内核。Q2 GRUB 添加 idlepoll 后 CPU 空载功耗上升答正常取舍idlepoll 让 CPU 持续 C0 全速轮询功耗小幅提升换取无 C-State 唤醒抖动工业设备优先时序而非功耗。Q3 关闭休眠后笔记本无法睡眠答本套优化方案面向工控 / 机器人实时设备笔记本桌面不建议使用普通电脑保留默认电源配置。Q4 ARM 嵌入式设备执行关闭 C-State 命令无效答ARM 平台电源由设备树管控需修改设备树屏蔽 cpu idle 节点或使用内核启动参数cpuidle.off1全局禁用。Q5 锁定 performance 后 CPU 温度过高答工业设备散热设计满足满载需求若发热超标可适度调低 scaling_max_freq禁止切回动态调频。Q6 重启后调频策略变回 schedutil答未使用 GRUB 固化参数仅执行临时 sysfs 命令必须修改cpufreq.default_governorperformance内核参数。Q7 关闭全部 C-State 后实时任务延迟依旧偏高排查顺序未开启 PREEMPT_RT、内核开启 ftrace 调试、未做 CPU 隔离、中断未亲和绑定叠加全套实时优化即可达标。六、实践建议与生产最佳实践6.1 分场景电源优化选型规范工业伺服 / 机器人 / 自动驾驶量产内核编译关闭 CONFIG_SUSPEND GRUB 全套高性能参数彻底屏蔽休眠与节能软实时多媒体设备GRUB 锁定 performance保留基础 C-State平衡功耗与抖动通用服务器 / 桌面使用默认 schedutil 节能模式无需改动电源配置。6.2 量产设备开机脚本标准化若设备无法修改 GRUB可写入开机自启脚本开机自动锁定高性能电源bash运行# /etc/rc.local #!/bin/bash # 锁定CPU最高频 MAX$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq) cpufreq-set -r -g performance for cpu in /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq; do echo $MAX $cpu done # 关闭C-State for f in /sys/devices/system/cpu/cpu*/cpuidle/state*/disable;do echo 1 $f; done # 禁用休眠 echo none /sys/power/mem_sleep exit 0添加执行权限chmod x /etc/rc.local并配置开机自启。6.3 实时系统配套电源调优红线实时设备绝对禁止 schedutil/ondemand 动态调频高精度周期任务必须关闭 CPU 所有 C-State 休眠工控内核编译阶段直接关闭 Suspend 休眠功能杜绝隐患 4 BIOS 层面同步关闭 CPU 节能、深度睡眠选项双层防护。6.4 实时全栈优化组合电源 底层调度电源优化是实时调优基础需搭配整套方案 1 PREEMPT_RT 全域抢占 中断线程化 2 isolcpus CPU 核心隔离中断亲和分区绑定 3 关闭 ftrace、debug 所有内核调试跟踪 4 电源层禁休眠、C-State 关闭、锁定 performance 主频 5 任务层SCHED_DEADLINE 周期调度、优先级分层。6.5 避坑指南1 不要为了省电保留动态调频微小功耗节约会导致控制任务失效 2 虚拟机电源模拟不完整无法真实复现硬件调频抖动生产必须物理机 3 不要仅关闭休眠而保留 C-State闲置核心唤醒抖动依旧会超标 4 ARM 与 x86 电源参数存在差异ARM 优先使用 cpuidle.off 内核参数。七、总结与应用场景延伸7.1 全文核心知识点复盘1 Linux 默认电源管理包含休眠、CPU C/P 状态、动态调频三类节能机制硬件切换会引入毫秒级调度抖动破坏实时时序确定性 2 三层优化方案临时 sysfs 调试、GRUB 内核参数永久配置、内核编译彻底移除休眠适配不同量产需求 3 核心优化动作锁定 CPU performance 最高频、禁用 CPU 全部空闲休眠、屏蔽整机挂起待机 4 量化测试证明全套电源优化可将最大延迟从数毫秒压缩至 200us 以内满足工业 EtherCAT、伺服控制硬实时指标。7.2 工程落地价值大量工控项目调试周期漂移、电机震荡、采样丢包问题底层根源是未做电源管理优化。很多开发者只调整任务优先级、CPU 绑定忽略 CPU 调频、休眠带来的硬件级延迟干扰。 掌握本套电源标准化配置可快速产出时序稳定的实时固件是嵌入式工控、机器人开发工程师必备量产调优能力能大幅降低设备现场故障概率。7.3 技术体系延伸本文属于 PREEMPT_RT 完整实时调优体系中硬件电源优化模块可搭配 1 四种内核抢占模型选型 2 中断线程、中断亲和性配置 3 isolcpus CPU 隔离降噪 4 内核调试功能禁用 5 CFS 层次化带宽 hierarchical_quota 资源隔离。 整套技术栈从内核调度、中断、CPU 资源、电源硬件、任务带宽全维度消除抖动可将工业设备调度抖动稳定控制在百微秒以内满足高端精密控制、自动驾驶严苛实时需求。

相关新闻

IBIS陆地生态系统模型从环境搭建、多源数据预处理到水-热-碳-氮耦合模拟、模型验证与论文成果衔接全链路实战应用

IBIS陆地生态系统模型从环境搭建、多源数据预处理到水-热-碳-氮耦合模拟、模型验证与论文成果衔接全链路实战应用

在全球气候变化加剧、碳中和目标紧迫的背景下,定量理解陆地生态系统对环境变化的响应与反馈机制已成为地球系统科学和生态学研究的核心议题。IBIS(Integrated Biosphere Simulator)作为国际上具有代表性的动态全球植被模型(DGVM&a…

2026/10/12 23:20:45 阅读更多 →
编写程序实时记录情绪波动节点,关联当日工作效率,总结情绪规律,规划高创造力时段。

编写程序实时记录情绪波动节点,关联当日工作效率,总结情绪规律,规划高创造力时段。

情绪-效率关联分析系统:用 Python 量化你的创造力节律心理健康与创新能力课程 技术实践工具零依赖 本地优先 隐私安全一、实际应用场景描述这是一套为"心理健康与创新能力"课程设计的技术实践工具。它的使用场景非常具体:你是一名知识工作者…

2026/10/14 21:33:24 阅读更多 →
LangChain 实操指南:从零构建生产级 LLM 应用

LangChain 实操指南:从零构建生产级 LLM 应用

📋 文章导航 前言:为什么你需要 LangChain?第一章:环境搭建与核心概念第二章:Model I/O —— 与大模型对话的基础第三章:检索增强生成(RAG)—— 让LLM访问你的私有数据第四章&#x…

2026/10/13 3:25:48 阅读更多 →

最新新闻

rsync远程文件同步实战:增量算法、参数避坑与自动化备份方案

rsync远程文件同步实战:增量算法、参数避坑与自动化备份方案

rsync远程文件同步这事儿,我是被逼着认真研究的。之前负责一个模拟项目X的数据分发,每天要把一批几百GB的日志从生产目录同步到另一台备份服务器。一开始图省事用scp全量拷贝,结果磁盘I/O和带宽吃紧,同步窗口越拉越长,…

2026/10/14 21:41:36 阅读更多 →
GitHub私有仓库协作保姆级教程:从邀请协作者到权限配置与故障排查

GitHub私有仓库协作保姆级教程:从邀请协作者到权限配置与故障排查

先说结论:直接把私有仓库的地址发给对方,并不会让“配合一起开发”自动发生。很多人第一次操作是在仓库页面上复制了一个https://github.com/你的用户名/仓库名.git发给同事,结果对方点开是个404,或者 clone 之后 push 被拒绝。这…

2026/10/14 21:41:36 阅读更多 →
FusionCompute 8.0.0 部署实战:从解压到纳管的避坑指南

FusionCompute 8.0.0 部署实战:从解压到纳管的避坑指南

简介:FusionCompute_Installer-8.0.0.zip 面向企业级虚拟化平台的学习者与运维人员,提供华为 FusionCompute 8.0.0 的完整安装与部署组件,帮助读者搭建资源池化、自动化运维的云计算基础设施环境。压缩包共 327 个文件,约 270.58M…

2026/10/14 21:41:36 阅读更多 →
SYNBO CLUB预上线解读:KOL冷启动的底层逻辑与运营策略

SYNBO CLUB预上线解读:KOL冷启动的底层逻辑与运营策略

SYNBO CLUB 的预上线消息一出,我所在的运营圈子里已经有人在讨论:全球 KOL 抢滩入驻,这阵仗比很多产品正式上线还热闹。我做了多年用户增长和社区冷启动,看到这类标题第一反应其实是警惕——预上线阶段终于被越来越多人重视是好事…

2026/10/14 21:41:36 阅读更多 →
Paged.js 实战:浏览器端生成印刷级 PDF 的分页控制与避坑指南

Paged.js 实战:浏览器端生成印刷级 PDF 的分页控制与避坑指南

简介:这是一份面向前端开发者的 paged.js 系统教程资源,聚焦如何用 JavaScript 将 HTML 内容转换为带优雅分页效果的 PDF 文档,适合需要在浏览器端生成高质量打印或导出文档的开发者学习。压缩包共 32401 个文件,约 40.16MB&#…

2026/10/14 21:41:36 阅读更多 →
深入解析 docker-ce 中 google.golang.org/genproto:Go 生成的 Protobuf 与 gRPC API 包

深入解析 docker-ce 中 google.golang.org/genproto:Go 生成的 Protobuf 与 gRPC API 包

容器运行时云原生 【免费下载链接】docker-ce :warning: This repository is deprecated and will be archived (Docker CE itself is NOT deprecated) see the https://github.com/docker/docker-ce/blob/master/README.md :warning: 项目地址: https://gitcode.co…

2026/10/14 21:40:34 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →