内核+性能问题
文章平均质量分 87
嵌入式Jerry
《Yocto项目实战教程》+《定制自己的Linux》作者
- 请关注个人B站,学习更丰富前沿的技术:嵌入式Jerry
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Valgrind 并发调试 :用 Helgrind 抓住线程里的“看不见的错”
本文介绍了Valgrind工具集中的Helgrind线程错误检测器,用于发现多线程程序中的并发问题。通过一个计数器竞态的最小示例,演示了如何用Helgrind检测数据竞争,并给出互斥锁和原子操作两种解决方案。文章还对比了Helgrind与DRD的特点,建议先用Helgrind清理基础并发错误,再用DRD检测死锁。最后提供了实用的并发调试清单,包括编译选项、修复优先级和持续集成建议。帮助开发者可视化"看不见的"并发错误,提高多线程代码质量。原创 2025-08-18 22:24:04 · 936 阅读 · 0 评论 -
Valgrind 并发调试 :DRD 实战—死锁与锁序一网打尽
摘要:本文通过最小可复现代码示例,讲解如何使用Valgrind的DRD工具检测并发程序中的死锁与锁顺序问题。重点包括:1)DRD轻量级特性及适用场景;2)互斥量、死锁四要素等核心概念;3)构造必现死锁的同步栅栏技巧;4)两种标准修复方案——统一加锁顺序和trylock退避策略。通过实际代码演示和DRD命令输出分析,帮助开发者系统掌握并发缺陷的检测与修复方法。 (字数:148)原创 2025-08-18 22:22:17 · 835 阅读 · 0 评论 -
Valgrind 并发调试 ·:用 Helgrind 抓住线程里的“看不见的错”
本文介绍了Valgrind工具集中的Helgrind线程错误检测器,通过最小示例演示如何检测多线程程序中的并发错误。文章首先展示了一个存在数据竞争(Data Race)的代码示例,该程序在多线程环境下未加锁地修改共享变量,虽然运行结果看似正确,但存在潜在问题。随后分别给出使用互斥锁和原子操作两种修复方案,并通过Helgrind验证修复效果。文章还对比了Helgrind与DRD工具的特点,建议先用Helgrind检测数据竞争和锁误用,再用DRD检查死锁。最后提供了快速上手清单,包括编译选项、运行命令和修复优先原创 2025-08-17 11:23:40 · 978 阅读 · 0 评论 -
Valgrind Cachegrind CPU缓存 - B站视频详解
本文详细介绍了Valgrind工具集中的cachegrind工具,用于分析和优化程序性能。通过对比"顺序访问"和"跳跃访问"两种缓存模式的示例代码(good_cache.c和bad_cache.c),展示了cachegrind如何检测缓存未命中情况(D1 miss rate分别为1.3%和10.6%)。文章解释了CPU缓存(L1/L2/L3)的基本原理,说明优化数据访问模式对性能提升的重要性。cachegrind能跟踪指令/数据访问次数和缓存未命中情况,帮助开发者发现原创 2025-07-29 08:45:00 · 1981 阅读 · 0 评论 -
Valgrind Helgrind 工具全解:线程同步的守门人
摘要:Helgrind是Valgrind提供的线程检测工具,专门用于发现多线程程序中的数据竞争(Data Race)问题。文章通过示例代码演示了未加锁时多个线程同时修改共享变量导致的竞争问题,并展示了Helgrind如何检测此类错误。随后给出正确加锁保护的解决方案,通过pthread_mutex_t确保线程安全。文章还总结了线程同步的常用手段(互斥锁、读写锁等)和Helgrind的使用技巧,强调该工具在检测并发bug中的重要作用,能有效发现隐藏的数据竞争、锁使用错误等问题。原创 2025-07-27 19:02:12 · 748 阅读 · 0 评论 -
B站视频课程- Valgrind: Memcheck 内存检测
【性能分析工具 - Valgrind: Memcheck 内存检测课程-哔哩哔哩】 https://b23.tv/zKFQAOR。原创 2025-07-22 11:38:05 · 1300 阅读 · 0 评论 -
Valgrind Cachegrind 全解析:用缓存效率,换系统流畅!
摘要: 本文深入解析Valgrind的Cachegrind工具,揭示缓存效率对程序性能的关键影响。通过对比行列优先访问二维数组的示例(bad_cache.c与good_cache.c),演示缓存未命中率差异:列优先访问导致一级数据缓存未命中暴涨8倍。文章详解D1/LLd misses等核心指标,列举UI卡顿、高耗电等实际场景的缓存问题表现,并提供行主序访问、避免链表等优化技巧。Cachegrind能量化分析代码与CPU的交互,是性能调优的必备工具,文末附常用命令速查表。(148字)原创 2025-07-21 18:01:11 · 1203 阅读 · 0 评论 -
UI 程序退出卡顿问题分析:从真实案例深入理解退出清理路径负载问题
摘要:本文分析了UI程序退出时的卡顿问题,通过一个C++多线程项目案例,揭示了"清理路径"负载过重导致延迟的原因。使用strace和perf工具定位到后台线程阻塞(如epoll_wait、futex等)导致主线程join()卡顿。提出三种优化方案:事件触发唤醒、带超时的条件变量、主线程不等待子线程(不推荐)。文章还列举了Chromium和ROS2中的类似案例,建议为线程设计可中断机制,避免主线程阻塞,并使用工具精准定位卡顿路径。该问题多被误判为图形性能问题,值得开发者重视。 (字数:15原创 2025-07-19 17:30:17 · 743 阅读 · 0 评论 -
内存踩踏全解析:原理 + 实战案例 + 项目排查技巧
《内存踩踏全解析:原理+实战案例+项目排查技巧》摘要 内存踩踏是嵌入式系统开发中常见的危险问题,可能导致系统崩溃或安全隐患。文章从原理入手,解析了栈溢出、堆溢出等典型内存踩踏类型及其破坏机制,并通过两个真实案例(memcpy越界和释放后使用)演示问题现象与排查过程。提供了valgrind、ASAN等工具的使用建议,总结出边界检查、安全函数替代等预防措施。最后回答了五个关键问题,强调规范内存访问的重要性。文章配有代码示例和排查工具对比表,适合开发者系统掌握内存踩踏的识别与防范方法。 (字数:149)原创 2025-07-11 20:58:34 · 1747 阅读 · 0 评论 -
USB数据丢包真相:为什么log打印会导致高频USB数据丢包?
摘要: 在高频USB数据采集场景中,log打印(如print或UI显示)常导致严重丢包。根本原因是主机程序处理能力不足:CPU因GIL和线程切换被log操作独占,I/O延迟和UI刷新阻塞数据接收线程,导致缓冲区溢出。解决方案包括:1)异步处理,使用队列隔离数据采集与log;2)降低UI刷新频率;3)批量处理日志;4)分层架构避免I/O阻塞采集线程。通过优化线程和队列管理,可实现高效稳定的USB数据传输。 (字数:149)原创 2025-07-11 20:20:14 · 1115 阅读 · 0 评论 -
嵌入式开发中的实战 KGDB 调试教程(附概念解析与面试问答)
本文介绍了嵌入式开发中KGDB内核调试工具的使用方法。主要内容包括:KGDB的定义与工作原理,在嵌入式场景中的应用价值,内核配置与调试流程,以及驱动调试实战示例。文章还提供了典型问题解决方案和面试常见问题解答,强调KGDB相比printk等工具在定位内核崩溃、驱动开发等问题时的优势。最后建议开发者掌握KGDB与GDB的结合使用,并配合其他工具进行系统性能分析。原创 2025-07-04 17:10:42 · 1298 阅读 · 0 评论 -
嵌入式系统卡顿问题的系统资源层全景分析
本文针对嵌入式系统卡顿问题,从系统资源层进行全面分析,重点以医疗监护仪项目为例。文章将系统资源层卡顿源分为CPU、内存、存储I/O、内核调度和进程管理五大类,详细分析各类问题的现象、原因及优化方法。通过监护仪典型案例(如高阶页分配失败导致页面卡死、CPU满载引发波形掉帧等),演示了如何定位和解决资源瓶颈问题。最后提出包括预分配内存池、优化调度策略、调整内核参数等最佳实践建议,为嵌入式系统性能优化提供系统性解决方案。原创 2025-07-03 18:55:05 · 1070 阅读 · 0 评论 -
利用 perf 与 ftrace 精准定位项目卡顿问题 —— 从现象到本质的分析思路
卡顿” ≠ “程序挂了”,而是响应时间异常变长。UI点击后迟钝(> 200ms)页面切换过程中黑屏或空白停顿动画播放掉帧、不流畅这些现象通常是因为系统资源(CPU、内存、锁、调度等)在短时间内无法满足当前需求,导致执行延迟。每次切换 UI 页面时重新 malloc 图像缓冲区(1MB),首次访问触发大量缺页异常。内存碎片过多,分配大块页帧困难,内核进入碎片整理路径。原创 2025-07-03 18:35:26 · 1177 阅读 · 0 评论 -
嵌入式Linux系统内存占用率高的原因、后果与防控全解析
《嵌入式Linux系统内存占用率高的原因、后果与防控全解析》深入剖析了嵌入式设备内存问题的根源与解决方案。文章从硬件层面(成本限制、芯片资源内耗)和软件层面(内存泄漏、缓存管理不善、系统服务过多)分析高内存占用的成因,并列举系统卡顿、进程被kill等严重后果。作者提出一套完整的实战方法论:通过监控工具定位问题,结合硬件选型优化、系统裁剪、开发规范等预防措施。特别强调要区分buff/cache与真实内存占用,并推荐了valgrind等诊断工具。最后推荐《Yocto项目实战教程》作为系统优化参考。全文150字,原创 2025-06-21 15:33:20 · 1199 阅读 · 0 评论
分享