文章

Linux

如何实现可动态扩展的共享内存池

开发者通常为了提高内存使用效率,或者避免内存泄漏,需要将内存池化管理。稍复杂一点的系统,一般都会有自己的内存管理机制,我在研读源码的时候,比较习惯先看内存管理模块的实现,这块很见开发者的基本工和工程思想,颇有一叶知秋之感 …

阅读全文
随笔

超纲词汇检查工具使用说明

文件清单 压缩包中包含: 可执行程序 EnglishWordCheck.ext 示例单词清单:english words1.txt 示例 word 文档:sample.doc 使用要求 1. 单词清单文件 文件名自定,文 …

阅读全文
AI

快速离线部署 LLama2

今年 AI 发展迅速,尤其是 LLM 涌现出了爆款应用 “ChatGPT”,不会整两句 GPT 你都不好意思扫共享单车。但是由于 OpenAI 的服务限制,国内访问比较困难。再加上自己的问题多少会有一些隐私问题,如果让云 …

阅读全文
随笔

bpftrace 实战(2)-向进程注入钩子

在上一实战案例中,展示了 bpftrace 最常规的用法:观察。利用 bpftrace 可以我们可以从内核层面,观察整个服务的任何函数调用状态。借助收集到的信息,辅助定位 bug。 最近几个月我都投入在一个分布式系统的开 …

阅读全文
Linux

bpftrace 实战 - 排查内存泄漏

内存泄漏是 C 开发非常经典的问题,目前已经存在很多优秀的内存检测工具,比如强大的 Valgrind。 借助 ebpftrace 我们可以非常简单、直观的找到泄漏的位置,而且非常灵活,自己决定其中的细节。 文中我构建了一 …

阅读全文
Linux

bpftrace 入门(6) 控制语句

bpftrace 也提供了常见的流程控制语句: 条件语句 循环语句 如果你熟悉 C 或者 Java,它们看起来会相当眼熟。 条件语句 bpftrace 的条件语句与 C 语言完全一样: 当满足条件时执行 A 处语句,否则 …

阅读全文
Linux

bpftrace 入门(5) 内置函数

bpftrace 无法定义函数,但提供了约 30 个内置函数,可以在 bpftrace 脚本的任意位置调用它们。这里介绍几个最常用的内置函数,完整的列表可以参考官方文档 …

阅读全文
Linux

bpftrace 入门(4)变量

内置变量 无论 Dynamic tracing 或者 Static tracing,它们的目的都是监听特定函数调用事件,这些函数即可以在内核中,也可以在用户态的应用或者 lib 中。获知这些函数调用时的参数、返回值就已经 …

阅读全文