当前位置: 首页 > article >正文

Linux RT 调度器的 select_task_rq:RT 任务的CPU选择

简介在 Linux 多核 SMP 架构下调度器不只是简单完成任务时间片分配与优先级抢占任务创建、唤醒场景下的 CPU 核选择是决定实时系统延迟、缓存命中率、系统负载均衡的核心环节。select_task_rq 作为调度类统一抽象接口是内核为任务选定运行 CPU 的入口函数而select_task_rq_rt是 RT 实时调度类专属实现专门负责 SCHED_FIFO、SCHED_RR 类型实时任务的核选择决策。工业控制、车载自动驾驶、工业网关、宇航级嵌入式设备、音视频低延迟处理等场景均高度依赖 Linux RT 实时调度能力。这类场景对任务调度抖动、上下文切换延迟、缓存失效开销极其敏感。如果 RT 任务 CPU 选核策略不合理会出现高优先级任务被绑定在满载核心、跨核缓存频繁刷新、任务频繁迁移抖动、多核负载失衡等问题直接导致业务超时、控制逻辑错乱、实时性指标不达标。对于底层内核开发、嵌入式驱动工程师、实时系统架构师、Linux 运维调优人员来说吃透select_task_rq_rt底层逻辑能从根源上理解 RT 任务选核、负载均衡、缓存局部性兼顾的设计思想可自主定制调度亲和策略、优化实时任务部署架构、排查调度延迟疑难问题同时也是撰写内核调度相关论文、技术报告、方案设计的核心理论支撑点。本文从资深内核工程师视角结合内核源码、实战调试、代码示例完整拆解该函数运行机制剥离碎片化网上解读还原原生内核设计逻辑。核心概念1. RT 实时任务基础特性Linux 内核调度类按优先级排序stop deadline RT CFS idleRT 调度类优先级远高于普通 CFS 任务。调度策略SCHED_FIFO先来先服务、SCHED_RR时间片轮转静态优先级范围 1~99数值越大优先级越高抢占特性高优先级 RT 任务可无条件抢占低优先级 RT 任务和所有 CFS 普通任务不依赖时间片运行约束默认不主动让出 CPU除非任务阻塞、主动休眠或被更高优先级任务抢占。2. select_task_rq 核心定位内核调度框架为不同调度类抽象统一接口struct sched_class其中select_task_rq是函数指针各调度类自行实现专属选核逻辑CFS 调度类select_task_rq_fair侧重负载均衡与能效调度RT 调度类select_task_rq_rt侧重实时性优先、缓存局部性次之、轻度负载均衡调用场景仅在新任务创建 (FORK)、任务唤醒 (WAKE)两大核心场景触发其余负载均衡迁移场景不走该接口。3. 关键术语释义rt_rq每个 CPU 运行队列struct rq内嵌的 RT 专属运行队列维护当前 CPU 上所有就绪 RT 任务sd_flag调度域标志区分选核触发场景SD_BALANCE_FORK任务创建、SD_BALANCE_WAKE任务唤醒缓存局部性任务尽量绑定上次运行的 CPU利用 L1/L2/L3 缓存热数据减少跨核缓存刷新开销CPU 优先级掩码内核为每个 CPU 维护实时任务负载优先级筛选低负载、可即时抢占的候选 CPU任务亲和性cpumask掩码限定任务允许运行的 CPU 核心选核逻辑必须严格遵从亲和性配置。环境准备1. 软硬件环境要求环境类型版本 / 配置说明操作系统Ubuntu 20.04 / CentOS 7开启 PREEMPT-RT 实时补丁内核版本 5.4/5.10 LTS硬件平台X86_64 多核 CPU4 核及以上便于观察多核选核与负载均衡ARM64 开发板树莓派 4、飞腾均可适配开发工具gcc 9.0、gdb、kgdb、perf、trace-cmd、内核源码树 5.4.150辅助工具sysctl、taskset、chrt、ps、top、htop 调度调试工具2. 环境配置步骤安装编译依赖工具链# Ubuntu 环境 sudo apt update sudo apt install gcc make libncurses5-dev bison flex libssl-dev gdb perf trace-cmd # CentOS 环境 sudo yum install gcc make ncurses-devel bison flex openssl-devel gdb perf作用安装内核编译、源码调试、调度轨迹抓取全套依赖适配内核源码编译与动态调试。下载对应内核源码并切换到 5.4 版本git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git cd linux git checkout v5.4.150作用选用工业界最常用的 5.4 LTS 内核select_task_rq_rt逻辑稳定无大幅重构适合学习与工程落地。开启 PREEMPT-RT 实时配置在内核make menuconfig中开启Kernel Features - Preemption Model - Fully Preemptible Kernel (RT)保存配置后编译安装内核重启系统生效。调试环境配置# 允许非root用户抓取调度轨迹 sudo sysctl kernel.perf_event_paranoid-1 # 关闭CPU节能调频避免干扰RT调度延迟 sudo echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor应用场景select_task_rq_rt的 CPU 选核逻辑是所有 Linux 实时业务的底层支撑落地场景高度聚焦工业实时与低延迟场景。在车载自动驾驶域控制器中底盘控制、雷达数据解析、车身姿态计算等高优先级 RT 任务依靠该函数合理分配到空闲核心避免与娱乐系统任务争抢 CPU保障控制指令毫秒级响应在工业 PLC、运动控制网关场景多轴电机同步控制任务创建和唤醒时选核逻辑优先绑定本地缓存核心降低调度抖动保证运动控制插补算法稳定运行在宇航嵌入式设备、轨道交通信号系统中严苛的实时性要求不允许任务跨核频繁迁移select_task_rq_rt兼顾亲和性与负载均衡规避多核调度失衡引发的系统异常此外在音视频实时编码、低延迟网络服务器场景唤醒 RT 任务时优先选择低负载核心平衡缓存命中与多核负载兼顾性能与延迟表现。实际案例与步骤步骤 1内核源码定位 select_task_rq_rt 函数1.1 源码路径与核心框架内核源码路径kernel/sched/rt.c调度类结构体中 RT 调度类的接口绑定// kernel/sched/rt.c const struct sched_class rt_sched_class { .next fair_sched_class, .enqueue_task enqueue_task_rt, .dequeue_task dequeue_task_rt, .pick_next_task pick_next_task_rt, .select_task_rq select_task_rq_rt, // RT任务选核入口 .migrate_task_rq migrate_task_rq_rt, };代码说明该结构体是 RT 调度类的方法集select_task_rq_rt作为专属选核接口被内核调度框架在 FORK、WAKE 场景自动调用。1.2 select_task_rq_rt 主干源码精简剖析static int select_task_rq_rt(struct task_struct *p, int cpu, int sd_flag, int wake_flags) { struct rq *rq; bool sync !!(wake_flags WF_SYNC); // 场景1非创建、非唤醒场景直接返回原CPU不重新选核 if (sd_flag ! SD_BALANCE_FORK sd_flag ! SD_BALANCE_WAKE) return cpu; rq cpu_rq(cpu); // 快速路径优先保持当前CPU利用缓存局部性 // 检查任务亲和性、当前CPU是否可承载该RT任务 if (rt_task_can_keep_cpu(p, cpu)) return cpu; // 慢速路径遍历调度域寻找最优候选CPU // 规则1.遵从cpumask亲和性 2.选择负载最低RT核心 3.可被当前任务即时抢占 cpu find_lowest_rt_rq_cpu(p, cpu); return cpu; }代码逐行注释首先判断调度域标志只处理任务创建、任务唤醒两种场景其余场景直接复用原有 CPU获取当前 CPU 对应的运行队列rq绑定调度队列资源快速路径优先复用原 CPU最大化保留 CPU 缓存热数据这是 RT 调度优先策略若无法保留原 CPU则遍历调度域筛选负载最低、优先级匹配、符合亲和性的目标 CPU 返回。步骤 2关键辅助函数源码解析2.1 rt_task_can_keep_cpu 缓存局部性校验static inline bool rt_task_can_keep_cpu(struct task_struct *p, int cpu) { // 1. 检查任务CPU亲和性是否允许运行在当前CPU if (!cpumask_test_cpu(cpu, p-cpus_allowed)) return false; // 2. 检查当前CPU运行的RT任务优先级是否低于当前任务 if (rt_rq_curr_prio(cpu) p-prio) return false; // 3. 无强制迁移标记允许保留当前CPU return !task_migration_pending(p); }作用实现缓存局部性优先策略只要亲和性允许、当前 CPU 任务优先级更低、无强制迁移就不切换 CPU减少缓存失效开销。2.2 find_lowest_rt_rq_cpu 最优 CPU 筛选static int find_lowest_rt_rq_cpu(struct task_struct *p, int prev_cpu) { int i, target_cpu prev_cpu; int min_prio RT_MAX_PRIO; struct rq *rq; // 遍历所有在线CPU for_each_online_cpu(i) { // 跳过不符合任务亲和性的CPU if (!cpumask_test_cpu(i, p-cpus_allowed)) continue; rq cpu_rq(i); // 获取该CPU上当前运行RT任务的优先级 int curr_prio rt_rq_curr_prio(i); // 筛选优先级更低、负载更轻的CPU if (curr_prio min_prio) { min_prio curr_prio; target_cpu i; } } return target_cpu; }逻辑说明遍历所有在线 CPU严格遵从任务亲和性选出当前运行 RT 任务优先级最低的核心将当前 RT 任务分配过去实现RT 任务负载均衡同时保证高优先级任务可即时抢占目标 CPU。步骤 3实战命令观测 RT 任务选核行为3.1 编写 RT 测试程序绑定 SCHED_FIFO 策略// rt_test.c 实时任务测试代码 #include stdio.h #include stdlib.h #include unistd.h #include sched.h #include pthread.h #define RT_PRIO 80 // 设置高RT优先级 void *rt_task_func(void *arg) { struct sched_param param; param.sched_priority RT_PRIO; // 设置为SCHED_FIFO实时调度策略 if (sched_setscheduler(0, SCHED_FIFO, param) 0) { perror(sched_setscheduler failed); return NULL; } // 死循环模拟实时业务运算 while(1) { usleep(1000); } return NULL; } int main() { pthread_t tid; pthread_create(tid, NULL, rt_task_func, NULL); pthread_join(tid, NULL); return 0; }编译与运行命令gcc rt_test.c -o rt_test -lpthread sudo ./rt_test3.2 查看 RT 任务调度与 CPU 绑定情况# 查看进程调度策略与运行CPU ps -o pid,psr,cmd,cls -p $(pidof rt_test) # 实时监控各CPU负载与RT任务分布 htop # 抓取调度轨迹跟踪select_task_rq_rt调用过程 sudo trace-cmd record -p function -l select_task_rq_rt sudo trace-cmd report作用通过工具观测 RT 任务创建时select_task_rq_rt如何自动分配 CPU、是否复用原有核心、负载均衡后的核分布状态。3.3 手动设置 CPU 亲和性验证选核逻辑# 将RT任务绑定到CPU0、CPU1 sudo taskset -c 0,1 ./rt_test观测结果select_task_rq_rt只会在 0、1 核心中选择不会跨越亲和性掩码分配到其他 CPU验证内核亲和性约束优先级高于负载均衡。步骤 4内核日志打印调试跟踪选核流程修改select_task_rq_rt函数添加内核打印自定义调试日志static int select_task_rq_rt(struct task_struct *p, int cpu, int sd_flag, int wake_flags) { int new_cpu; pr_info(select_task_rq_rt: task%s, pid%d, orig_cpu%d, sd_flag%d\n, p-comm, p-pid, cpu, sd_flag); // 原有逻辑不变 if (sd_flag ! SD_BALANCE_FORK sd_flag ! SD_BALANCE_WAKE) { pr_info(select_task_rq_rt: skip reselect, return cpu%d\n, cpu); return cpu; } if (rt_task_can_keep_cpu(p, cpu)) { pr_info(select_task_rq_rt: keep local cpu%d for cache\n, cpu); return cpu; } new_cpu find_lowest_rt_rq_cpu(p, cpu); pr_info(select_task_rq_rt: reselect cpu from %d to %d\n, cpu, new_cpu); return new_cpu; }重新编译内核并安装运行 RT 测试程序后查看日志dmesg | grep select_task_rq_rt可清晰看到任务创建、唤醒时的原始 CPU、是否复用本地核、重新选核的切换过程完整还原函数执行链路。常见问题与解答Q1为什么 RT 任务不会像 CFS 任务一样频繁跨核负载迁移A1select_task_rq_rt设计核心是实时性 缓存局部性 负载均衡CFS 的select_task_rq_fair会主动做全局负载均衡、频繁迁移任务而 RT 任务仅在创建和唤醒时选核运行过程中极少主动迁移优先保证缓存热命中和调度低抖动避免跨核迁移带来的延迟波动。Q2设置了 CPU 亲和性后select_task_rq_rt 为什么还会在指定核内切换A2亲和性只是允许运行的 CPU 范围不是强制绑定固定核。当亲和性掩码包含多个 CPU 时若原 CPU 上运行更高优先级 RT 任务rt_task_can_keep_cpu校验失败会自动在亲和性范围内选择负载最低的 CPU属于正常选核逻辑。如需固定不切换可将亲和性只设置单个 CPU 核心。Q3开启 PREEMPT-RT 补丁后select_task_rq_rt 逻辑有无变化A3主体选核框架完全不变PREEMPT-RT 仅增强内核态抢占能力不修改 RT 任务 CPU 选核策略仅在调度域负载阈值、任务抢占时机上做微调学习和工程适配无需改动select_task_rq_rt核心逻辑。Q4如何排查 RT 任务调度延迟过大、抖动严重的问题A4首先通过trace-cmd抓取select_task_rq_rt调用轨迹查看是否频繁跨核选核其次检查是否大量高优先级 RT 任务扎堆绑定同一 CPU导致选核无空闲核心最后通过taskset手动拆分任务亲和性干预选核范围平衡多核负载。Q5sd_flag 除了 FORK 和 WAKE 还有哪些取值为什么其他场景不重新选核A5还有SD_BALANCE_IDLE、SD_BALANCE_EXEC等标识这类场景多为普通负载均衡、进程执行替换RT 任务对调度稳定性要求极高重新选核会破坏缓存局部性、引入调度抖动内核设计直接复用原有 CPU不做二次选核。实践建议与最佳实践RT 任务部署优先遵循缓存局部性业务架构设计时尽量将有数据交互的 RT 任务绑定同一 CPU 或同簇 CPU让select_task_rq_rt走快速路径复用本地核最大化 L2/L3 缓存命中率降低调度延迟。高优先级 RT 任务分散绑定多核避免 99、95 等高优先级任务集中在同一个 CPU 核心否则后续 RT 任务选核时无空闲低负载核心会被迫抢占业务任务引发控制逻辑卡顿手动通过taskset拆分亲和性辅助内核选核均衡负载。调试优先使用 trace-cmd 而非内核打印频繁添加pr_info内核打印会干扰 RT 调度延迟生产环境严禁使用开发调试阶段用trace-cmd抓取函数调用轨迹无侵入式分析select_task_rq_rt执行流程。禁止对 RT 任务开启 CPU 调频节能CPU 节能调频会改变核心性能、引入调度延迟波动建议所有 RT 业务核心固定为performance高性能模式保证select_task_rq_rt选核后的任务执行稳定性。二次定制调度策略的开发规范如需修改select_task_rq_rt实现自研选核逻辑必须保留亲和性校验、缓存局部性快速路径两大基础规则只扩展负载筛选、优先级分组逻辑避免破坏内核 RT 调度基础架构。内核版本选型建议工业、宇航、车载项目优先选用 5.4、5.10 LTS 内核select_task_rq_rt逻辑成熟稳定社区补丁适配完善避免使用 5.15 以上新版本调度类接口有小幅重构兼容性较差。总结与应用场景本文从底层概念、环境搭建、源码剖析、代码实战、调试方法、问题排障、最佳实践全维度深度拆解了 Linux RT 调度器select_task_rq核心函数select_task_rq_rt的设计思想与运行逻辑。核心要点可概括三点一是该函数仅服务于 RT 任务创建、唤醒两大场景非必要不重新选核二是选核策略优先级为实时性优先、缓存局部性次之、轻度多核负载均衡三是严格遵从 CPU 亲和性约束通过快速路径复用本地核、慢速路径筛选最优核的双层逻辑平衡延迟与负载。select_task_rq_rt作为 Linux 实时调度的底层基石所有低延迟、高可靠的实时业务都依赖其 CPU 选核机制落地。除前文提到的车载自动驾驶、工业 PLC 运动控制、宇航嵌入式设备、轨道交通信号系统外在 5G 基站实时数据处理、金融低延迟交易服务器、医疗设备实时控制、音视频实时编解码等场景中吃透该函数逻辑都是系统调优、架构设计、故障排查的必备能力。开发者可基于本文源码示例、调试方法自行在内核中新增日志、修改选核策略、定制业务专属 RT 调度逻辑将理论知识落地到实际项目开发、内核论文撰写、实时系统方案设计中同时可依托本文框架延伸学习pick_next_task_rt、migrate_task_rq_rt等关联函数完整构建 Linux RT 调度子系统知识体系。

相关文章:

Linux RT 调度器的 select_task_rq:RT 任务的CPU选择

简介在 Linux 多核 SMP 架构下,调度器不只是简单完成任务时间片分配与优先级抢占,任务创建、唤醒场景下的 CPU 核选择,是决定实时系统延迟、缓存命中率、系统负载均衡的核心环节。select_task_rq 作为调度类统一抽象接口,是内核为…...

跨境业务场景下利用Taotoken全球直连保障大模型API访问稳定性

跨境业务场景下利用Taotoken全球直连保障大模型API访问稳定性 1. 跨境业务中的API访问挑战 在涉及海外用户的业务场景中,直接调用大模型原厂API可能面临网络波动、延迟不稳定等问题。这些技术挑战主要源于跨国网络基础设施差异、运营商路由策略以及突发性网络拥塞…...

为你的开源项目选择并接入性价比最高的 Taotoken 大模型

为你的开源项目选择并接入性价比最高的 Taotoken 大模型 1. 开源项目的模型选型挑战 开源项目维护者常面临模型选型的两难困境:既要保证生成质量满足功能需求,又要控制调用成本避免预算超支。传统方案需要为每个候选模型单独注册账号、配置环境并编写适…...

突破传统相位限制:Nature Communications发表收敛相位超表面,色散调控能力提升30倍

导语近日,来自华中科技大学、北京航空航天大学、新加坡科技设计大学等机构的研究团队在《Nature Communications》上发表了一项重磅成果(https://doi.org/10.1038/s41467-026-72332-9)。他们提出了一种名为“收敛相位设计”的全新方法,成功制造出性能远超…...

2026 Temu 合规风暴:批量下架提速,凌风工具箱规避封店风险

2026 年跨境电商合规监管全面收紧,Temu 自 2025 年 11 月起升级重复铺货处罚规则,同主体店铺严重重复铺货将永久封禁且不予申诉,部分重复则面临限制上新、缩减商品数量等处罚。多数卖家仍依赖手动逐个提交下架申请,面对成百上千的…...

Cadence 17.4 CIS数据库实战:从零配置ODBC连接MySQL,让你的原理图直接关联ERP物料

Cadence 17.4 CIS数据库实战:从零配置ODBC连接MySQL,让你的原理图直接关联ERP物料 当硬件工程师在绘制原理图时,最头疼的问题之一就是无法实时获取元器件的库存状态和采购信息。传统设计流程中,工程师完成BOM后才发现关键器件缺货…...

DE10-Standard SoC开发板初体验:从零搭建Quartus 18.1环境到点亮第一个LED

DE10-Standard SoC开发板实战指南:从环境搭建到LED控制全流程解析 当你第一次拿到DE10-Standard开发板时,面对琳琅满目的接口和复杂的开发环境,可能会感到无从下手。作为一款集成了Cyclone V SoC的强大开发平台,它既能运行FPGA逻辑…...

深度解析:如何建立适合自己团队的AI能力评估矩阵?

在AI技术快速渗透各行业的今天,AI人才的专业能力衡量与团队AI实力的评估,逐渐成为企业发展的核心命题。CAIE注册人工智能工程师认证作为聚焦AI领域的专业技能等级认证,覆盖从零基础小白到企业级AI应用人才的全成长路径,其系统化的…...

Steam成就管理神器:如何快速解锁全成就的终极完整指南

Steam成就管理神器:如何快速解锁全成就的终极完整指南 【免费下载链接】SteamAchievementManager A manager for game achievements in Steam. 项目地址: https://gitcode.com/gh_mirrors/st/SteamAchievementManager 还在为Steam游戏中那些遥不可及的成就而…...

如何在 Taotoken 平台快速接入并使用 OpenAI 兼容 API 进行模型调用

如何在 Taotoken 平台快速接入并使用 OpenAI 兼容 API 进行模型调用 1. 获取 Taotoken API Key 在开始调用 Taotoken 平台的 OpenAI 兼容 API 之前,您需要先获取有效的 API Key。登录 Taotoken 控制台后,进入「API 密钥」页面,点击「新建密…...

HS2-HF Patch完整指南:如何快速解锁Honey Select 2完整游戏体验

HS2-HF Patch完整指南:如何快速解锁Honey Select 2完整游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是《Honey Select 2》玩…...

数智化升级:AR 智能眼镜驱动工业运维效能革新

在工业生产领域,设备巡检精度、故障响应速度直接影响生产安全与运营效益。传统运维依赖人工经验判断,易受疲劳、技能差异影响,导致漏检、误判问题频发,而 AR 智能眼镜的出现,尤其是其搭载的 AI 识别功能,正…...

VSCode 2026启动慢到崩溃?3步禁用默认扩展+2个launch.json隐藏配置,实测首屏加载从8.4s压至1.9s

更多请点击: https://intelliparadigm.com 第一章:VSCode 2026 启动性能优化的现状与挑战 随着 VSCode 2026 版本正式引入基于 WebAssembly 的核心启动器(vscode-wasm-bootloader)和模块化扩展预加载机制,启动时间中…...

从三星V9到长江存储G5:一文看懂2024年各家3D NAND技术路线图(附避坑指南)

2024年3D NAND技术全景解析:从架构革新到选型实战 在存储技术的军备竞赛中,3D NAND层数堆叠已进入白热化阶段。当三星V9与长江存储G5同台竞技,美光突然跳过300层直指400层,SK海力士的4D PUC又是什么黑科技?这场存储技…...

3步解锁网盘下载新姿势:告别客户端依赖的智能助手

3步解锁网盘下载新姿势:告别客户端依赖的智能助手 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

技术干货FANUC A61L-0001-0093 CRT 升级液晶全流程拆解

这是一块FANUC A61L-0001-0093 型号的 CRT 显示模块,由日本 OZUCHI 公司在 2004 年 9 月生产,型号为 D9MM-11A,是早期数控系统的核心显示部件。核心信息解读型号与身份:主型号:A61L-0001-0093,这是 FANUC 系…...

从零到一:用Python+Playwright+Pytest+Allure搭建Web自动化测试框架(保姆级避坑指南)

从零到一:用PythonPlaywrightPytestAllure搭建Web自动化测试框架(保姆级避坑指南) 在当今快速迭代的软件开发周期中,自动化测试已成为保证产品质量不可或缺的一环。对于刚接触自动化测试的开发者来说,如何选择工具链、…...

MoE架构大语言模型安全漏洞分析与GateBreaker测试框架

1. 项目背景与核心问题最近在测试MoE架构大语言模型时,发现了一个有趣的安全漏洞——模型在处理特定序列的token时会出现异常行为。这个现象让我联想到传统网络安全中的边界突破技术,于是花了三周时间系统研究了相关机制,最终开发出GateBreak…...

Python核心特性解析:从动态类型到元类编程

1. Python语言特性深度解析作为一门诞生于1991年的高级编程语言,Python凭借其优雅的设计哲学和丰富的语言特性,已经成为当今最受欢迎的编程语言之一。我在使用Python进行自动化脚本开发、数据分析以及Web后端服务的近十年实践中,深刻体会到这…...

【HarmonyOS 6.1 全场景实战】开篇词:打造消除“吃饭焦虑”的《灵犀厨房》

HarmonyOS 6.1 开发者盛宴|手把手带你打造《灵犀厨房》AI 厨艺助手(一)开篇与环境搭建 摘要:2026年,HarmonyOS NEXT 6.1.0(API 23)正式亮相,纯血鸿蒙生态全面加速。但很多开发者都在…...

2026智慧药店系统源码趋势:药店APP+小程序开发新方向

在医药零售行业加速数字化转型的当下,传统药店正经历一场从“线下柜台”到“线上服务”的深刻变革。尤其进入2026年,随着用户消费习惯的进一步线上化,智慧药店系统源码逐渐成为行业关注的焦点。药店APP与小程序的融合开发,不仅是技…...

CH32X315 384 路 ADC 高速采集 + USB3.0 实时上传技术方案

前言在工业传感、阵列信号采集、多路模拟量监测等场景中,经常需要实现数百路模拟信号同步高速采样,384 通道是典型的多通道采集需求。沁恒 CH32X315 作为高性能微控制器,自带多组硬件 ADC、原生 USB3.2 Gen1(USB3.0)高…...

索引统计信息维护指南

SQL 变慢了?先看你的索引“基数”准不准! 1. 为什么需要更新统计信息? MySQL 优化器在执行 SQL 前会进行“成本计算”。如果统计信息过旧(例如表中数据发生了大量增删改),优化器可能会产生误判:…...

使用 Taotoken 为你的 Markdown 文档编写助手提供稳定 AI 支持

使用 Taotoken 为你的 Markdown 文档编写助手提供稳定 AI 支持 1. 技术文档创作的 AI 辅助需求 技术文档创作者经常面临内容润色、摘要生成和代码块解释等重复性工作。传统手动处理方式效率低下,而直接调用大模型 API 又面临供应商切换、密钥管理和计费监控等工程…...

利用 Taotoken 统一管理分散在不同项目中的模型 API 密钥

利用 Taotoken 统一管理分散在不同项目中的模型 API 密钥 1. 多项目密钥管理的常见挑战 在中大型企业或技术团队中,同时推进多个 AI 项目已成为常态。每个项目可能涉及不同的模型供应商,导致团队成员需要维护数十个甚至上百个 API Key。这种分散式管理…...

负载箱的规划、部署与长期运营:用户全周期实践参考

负载箱从采购意向的萌生到设备服役期满退役,是一条跨越多年的时间线。这条线上的每一个决策节点——需求定义、方案比选、安装部署、日常使用、维护校准、升级改造——都影响着设备能否以合理的成本稳定地完成测试任务。对于用户而言,建立一套覆盖负载箱…...

2026企业官网搭建指南:高端网站建设公司怎么选?附 TOP10 名单

全球企业数字化转型已跨越基础信息化阶段,进入深度交互与资产沉淀期。根据Gartner发布的数字体验平台(DXP)市场预测数据,至2026年,全球头部企业在自有数字渠道(以品牌官网为核心)的预算投入占整…...

(三)SQL-DML

DML:对数据库中表的数据增删改1.添加数据INSERT案例:2.修改数据UPDATE案例:3.删除数据DELETE案例:...

嵌入式TTS终极指南:如何用eSpeak NG为127种语言打造轻量级语音方案

嵌入式TTS终极指南:如何用eSpeak NG为127种语言打造轻量级语音方案 【免费下载链接】espeak-ng eSpeak NG is an open source speech synthesizer that supports more than hundred languages and accents. 项目地址: https://gitcode.com/GitHub_Trending/es/esp…...

用Arduino和两个红外模块,10分钟搞定你的第一辆循迹小车(附完整代码)

用Arduino和红外模块打造10分钟极简循迹小车 刚拿到Arduino开发板时,很多人会纠结从哪个项目开始实践。在我看来,循迹小车是最佳入门选择——它融合了传感器应用、基础电路搭建和逻辑编程三大核心技能,却能以极低成本快速实现。今天我们就用最…...