└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Python那些事儿 2 | 3 | ` 4 | 大家可以提话题,如果合适我会录入到书里. 5 | ` 6 | 7 | ## 临时列表: 8 | 9 | * Python数据结构实现原理: 10 | * ... 11 | * tuple 12 | * list 13 | * dict 14 | * set 15 | 16 | 17 | * Python gil 18 | * gil的演进 19 | * gil的实现 20 | * 怎么绕过gil 21 | 22 | 23 | * Python的内存管理 24 | * 基本分层 25 | * 内存缓冲池 26 | * 对象缓冲池 27 | * gc 28 | * 引用计数 29 | * 标记清除 30 | * 分代回收 31 | 32 | 33 | * 常见问题 34 | * 通过opcode字节码验证Python的线程安全 35 | * 为何出现Python多线程超跑TOP cpu100%的情况? 36 | * Python Queue的实现原理 ? 37 | * Python Multiprocessing Queue的实现原理 ? 38 | * 如何确认Python框架及模块是非阻塞的? 39 | * 如何调试代码及在线调试附带上下文的逻辑? 40 | * Python连接池的实现 ? 41 | 42 | 43 | * Python多任务处理 44 | * Python 线程 45 | * Python 多进程 46 | * Python 协程 47 | * 较完美的解决方案 48 | 49 | 50 | * Python Multiprocessing 51 | * Value实现原理 52 | * Manager实现原理 53 | * ... 54 | 55 | 56 | * 锁 57 | * 锁机制 58 | * 读写锁 59 | * 分段锁 60 | * gcc __sync_x cas锁 61 | 62 | 63 | * 网络编程中查找性能点 64 | * io、cpu、mem、net、si 65 |  * 压力源 66 | * 是否阻塞 67 | * content switch过高 68 | * metrics time cost监控 69 | * 大招systemtap 70 | 71 | 72 | * 网络编程中提高性能 73 | * io非阻塞 74 | * 长连接及连接池 75 | * io合并 76 | * prefork + event_loop 77 | * accept锁策略 78 | * .. 79 | 80 | * 构建自定义web框架 81 | * wsgi 82 | * route 83 | * orm 84 | * view 85 | * to do... 86 | 87 | 88 | * 爬虫 89 | - 爬虫的痛点 90 | - 如何高效抓取 91 | - 常见的爬虫性能问题 92 | - 构建千万级爬虫思路 93 | + engine调度器 94 | + spider抓取 95 | + timer定时器 96 | + extractor分析处理 97 | + 高性能MQ的选择 98 | + 存储DB的选择 99 | + 去重DB的选择 100 | + TO DO ... 101 | 102 | 103 | * Python Redis 实战场景 104 | * 基于客户端的集群设计 105 | * 如何提高io效率及吞吐 106 | * 设计消息可靠的队列 107 | * 定时器的设计 108 | * 多维度分页设计 109 | * 分布式锁 110 | * 简单粗暴的分布式锁设计 111 | * 可重入的分布式锁设计 112 | * 顺序公平的分布式锁 113 | 114 | 115 | * Python 并发任务管理 116 | * 信号 117 | * 安全退出 118 | * 僵尸进程 119 | * 规避OOM 120 | * 动态加减进程 121 | * 重载 122 | * fcntl 文件锁 123 | * 合理设置进程名 124 | * 线程池 125 | * 协程池 126 | * 进程文件描述表 127 | * copy on write 128 | 129 | 130 | * Python Rocksdb实现redis数据结构 131 | * rocksdb原理 132 | * list 133 | * hash 134 | * zset 135 | * set 136 | * sharding 137 | * tcp server 138 | * match redis client 139 | 140 | ... 141 | --------------------------------------------------------------------------------