Group commit 攒批写盘实测:窗口 0 加到 20ms,fsync 从 4000 降到 79,p50 涨到 12.09ms

FreeBSD 12.0 手动构建 FAMP 栈:Apache+MySQL+PHP 深度适配指南 FAMP(FreeBSD+Apache+MySQL+PHP)是面向 BSD 系统深度优化的 Web 运行时栈,区别于通用 LAMP 方案,其核心在于事件驱动 MPM、ZFS 友好型内存管理与 rc.d 服务依赖编排。原理上依托 FreeBSD 的 jail 隔离、kern.maxfiles 内核资源调控及 ports 构建链实现 ABI 稳定性与可审计性;技术价值体现在零运行时内存泄漏、可回滚部署与等保合规支撑;典型应用于教育教务系统、政府内网平台及离线机房 Web 服务;本文聚焦 FreeBSD 12.0 阅读详情

摘要

4000 条记录、8 个发送线程、泊松到达 2500/s、真实文件加 os.fsync,3 轮实测:逐条写 fsync=4000,p50 0.57~1.01ms;leader 攒批窗口 W=0 只 drain 队列已有,fsync 降到 1947~2083,p50 0.39~0.70ms;W=20ms 时 fsync 只剩 79~82 次(省 98%),但 p50 涨到 10.88~12.09ms、p95 20.47~21.63ms。窗口越大 fsync 越少、延迟越高,低负载下 W=0 是免费午餐。

一、fsync 为什么值得攒批

写盘要持久化就得 fsync,而 fsync 是磁盘操作里最贵的一类:它要把文件数据真正落到存储介质,单次耗时与吞吐无关。逐条写意味着每条记录摊一次 fsync;group commit 的思路是让一个 leader 线程把一段时间内到达的记录攒成一批,一次 write 加一次 fsync,批内所有记录共享这次落盘。数据库的 WAL、消息队列的刷盘本质上都是这笔账。

窗口设多大是核心参数:等得越久批越大、fsync 越省,但每条记录要多等一会儿。这篇用真实文件加 os.fsync 把 0/1/5/10/20ms 五档窗口各跑 3 轮,量 fsync 次数和单条延迟,看权衡曲线长什么样。

攒批的思路在存储系统里很常见:数据库让多个事务的日志共享一次刷盘,消息队列把一批消息一起落盘,都是同一笔账。本文不依赖任何具体引擎,直接用 Python 写一个最小的 leader 攒批,把曲线量出来——这样每个数字都能回到代码,而不是引用别人引擎的文档。

二、实验设置

参数取值说明
记录数4000每条 153 字节
到达过程泊松,总速率 2500/s8 个发送线程平分
发送方式开环只记录入队时刻,不等 ack
写盘os.write + os.fsync真实文件,Windows 加 O_BINARY
窗口 W0 / 1 / 5 / 10 / 20 ms从 leader 取出第一条起算
批上限256达到即提前写
轮次1 / 2 / 3到达种子 9001~9003,偶数轮倒序跑

对照模式 per_record 是 8 个线程各自加锁、每条 write 加 fsync。延迟定义为"入队到 ack",ack 时刻在 fsync 完成之后统一打给批内所有记录。每轮都断言写盘字节数等于 4000×153=612000,防止丢写或重复写。

到达用泊松过程(间隔取指数分布)而不是匀速,因为真实流量有突发,匀速到达会让队列几乎常空,低估窗口的作用。发送线程只记录入队时刻、不等 ack,这是开环:系统变慢时到达不会跟着变少,积压和延迟会如实暴露出来。闭环压测的坑见避坑指南第一条。

入队

8 个发送线程

队列

leader 攒批 W ms

一次 write + fsync

批内全部 ack

三、结果:fsync 单调降,延迟单调升

三轮到达跨度 1649.3~1689.8ms,各模式都跟上了到达速率,没有持续积压。核心读数:

模式fsync 次数(3 轮)p50/msp95/ms平均批
per_record4000 / 4000 / 40000.57~1.013.05~9.061.00
W=02083 / 1947 / 20270.39~0.701.07~1.241.92~2.05
W=1955 / 953 / 9342.27~2.342.68~2.814.19~4.28
W=5281 / 284 / 2784.00~4.216.56~6.8314.08~14.39
W=10151 / 157 / 1536.26~6.8110.99~11.6625.48~26.49
W=2079 / 82 / 7910.88~12.0920.47~21.6348.78~50.63

三个观察:

  1. W=0 是免费午餐。 不等待、只 drain 队列里已有的记录,fsync 就从 4000 降到 1947~2083,约省一半;p50 反而从 0.57~1.01ms 降到 0.39~0.70ms——单 leader 串行写,省掉了 8 线程抢锁的开销。
  2. 窗口越大越省 fsync,但延迟是纯代价。 W=20 时 fsync 只剩 79~82 次,比逐条写省 98%(79/4000 换算),平均批 48.78~50.63 条,与"2500/s × 20ms = 50 条"的理论值吻合;代价是 p50 涨到 10.88~12.09ms、p95 到 20.47~21.63ms,基本就是窗口长度本身。
  3. 吞吐在这个负载下拉不开。 到达 2500/s 低于各模式的处理能力,wall 都在 1650.0~1718.4ms 之间(第 2 轮 per_record 除外,见下节)。攒批的收益体现在 fsync 次数——也就是磁盘 IO 余量——而不是当前负载下的吞吐。

补充一句第 1 个观察的机理:W=0 的 p50 更低,不是"攒批变快了",而是"争抢消失了"。per_record 是 8 个线程抢一把锁,锁交接本身有开销;单 leader 天然串行,没有竞争。所以对照时要分清收益来自 batching 还是来自去锁。

第 2 轮 per_record 出现一次 max=374.78ms 的尖峰,wall 被拉到 2436.1ms、rps 掉到 1642.0;另两轮 max 只有 11.21 / 18.54ms。这是逐条写路径在锁竞争下的偶发抖动,照实记录,不剔除。

四、窗口是负载的函数

窗口的收益取决于负载。低负载时队列里没几条记录,等了也攒不满,窗口退化成纯等待——W=1 档平均批只有 4.19~4.28 条,p50 却涨到 2.27~2.34ms,就是这个状态。负载高时队列常满,W=0 的机会主义 drain 就能攒出大批,固定窗口的必要性反而下降。由此推断:最优窗口不是常数,而是随负载升高可以调小;本文只测了 2500/s 一档,其它负载要重扫,别把这条曲线当普适结论。

如果你在用数据库或消息队列,这条曲线对应手里的刷盘批延迟参数:调大省 IO、抬写延迟。差别在于引擎的 fsync 成本、批上限和并发模型都与本参考实现不同,数值不能照搬,但权衡的方向一致。

五、leader 攒批的核心代码

W=0 的机会主义 drain:

                if window_ms == 0:
                    while True:
                        try:
                            batch.append(q.get_nowait())
                        except queue.Empty:
                            break

W>0 的窗口等待,窗口从 leader 取出第一条起算:

                    deadline = time.perf_counter() + window_ms / 1000.0
                    while len(batch) < MAX_BATCH:
                        remain = deadline - time.perf_counter()
                        if remain <= 0:
                            break

批写完后一次 fsync,再给批内所有记录打 ack:

                blob = b"".join(PAYLOAD for _ in batch)
                written[0] += os.write(fd, blob)
                os.fsync(fd)

六、避坑指南

  1. 闭环压测会把批钉死在并发数。 第一版用"提交→等 ack→再提交"的闭环负载,8 个生产者永远只有 8 条在途,W≥1ms 的批恒等于 8 条,窗口退化成纯等待,吞吐反而低于逐条写。换开环泊松到达才看到真实权衡。
  2. 窗口起点别用 enqueue 时刻。 从入队起算时,leader 一旦落后,所有批的窗口都已超时,全部退化成单条写,积压自我强化:实测 W=1 那版队列持续滚大、fsync 次数回到逐条写水平,吞吐反而更低。改成从 leader 取出第一条起算即稳定。
  3. Windows 上 os.open 必须加 O_BINARY。 否则文本模式把每条记录的 \n 转成 \r\n,每条多写 1 字节,写盘字节数断言当场抓住。
  4. 亚毫秒等待别用 queue.get(timeout)。 Windows 定时器粒度约 1ms,remain 不足 1ms 时会被向上取整,W=1 档每个批多等近 1ms,直接拖垮吞吐;不足 1ms 改用 get_nowait 忙等。
  5. fsync 耗时依介质而变。 本机逐条写在两个正常轮跟上了 2500/s 到达(wall 1650.0 / 1691.0ms 与到达跨度相当),说明单次 fsync 明显低于 0.4ms(按 1/2500s 换算的上界);网络盘或云盘可能差几个量级,窗口档位要按目标介质重测,别照搬。

七、结论

低负载下先拿 W=0 的免费收益:fsync 约省一半,p50 还更低。要压 fsync 次数换 IO 余量,再按延迟预算选固定窗口——W=20 省 98% 的 fsync,代价是 p50 约 11~12ms。窗口不是越大越好,是"延迟预算换磁盘余量"的显式定价。所有数字来自本机 Python 参考实现、真实文件与 os.fsync、三轮实测,代码与 transcript 已留档。

Azure数据库存储选型:Ultra SSD与Premium SSD实战对比 分布式数据库的存储性能本质是I/O稳定性问题,而非单纯追求高IOPS或吞吐量。其核心原理在于随机读写延迟、队列深度适应性及fsync持久化效率,直接决定WAL写入速度、主从同步可靠性与P99延迟一致性。技术价值体现在降低复制延迟(RPO)、抑制checkpoint抖动、缓解compaction瓶颈,并支撑高并发OLTP与宽列模型稳定运行。典型应用场景包括云上PostgreSQL/MySQL高可用架构、Cassandra时序数据平台及金融级低延迟交易系统。本文基于真实pgbench与cassandra-str 阅读详情

相关推荐

Azure分布式数据库磁盘选型:Premium SSD与Ultra SSD深度对比

分布式数据库的性能瓶颈往往不在SQL或索引,而在于底层存储的I/O确定性。其核心原理是多副本状态机一致性协议(如Raft/Paxos),要求每次WAL写入必须fsync落盘,对单次I/O延迟、p99抖动和突发承载能力极度敏感。Premium SSD提供恒定但受限的IOPS,适合稳态负载;Ultra SSD则通过IOPS积分制与直连NVMe-oF架构,实现低抖动、高突发、强确定性的I/O交付,天然匹配分布式事务的潮汐写入与跨AZ同步场景。本文聚焦Azure环境,结合真实压测数据,解析二者在fsync延迟、Ra

weixin_30319153的博客 574

MySQL 8.0 redo log 配置实战:innodb_flush_log_at_trx_commit 3种模式性能与安全实测

本文深入解析MySQL 8.0中redo log的三种配置模式(innodb_flush_log_at_trx_commit=0/1/2),通过性能测试数据对比不同模式在事务安全性与系统吞吐量上的表现。针对金融、常规业务等不同场景提供优化建议,帮助DBA在数据安全与性能之间找到最佳平衡点。

chenshixi3325的博客 317

Azure分布式数据库存储选型:Premium SSD与Ultra SSD核心差异

分布式数据库依赖确定性低延迟、高稳态随机IOPS和跨副本一致性保障的存储服务,其本质是对I/O可预测性的工程需求。传统块存储如Premium SSD以吞吐和平均性能为优化目标,而Ultra SSD通过物理通道隔离、确定性延迟引擎(DLE)和写入放大补偿机制,专为Raft/WAL优先的分布式系统重构I/O栈。这种差异直接决定P99延迟稳定性、Leader选举可靠性及备份恢复RTO。在CockroachDB、TiDB、PostgreSQL等场景中,Ultra SSD将WAL写P99延迟从数十毫秒压降至1.5ms

weixin_30412167的博客 394

Redo Log 刷盘策略与性能平衡:innodb_flush_log_at_trx_commit 实测

在关系型数据库(MySQL InnoDB)的核心写入性能调优与高可用架构设计中,数据库 ACID 特性中的“持久性(Durability)”与系统的每秒事务吞吐量(TPS)之间,始终存在着最为激烈的工程物理博弈。掌控这场博弈的最核心参数开关,正是每一个架构师与 DBA 耳熟能详的配置——innodb_flush_log_at_trx_commit(结合分布式复制中的,构成业界常说的“双 1 强一致性配置”)。在很多面临极度狂暴写入性能瓶颈的业务团队中,经常有人试图通过简单地将该参数从1暴力修改为0或。

iymei4986533030的博客 949

PostgreSQL数据目录迁移实战:rsync物理迁移与systemd服务适配

PostgreSQL数据目录是数据库运行的物理根基,其迁移属于底层存储层操作,涉及文件系统权限、WAL一致性、配置链式依赖等核心机制。不同于逻辑导出导入,物理迁移通过rsync实现字节级同步,兼顾原子性、增量能力与跨文件系统兼容性,成为TB级生产环境首选方案。技术价值在于零数据丢失、分钟级停机、绕过SQL层瓶颈;典型应用场景包括磁盘扩容、I/O隔离优化、容器化数据卷预置及灾备架构重构。本文聚焦Ubuntu系统下基于rsync的全流程迁移实践,深度解析postgresql.conf参数联动、pg_wal符号链

tyygming的专栏 122

YugabyteDB磁盘选型指南:Premium SSD v2与Ultra SSD实战对比

分布式数据库的存储性能不取决于标称IOPS,而在于磁盘底层机制与数据库共识协议(如Raft)、WAL写入节奏、LSM-Tree Compaction模式的协同效率。Premium SSD强调确定性延迟但队列深度僵化,易在高频小写场景引发P99阶梯式延迟;Premium SSD v2通过动态队列深度、分层DRAM缓存和SLA级IOPS保障,在中等负载下实现更高QPS与更低延迟的平衡;Ultra SSD则依托固件层可编程性能控制器(PPC),专为突发写入、WAL优先调度与读写隔离设计,仅在强一致性+超低P99.

chupu2979的博客 335

TheBoringNotch 音乐控制中心:零基础把 MacBook 刘海变成随身播放器

TheBoringNotch 把 MacBook 上原本"闲置"的黑色刘海,变成一块实用的音乐控制中心,集播放控制、系统 HUD 替换和文件传输于一体。如果你受够了切歌、调音量时要反复挪动鼠标,或者想把屏幕每一寸空间用起来,五分钟就能上手。 ## TheBoringNotch 到底能干什么 TheBoringNotch 的定位是"macOS 刘海增强器":它把界面直接画在刘海区域,让信息出现在

gitblog_00455的博客 208

Ubuntu 12.04下MariaDB Galera集群实战部署与故障治理

Galera是一种基于认证的同步多主复制技术,其核心原理是写集广播+多数派认证(Certification-Based Replication),保障强一致性;相比异步主从或MGR,它无需GTID、支持多点写入,但对网络时序、系统资源和底层依赖高度敏感。在老旧生产环境中,MariaDB Galera成为支撑高可用兜底的关键技术路径——尤其适用于无法升级OS的政企、工业SCADA及金融终端系统。本文聚焦真实约束下的工程落地:从Ubuntu 12.04的Upstart服务管理、AppArmor权限绕过、ulim

weixin_30700977的博客 385

从三万到三十万:高性能消息队列的存储、消费与调优实战

消息队列是分布式系统实现异步解耦和削峰填谷的核心组件,其性能瓶颈往往不在于网络框架,而集中在磁盘IO、内存拷贝和锁竞争。理解顺序写与批量刷盘的底层原理,是把握消息中间件高性能设计的关键。Kafka 等成熟产品正是通过追加写日志、稀疏索引和零拷贝等技术,在保证高吞吐的同时降低延迟。然而在并发和故障场景下,重复消费难以完全避免,必须结合幂等设计进行业务兜底。本文从存储引擎、消费模型到参数调优,系统拆解将吞吐量从每秒三万条提升至三十万条的完整路径,为中间件选型与自研队列提供可落地的工程实践参考。

weixin_34245749的博客 140

【信息科学与工程学】计算机科学与技术——第七十七篇 系统架构设计1002 大数据Lambda架构设计 第一章 1.1

与批处理处理有界(Bounded)数据集不同,流处理处理的是无界(Unbounded)数据流。数据流是连续不断产生的、没有终点的数据序列。无界性:你永远不知道数据何时结束,因此无法像批处理那样“等所有数据都到了再算”。无序性:数据产生的顺序和到达处理系统的顺序往往不一致,尤其是当数据来自多个分布式源头时。延迟与准确性:如何在数据到达后尽快给出结果,同时保证结果的准确性?这本身就是一对矛盾。状态管理。

weixin_49199313的博客 454

DDR5内存调优实战:手把手教你搞定Write Leveling Training Mode(附时序图解析)

本文深入解析DDR5内存调优中的Write Leveling Training Mode技术,详细介绍了其核心原理、硬件准备、实战步骤及常见问题解决方案。通过JESD79-5标准定义的反馈机制,帮助硬件工程师精确对齐DQS与CK信号,提升系统稳定性和数据可靠性。附有时序图解析和代码示例,适合DDR5内存系统设计与调试参考。

weixin_29256771的博客 550

数据库高可用与容灾实战(3):半同步复制与无损切换:RPO=0 能不能做到

这就是半同步复制的立身之本,也是"RPO=0"这个承诺在 MySQL 体系里的唯一正统路径。8.0 时代 AFTER_SYNC 是唯一模式(AFTER_COMMIT 被废弃),正是因为 AFTER_COMMIT 的 ack 点在引擎提交之后,主库回滚时副本已收到,会产生"客户端看到回滚、从库却存在"的幽灵事务——这个坑在后面的持久性矩阵里还会再见。半同步把丢数据的窗口压缩到"降级发生的那一瞬间",但要让这个瞬间尽可能晚、且在发生时被自动处置,就得有一套会探测、会选主、会执行切换的自动化系统。

weixin_67153745的博客 148

S32DS新建工程、编译调试下载、导入工程详细介绍

新建了一个工程之后,下面简单介绍下基本的UI界面。其中最左下角那个是界面,这个界面很重要,是图形化配置界面,然后可以根据这些配置自动生成代码。其中,左边那些配置文件,都是系统帮我们创建好了的,我们其实可以直接用就行。有PE工具的调试,以及Jlink工具的调试。我目前使用到PE工具调试可以查看寄存器值,而Jlink调试查看不了寄存器值。连接了开发板之后,点击Debug就可以吧程序下载到芯片上了,而且可以进入到调试界面。

luobeihai的博客 2万+

NVMe SSD数据库场景性能优化全栈深度解析:从MySQL/PostgreSQL调优、WAL隔离到OLTP/OLAP负载特征与fio基准建模

本文全栈解析NVMe SSD在数据库场景中的性能优化方法论,覆盖OLTP/OLAP/Redis等典型负载I/O特征、MySQL InnoDB与PostgreSQL存储参数调优(buffer pool、WAL/redo log、doublewrite、fsync策略)、WAL日志盘隔离架构、RAID卡BBU写缓存影响、Linux I/O调度器与内核调优、fio数据库负载建模与P50/P99/P999延迟实测分析,结合NVMe规范与内核源码深入拆解数据库I/O全路径优化。

专注分享DPU、RDMA智能网卡/SSD(固态硬盘)产品测试与优化 488

Ardupilot EKF3核心算法《开篇》

Ardupilot EKF3核心算法本专栏重点,透彻,详细的分析了ardupilot的EKF3,保证是你看到的最完美的EKF3资料,相信你的选择不会错误。网上EKF资料真是太多,说真的没有一篇讲解好的。!!

陌城烟雨 1413

解决Office 365 SMTP问题:C#邮件发送详解

本文介绍了如何在C#中使用Office 365 SMTP服务发送邮件。重点讲解了正确配置SMTP客户端的关键参数:必须使用587端口并启用TLS加密(EnableSsl=true),同时通过NetworkCredential进行身份验证。虽然SmtpClient已不推荐用于新项目,但本文提供的代码示例仍适用于临时项目或系统维护,并建议未来可考虑使用MailKit等现代邮件库。文章还包含了错误处理机制,确保程序健壮性。

2501_90323865的博客 141

大深度决策树性能优化:supertree的start_depth与max_samples调优指南

**supertree 是一款交互决策树可视化工具**,能把 scikit-learn、LightGBM、XGBoost 训练出的树模型直接渲染成可在 Jupyter 中缩放、折叠、点击的交互式图。但当树深度很大、数据集有几十万行时,页面卡顿几乎是必然的。本文教你用两个关键参数 `start_depth` 和 `max_samples` 快速优化 supertree 大深度决策树的渲染性能,让大模

gitblog_00801的博客 453

【Codecs系列】x265编码器(十二):子像素运动搜索

在基于块运动补偿的视频编码框架中,运动搜索是最为重要的环节之一,同时也是编码端最为耗时的模块。运动搜索包括整像素运动搜索和子像素运动搜索,其中整像素运动搜索已经有很多快速算法,比如经典的三步搜索法、菱形搜索、六边形搜索以及TZSearch等等;但子像素搜索的快速算法却比较少,本文主要讲解x265编码器中的子像素搜索方法以及相关的快速搜索方法。

优快云明星博主,认证博客专家,视频、Matlab领域优质创作者。 749

磁力链接卡在 0KB/s?用 trackerslist 修好节点获取的完整实战指南

trackerslist 是一个每天自动检测并更新公共 BitTorrent tracker 列表的开源项目,按 UDP、HTTP、HTTPS 等协议拆分成多个文本文件。磁力下载长期 0KB/s,多数情况不是客户端坏了,而是它凑不够对等节点。这篇文章带你按网络环境选对列表文件、给出参考参数,并把拿不到元数据、连接数上不去、DNS 报错这些常见故障逐一排查,适合只想顺利下载、不折腾自建 tracke

gitblog_00348的博客 392

详解大模型微调数据集构建方法(持续更新)

本文详细介绍了大模型微调数据集构建方法,希望能对学习大模型的同学们有所帮助。 文章目录 1. 前言 2. 微调数据集构建方法 2.1 方法一 2.2 方法二 2.3 方法三 2.4 方法四 2.5 方法五

herosunly的博客 28万+

把 ABAP Unit 测试放进本地类:让重构更安全、让测试更好找的组织方式

ABAP测试代码组织策略:单元测试与集成测试的合理存放位置 本文针对ABAP开发中测试代码组织混乱的问题,提出了一套系统化的解决方案: 单元测试应存放在被测类的本地测试include中(...CCAU或...T99),确保测试与代码同步演进且易于发现 跨对象测试(组件/集成/系统测试)应创建单独的全局测试类,并通过FOR TESTING和ABSTRACT进行防护 使用! @testing注释建立测试关系,使测试与被测对象明确关联,提高可发现性 针对不同技术栈(RAP/CAP/OData)提供了具体落地建议,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1729

深入解析Kafka核心架构:从分区机制到存储原理的实战指南

消息队列是现代分布式系统中实现异步通信和解耦的核心组件,其核心原理在于通过生产者-消费者模型,实现数据的高效、可靠传输。在众多消息队列技术中,Apache Kafka凭借其高吞吐、可扩展和持久化的设计脱颖而出,成为流处理平台的事实标准。理解其底层工作原理,尤其是分区(Partition)与消费者组(Consumer Group)的协同机制,是解决线上消息积压、消费延迟等性能问题的关键。本文将从分布式系统的通用概念切入,深入剖析Kafka的存储设计、生产消费流程及高可用原理,并结合分区分配、零拷贝等热词,为工

weixin_30252709的博客 318

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

NVMe SSD 跑出 HDD 的性能?我用 C# 手搓“IO 基线探测引擎”,扒光了国产数据库在不同存储介质下的“底裤”!

本文介绍一套基于C# .NET 8的四层IO压测模型,精准评估HDD、SATA SSD、NVMe及PMEM在国产数据库(达梦/金仓)下的真实性能。通过绕过OS缓存、模拟WAL组提交机制,揭示存储介质在fsync延迟与4K随机写IOPS上的关键差异。提出信创存储调优“五条铁律”,强调掉电保护(PLP)与企业级NVMe的重要性,警示勿用无PLP的消费级盘。附生产级代码实现,助力科学选型,拒绝被“虚假性能”误导。

墨夶的博客 491

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

如何10分钟给国产安卓手机去广告:android-ad-cleaner完整教程

android-ad-cleaner 是一款开源的安卓手机去广告工具,面向不 root、不刷机、只想把国产手机里的广告和营销推送关干净的人。它只拨动系统和 App 自带的开关,不碰 system 分区;对广告包只挂起不卸载,全程可还原。 ## 处理后的手机长什么样:效果清单 这张是 OPPO 软件商店处理前的样子:轮播、必备、必玩、福利标签全是推广位,处理后就只剩应用列表。 [![安卓手机去

gitblog_00847的博客 235

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

高危工业场景人员定位系统设计:四类场景的架构选型与部署要点

本文由航飞光电一线工程团队整理,重点讨论高危工业场景下人员定位系统的架构选型思路。覆盖危化、矿山、港口、电力四类场景,拆解技术路线分工、融合引擎跨区切换实现,以及私有化/本地化部署中的工程难点,供架构师与技术负责人参考。

HF17513371855的博客 368
上一篇: 向量量化实测:int8 召回保住 97%,binary 直接查只剩 11%,补 200 条重排回到 92%
下一篇: MCP 工具目录要吃掉多少上下文?实测 151 个工具:只给名字检索命中率为 0,说明留 40 字就基本到位
AI低码智造
博客等级 码龄18年 2322粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI低码智造

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值