logo
当前位置:首 页 > python
  • Tornado 源码阅读:初步认识
    ioloop `ioloop`是`tornado`的核心模块,也是个调度模块,各种异步事件都是由他调度的,所以必须弄清他的执行逻辑   源码分析 而`ioloop`的核心部分则是 `while True`这个循环内部的逻辑,贴上他的代码下    def start(self):         if self._running:             raise RuntimeError(“IOLoop is already running”)         self._setup_logging()  ...
  • Python 源码阅读:内存管理机制(2)
    Python 的内存分配策略 arena arena: 多个pool聚合的结果 arena size pool的大小默认值位4KB arena的大小默认值256KB, 能放置 256/4=64 个pool obmalloc.c中代码 #define ARENA_SIZE              (256 << 10)     /* 256KB */ arena 结构 一个完整的arena = arena_object + pool集合 typedef uchar block;   /* Record keeping for arenas. */ struct arena_obj...
  • Python 源码阅读:内存管理机制(1)
    Python的内存管理架构 基本分层 在Objects/obmalloc.c源码中, 给了一个分层划分 可以看到 layer 3: Object–specific memory(int/dict/list/string….)          Python 实现并维护          更高抽象层次的内存管理策略, 主要是各类特定对象的缓冲池机制. 具体见前面几篇涉及的内存分配机制   layer 2: Python‘s object allocator Python 实现并维护...
  • 2017-12-06
    , , 已有2568围观 0条评论 供稿者:
    源码位置 Include/dictobject.h | Objects/dictobject.c PyDictObject的存储策略 1. 使用散列表进行存储   2. 使用开放定址法处理冲突       2.1 插入, 发生冲突, 通过二次探测算法, 寻找下一个位置, 直到找到可用位置, 放入(形成一条冲突...
  • 2017-12-06
    , , 已有2443围观 0条评论 供稿者:
    示例 >>> a = () >>> b = () >>> id(a) == id(b) True   >>> a = (1, ) >>> b = (1, ) >>> id(a) == id(b) False 源码位置 Include/tupleobject.h | Objects/tupleobject.c 结构 定义 t...
  • 2017-12-06
    , , 已有2587围观 0条评论 供稿者:
    源码位置 Include/listobject.h | Objects/listobject.c 定义 typedef struct {     PyObject_VAR_HEAD       PyObject **ob_item;       Py_ssize_t allocated; } PyListObject; 说明 1. PyObject_VAR_HEAD PyListObject是变长对象  ...
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容。站长联系:cjx2328#126.com(修改#为@)
Copyright ©ziao Studio All Rights Reserved. E-mail:cjx2328#126.com(#号改成@) 沪ICP备14052271号-3