hstk30

每当你想要批评别人时,你要记住,这个世界上所有的人,并不是个个都有过你拥有的那些优越条件。

Python 垃圾回收机制

垃圾回收机制 理论知识 垃圾收集器(garbage collector)将内存视为一张有向可达图(reachability graph),其形式如下图 将节点分为根节点(root node) 和堆节点(heap node)。堆节点对应于在堆中的一个已分配块。有向边p -> q 表示p 有对q 的引用。 根节点持有对堆节点内存块的引用,这些根节点可以是寄存器、栈里的变量,或者是...

stat 的代价很高

一个日志引发的性能问题 import os import time fp = open('test.txt', mode='w') start_time = time.time() for _ in range(100000): fp.write('a') fp.flush() os.stat('test.txt') end_time = time.time() print(f'...

nginx 相关问题记录

nginx 相关问题记录 现在整个大地都采用一种语言,只包括为数不多的单词。 在一次从东方往西方迁徙的过程中,人们发现了苏美尔地区,并在那里定居下来。 接着他们奔走相告说:“来,让我们制造砖块,并把它们烧好。” 于是,他们用砖块代替石头,用沥青代替灰泥(建造房屋)。 然后,他们又说:“来,让我们建造一座带有高塔的城市,这个塔将高达云霄,也将让我们声名远扬, 同时,有个这个城市,我们就...

抛砖引玉--unittest 编写举例

需求说明 说,有一个需求: 输入: 一个字符串,存在各种特殊字符 输出: 一个字符串:过滤掉了输入字符串里面的http url、不可打印字符 (就用str.isprintable来判断就行), 将剩下的文本重新拼接成一个字符串,并去掉两头的空格(str.strip 即可) 一个字典,记录返回的这个字符串中每个字符的位置和输入字符串中对应字...

Clean Code 摘录

Clean Code 摘录 一直以为,Java 是一门非常依赖IDE 的语言。这本书里,Bob 大叔 其实也不断的提及现代工具、IDE 等词。 第二章 有意义的命名 别用accountList 来指称一组账号,除非它真的是List类型。用accountGroup 或 bunchOfAccounts, 甚至直接用accounts都会好一些。 即便容器是个List,最好也别再名称中写...

C语言中结构体指针的强制类型转换

顺便实现一个小多态

内存和地址 首先要从内存和地址开始讲起。在我们眼里,内存和地址就像下图一样,很直观。 我们直觉上,上面的图应该就对应下面的代码。 char a = 'a'; char b = 'b'; char* c = &b; char d = 'd'; 但是,为什么呢? 为什么第三个位置上的0x02 就因为它长的像一个地址,我们直觉上就是将它归为地址呢? 把它解释为一个字符 值不行...

进程、事件循环的一个类比

进程、事件循环的一个类比 突然想到一组很好的类比,觉得非常有趣,记录一下。 正文 我租的地方附近有个图书馆,周末就去走走,又体会了一把大学图书馆的感觉。不过西电的图书馆其实平时并没什么人, 去了就可以坐。而且我都是去二楼的阅览室,里面有很多体育杂志、青年文摘… 而且有斜着的桌子,看书更方便, 我感觉我有点怀念我的大学生活了。 家附近的图书馆周末就和西电期末一样,基本上没有“空位”,除...

Python Dict对象解析--PyDictObject

Python Dict对象解析 散列表 嗯,基本面试的时候都会问一下散列表,基本就回答下解决冲突的几种方法: 分离链接法 开放定址法 再散列 巴拉巴拉,就敷衍过去了,(* ̄︶ ̄) 情景分析 和在 Python对象机制基石——PyObject 中讲的差不多,dict 在源码里是就是由PyDictObject 和类型对象PyDict_Type 实现的。 note: ...

Python对象机制基石——PyObject

Python 对象机制基石 上图是Include/object.h ,也是整个 cPython 中的最重要的结构体和它们的关系。 note : 这个图并不是 UML 中的类图哦,只是用来表示这些结构体之间的关系,毕竟 c语言 中并没有什么对象。箭头表示 引用 或 依赖 关系。 PyObject 和PyVarObject 可以看到PyObject 只有两个字段(下面我们称名为Py{...

Python源码阅读前言

用c 思考,用Python 实现。 其实在大四的时候就有幸看到 《Python源码剖析》 这本书,在实习的时候午睡前还会看一会儿再睡, 写的实在是好,使得我的c 语言能力也大有长进。最近有空再复习一下, 会更新一些Python源码相关的文章,主要讲Python 内建对象:int, string, list, dict的实现, 内存管理机制,可能会讲多线程机制。 Python源码阅...