李枫 用于 Linux 内核调试的 Pythonfor Linux Kernel Debugging Feng Li (李枫) hkli2013@126.com Oct 19,2019 PyCon China Hangzhou 2019 Agenda I. Linux Kernel Overview V. Practice on ARM Development Environment My Practice VI. Wrap-up I. Linux Kernel Debugging 1) Overview DTrace https://en.wikipedia.org/wiki/DTrace a comprehensive oracle.com/en/operating-systems/oracle-linux/ dtrace-guide/ … http://www.brendangregg.com/dtrace.html Linux Tracing Landscape a0 码力 | 63 页 | 4.07 MB | 1 年前3
PyConChina2022-上海-Python Profiling原理深入探索与实践-羿莉•请求内核每N毫秒发送一个信号(使用 系统调用setitimer) •注册一个signal processer在每次获得 signal的时候record stack •当结束分析的时候,请求Linux停止发 送信号并且打印输出。 基于Settimer + 系统调用 典型: StackSampler StackProf !"#$:%&'(-CPU Py-spy: 通过系统调用 process_vm_readv line_profiler 89setTrace#: ;EFProfileGRust编写速度快,并不运行在python 程序里,因此更安全 • 支持record结果,并生成 speedscope/flamegraph等格式、支持 top/dump等 • py-spy 缺点 Profiling,-./ • 5•‘’“”•–+j—˜N•+j™š • 5•klš›œ••žk8s pod-ns • Ÿ ¡¢£Xp¤ ¡Š¥X • ¦VƒU/§¨¢£ • ©ª«G•linux kernel TU • O¬š›¨-®¯KL•°± • ¦VƒU/¦V²³ 0123 0145 Thanks! 感谢观看 0 码力 | 28 页 | 12.73 MB | 1 年前3
Hello 算法 1.1.0 Python版全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、 Rust、C 和 Zig 等语言。 ‧ 鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 有 char 类型,单个字符实际上是长度为 1 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 ‧ 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字 符编码”章节。 ‧ 字节。 ‧ Go 语言的 string 类型在内部使用 UTF‑8 编码。Go 语言还提供了 rune 类型,它用于表示单个 Unicode 码点。 ‧ Rust 语言的 str 和 String 类型在内部使用 UTF‑8 编码。Rust 也提供了 char 类型,用于表示单个 Unicode 码点。 需要注意的是,以上讨论的都是字符串在编程语言中的存储方式,这和字符串如何在文件中存储或在网络中0 码力 | 364 页 | 18.42 MB | 1 年前3
Hello 算法 1.0.0b5 Python版程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂、学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Java、C++、Python、Go、JS、TS、C#、Swift、Rust、Dart、Zig 等 语言。 ‧ 鼓励读者在章节讨论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若您是算法初学者,从未接触过算法,或者已经有一些刷题经 false true false 对于表 3‑1 ,需要注意以下几点。 ‧ C 和 C++ 未明确规定基本数据类型大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于包 括 Linux 和 macOS 在内的 Unix 64 位操作系统。 ‧ 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字 符编码”章节。 ‧ 个字节。 ‧ Go 语言的 string 类型在内部使用 UTF‑8 编码。Go 语言还提供了 rune 类型,它用于表示单个 Unicode 码点。 ‧ Rust 语言的 str 和 String 类型在内部使用 UTF‑8 编码。Rust 也提供了 char 类型,用于表示单个 Unicode 码点。 需要注意的是,以上讨论的都是字符串在编程语言中的存储方式,这和字符串如何在文件中存储或在网络中0 码力 | 361 页 | 30.64 MB | 1 年前3
Hello 算法 1.0.0 Python版全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、 Rust、C 和 Zig 等语言。 ‧ 鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 若你是算法初学者,从未接触过算法,或者已经有一些刷题经验,对数据结构与算法有模糊的认识,在会与 有 char 类型,单个字符实际上是长度为 1 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 ‧ 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字 符编码”章节。 ‧ 字节。 ‧ Go 语言的 string 类型在内部使用 UTF‑8 编码。Go 语言还提供了 rune 类型,它用于表示单个 Unicode 码点。 ‧ Rust 语言的 str 和 String 类型在内部使用 UTF‑8 编码。Rust 也提供了 char 类型,用于表示单个 Unicode 码点。 需要注意的是,以上讨论的都是字符串在编程语言中的存储方式,这和字符串如何在文件中存储或在网络中0 码力 | 362 页 | 17.54 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Python 版有 char 类型,单个字符实际上是长度为 1 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 ‧ 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字 符编码”章节。 ‧ 字节。 ‧ Go 语言的 string 类型在内部使用 UTF‑8 编码。Go 语言还提供了 rune 类型,它用于表示单个 Unicode 码点。 ‧ Rust 语言的 str 和 String 类型在内部使用 UTF‑8 编码。Rust 也提供了 char 类型,用于表示单个 Unicode 码点。 需要注意的是,以上讨论的都是字符串在编程语言中的存储方式,这和字符串如何在文件中存储或在网络中 链表的首个节点被称为“头节点”,最后一个节点被称为“尾节点”。 ‧ 尾节点指向的是“空”,它在 Java、C++ 和 Python 中分别被记为 null、nullptr 和 None 。 ‧ 在 C、C++、Go 和 Rust 等支持指针的语言中,上述“引用”应被替换为“指针”。 如以下代码所示,链表节点 ListNode 除了包含值,还需额外保存一个引用(指针)。因此在相同数据量下,链 表比数组占用更多的内存空间。0 码力 | 364 页 | 18.43 MB | 10 月前3
The Python Handbook
very easy. All you need is to install the official package from python.org, for Windows, macOS or Linux, and you're ready to go. 7 If you are new to programming, in the following posts I will guide you language worth knowing because I think we're just at the start. Lower level languages like C++ and Rust might be great for expert programmers, but daunting to begin, and they take a long time to master that's typically how we run programs. We use the REPL for quick prototyping and for learning. On Linux and macOS a Python program can also be transformed into a shell script, by prepending all its content0 码力 | 93 页 | 7.31 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Python 版沒有 char 型別,單個字元實際上是長度為 1 的字串 str 。 ‧ C 和 C++ 未明確規定基本資料型別的大小,而因實現和平臺各異。表 3‑1 遵循 LP64 資料模型,其用於 包括 Linux 和 macOS 在內的 Unix 64 位作業系統。 ‧ 字元 char 的大小在 C 和 C++ 中為 1 位元組,在大多數程式語言中取決於特定的字元編碼方法,詳見 “字元編碼”章節。 ‧ 位元組。 ‧ Go 語言的 string 型別在內部使用 UTF‑8 編碼。Go 語言還提供了 rune 型別,它用於表示單個 Unicode 碼點。 ‧ Rust 語言的 str 和 String 型別在內部使用 UTF‑8 編碼。Rust 也提供了 char 型別,用於表示單個 Unicode 碼點。 需要注意的是,以上討論的都是字串在程式語言中的儲存方式,這和字串如何在檔案中儲存或在網路中傳輸 鏈結串列的首個節點被稱為“頭節點”,最後一個節點被稱為“尾節點”。 ‧ 尾節點指向的是“空”,它在 Java、C++ 和 Python 中分別被記為 null、nullptr 和 None 。 ‧ 在 C、C++、Go 和 Rust 等支持指標的語言中,上述“引用”應被替換為“指標”。 如以下程式碼所示,鏈結串列節點 ListNode 除了包含值,還需額外儲存一個引用(指標)。因此在相同資料 量下,鏈結串列比陣列佔用更多的記憶體空間。0 码力 | 364 页 | 18.74 MB | 10 月前3
Hello 算法 1.0.0b1 Python版Swift; 2. 在 VSCode 的插件市场中搜索 swift,安装 Swift for Visual Studio Code。 12.1.9. Rust 环境 1. 下载并安装 Rust; 2. 在 VSCode 的插件市场中搜索 rust,安装 rust‑analyzer。 12.2. 一起参与创作 � 开源的魅力 纸质书籍的两次印刷的间隔时间往往需要数年,内容更新非常不方便。但在本开源0 码力 | 178 页 | 14.67 MB | 1 年前3
Hello 算法 1.0.0b2 Python版Swift; 2. 在 VSCode 的插件市场中搜索 swift,安装 Swift for Visual Studio Code。 12.1.9. Rust 环境 1. 下载并安装 Rust; 2. 在 VSCode 的插件市场中搜索 rust,安装 rust‑analyzer。 12.2. 一起参与创作 � 开源的魅力 纸质书籍的两次印刷的间隔时间往往需要数年,内容更新非常不方便。但在本开源0 码力 | 186 页 | 15.69 MB | 1 年前3
共 431 条
- 1
- 2
- 3
- 4
- 5
- 6
- 44













