- 博客(405)
- 资源 (1)
- 收藏
- 关注
原创 `aarch64-mix210-linux-strip` 命令详解
专用于移除针对 ARMv8-A 架构(AArch64)编译的可执行文件、共享库或目标文件中的符号表和调试信息。接口)未被移除,否则导致加载失败。此方法兼顾发布体积与调试需求。避免因误删符号导致无法调试。后,需确保导出符号(如。检查关键符号是否存在。
2025-06-12 23:14:29
255
原创 使得编译生成的包体积尽可能的小
生成 Release 配置并加最小化参数编译(可选)strip 进一步瘦身这样生成的二进制文件会极小且没有调试信息,适合嵌入式、发布环境等空间敏感场景。
2025-06-12 19:17:10
180
原创 Linux系统中查看文件大小的常用命令
du -h filename # 人类可读格式(显示占用的磁盘块大小)ls -lh filename # 人类可读格式(KB/MB/GB)特点:同时展示实际大小(Size)和磁盘占用(Blocks),适合深度分析。du -h 磁盘占用空间 分析存储占用(如小文件优化) 反映真实磁盘消耗。分析磁盘占用 → 用 du -h filename(优化存储时必备)。显示文件占用的磁盘块空间(而非纯内容大小),因文件系统块大小而异。小文件(如 1 字节)可能显示为 4K(默认块大小为 4KB)。
2025-06-12 18:52:30
94
原创 Linux系统编译程序文件
文件类型扩展名内容作用生成命令示例源代码文件.c.cpp原始程序代码编译起点手动编写预处理文件.i展开头文件/宏后的代码消除预处理指令汇编文件.s汇编指令生成机器码基础目标文件.oELF格式机器码 + 符号表链接的输入单元可执行文件无完整ELF文件 + 启动代码直接运行静态库.a多个.o的归档编译时嵌入动态库.so位置无关代码 + 符号表运行时加载核心转储文件core程序崩溃时的内存状态调试崩溃原因程序崩溃时自动生成Map文件.map内存地址分配详情优化内存布局。
2025-06-12 08:51:05
614
原创 DDR3技术从入门到精通的阶梯式详解
每个Bank由行(Row)和列(Column)构成寻址矩阵。:信号完整性设计+故障注入测试(章节三、五)连接I/O接口,实现单周期8倍数据吞吐。:模拟指令流+时序参数调优(章节二、四):理解Bank矩阵与预取机制(章节一)8bit Prefetch缓存。执行ZQCL指令(512周期)控制器发送Leveling模式。写入数据时动态调整DQS。16bit I/O接口。保持低电平>100ns。DRAM反馈DQS延迟。控制器计算相位补偿值。8 Bank存储阵列。差分时钟CK/CK#
2025-06-07 21:23:21
783
原创 lseek 函数
⚠️ 注意:需确保文件支持定位(如普通文件支持,管道/TTY设备不支持)。(即读写指针位置)。通过它可实现文件的随机访问(非顺序读写)。是 Linux 系统调用,用于修改文件描述符(fd)关联的。),适用于高效处理大文件(如视频预分配空间)。为距文件开头的字节数;需用互斥锁避免竞争。
2025-06-01 21:36:31
339
原创 C++缓存机制
优先使用智能指针:避免内存泄漏(如数据布局与局部性:优化结构体和循环访问模式。多线程环境优化:避免伪共享,使用原子或无锁结构。工具辅助:Valgrind检测缓存问题。
2025-05-28 17:48:15
1008
原创 HTTP协议逐步讲解
通过以上步骤和图表,可全面理解HTTP协议的工作原理及实现细节。如需进一步分析具体场景(如HTTPS加密、性能调优),可结合工具(Wireshark抓包)和代码实践深入验证。,客户端(如浏览器)主动发起请求,服务器处理后返回响应。2. 转发请求(可选缓存检查)1. 发送HTTP请求。3. 返回HTTP响应。版本 状态码 状态消息。
2025-05-28 17:40:36
826
原创 C++内存管理简解
优先使用智能指针:避免手动new/delete。遵循RAII原则:资源管理类封装(文件句柄、网络连接等)。性能敏感场景优化:内存池、对齐、缓存友好设计。工具辅助验证:Valgrind、ASan确保代码健壮性。
2025-05-28 17:37:02
878
原创 布鲁过滤器
通过这种分层的实现方式,可以更好地理解布鲁过滤器的核心机制,并根据实际需求选择标准版或计数版实现。关键是要根据具体应用场景合理选择位数组大小和哈希函数数量,在空间效率与误判率之间取得平衡。
2025-05-28 13:36:10
1282
原创 合并两个已排序的数组_记录
其核心思路是从两个数组的有效数据尾部开始比较,将较大者放入第一个数组的末端空间,避免覆盖未处理的元素。合并两个已排序的数组, 第一个数组的有效数据长度为m,第二个数组的有效数据长度为n,已知第一个数组中空间足够。
2025-05-28 13:34:32
255
原创 自定义实现`memcpy` 函数
核心特性与实现要点1. 内存重叠处理机制检测条件:当源地址低于目标地址且源地址范围覆盖目标地址时(),需反向拷贝反向拷贝示例若源地址 在 的前方且存在重叠区域,从前向后拷贝会覆盖未处理的源数据。例如:,,拷贝3个元素正向拷贝结果:(错误)反向拷贝结果:(正确)2. 基础实现逻辑类型转换:将 转换为 实现逐字节操作空指针检查:确保输入指针的有效性3. 性能优化直接内存操作:避免了 C++ 对象构造/析构的开销,适用于 POD 类型时间复杂度:严格 O(n
2025-05-28 12:32:11
561
原创 混合云网络架构分步详解
跨国运输时,记得给包裹买“保险”(加密协议),否则半路被劫镖(数据泄露)就完蛋了!先破解加密箱,再冒充CEO通过安检,最后绕过防火墙…“以前养100台服务器天天吃灰,现在用多少租多少,省下的钱够买十辆玛莎拉蒂!促销结束立马解散,老板真会省钱!“再也不用对着不同仓库改配置了!一个集装箱搞定所有!两者的配合需要一套智能物流网络!混合云就像一家快递公司,总部设在自家建的。快递车走什么路,决定了包裹能否准时送达!(私有云),同时在各大城市租用。把货物标准化,全球通行无阻!总部物流中心-私有云。
2025-05-27 18:54:46
845
原创 Linux TCP/IP协议栈原理与调优排障
比如把默认接收窗口从几KB调到几MB,让数据包像货车一样多装货(增大吞吐量)。:下次网络卡顿,可以中二地喊一句——“TCP滑动窗口,开!
2025-05-27 18:51:15
834
原创 Linux定时任务命令
替代传统cron,支持更精确的时间控制和依赖管理,适用于复杂任务。:用于设置周期性执行的计划任务,适用于每日、每周等规律性任务。:执行单次任务,适合临时性需求(如几小时后重启服务)。
2025-05-27 18:39:00
348
原创 Linux TCP/IP协议栈原理的通俗理解
通过这种分层协作机制,Linux TCP/IP协议栈实现了高效、可靠的网络通信。如需深入技术细节(如内核源码分析),可参考相关文档。
2025-05-27 18:36:20
248
原创 Linux系统运行时参数命令_笔记
监控范围: 主要分为CPU、内存、磁盘、网络四大模块命令特点: 大部分命令不是专为单一模块设计,需要先掌握基础命令再细分侧重点推荐资源: Netflix高级性能架构师Brendan Gregg的博客http://www.brendangregg.com。
2025-05-26 22:18:50
664
原创 败者树分步详解与C++实现
败者树通过减少冗余比较次数(仅需比较路径节点而非兄弟节点),成为多路归并排序的核心优化手段。其C++实现需注意叶子节点的动态更新和内部节点的索引维护。上图直观展示了树结构的动态调整过程,帮助理解其核心机制。
2025-05-26 10:46:49
613
原创 胜者树分步详解与C++实现
胜者树通过树形结构减少比较次数,适合需要频繁查询极值的场景(如多路归并排序)。结合图可直观展示其动态调整过程。C++实现中需注意数组索引与完全二叉树结构的对应关系。
2025-05-26 10:42:35
687
原创 使用C++一步一步实现线程池
线程池是一种多线程编程模式,在程序启动时创建一组线程,并将其放入一个“池”中。任务被提交到线程池后,空闲线程会从任务队列中取出任务并执行。这样可以避免频繁创建和销毁线程的开销,提高性能。运行这段代码,你会看到 8 个任务被 4 个线程并发执行,每个任务休眠 1 秒后完成。下面是完整的线程池实现代码,包含所有必要的组件。我们将使用模板支持各种任务类型(如函数、lambda 表达式等)。线程池类将包含任务队列和工作线程,并提供任务提交接口。任务队列需要支持多线程访问,因此我们使用。下面,我将通过改进以上的。
2025-05-19 16:52:03
511
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人