Closed sh-xin-guo closed 4 years ago
这个提的挺好的,我写过一些python 缓存的介绍,开发团队看一下,有没有帮助。 在 https://github.com/chinapnr/python_study/tree/master/section_01_计算缓存、优化算法和加速%20Python%20执行
python 自带的 lru_cache 看看是否可以满足,代码可能要修改一下,这样很多重复的入参就不需要从数据库读了。
还有个办法是把 sqlite 数据读到内存,但是这样好像多线程会有问题。所以还是用缓存吧,用非侵入的缓存装饰器。
好的,我们试一下
使用 lru_cache
,测试得到生成速率为 5000/s
现在生成银行卡,身份证信息等需要从 sqlite 和 csv 中读取地区信息等,每次执行函数都会进行一次IO。在 parrot 等需要批量生成数据的时候,会造成大量 io ,导致 cpu 及内存占用迅速上升,在生成百万级别数据时会直接造成应用奔溃。
建议这些信息直接使用静态变量的形式存放。