Python 、mongodb 菜鸡的几个疑问

2017-12-19 11:41:25 +08:00
 sgissb1
最近在用 python+mongodb 倒腾玩具性的工具。现在遇到几个疑问,google 和度娘都没有很好的了解清楚想问一问,各位老司机。

------- python3 -------
1. 用了一大堆 python3 官方文档的库,和 pymongo,是否可以把解析器换成 pypy 之类多线程优化好的。
2. pypy 官网上没找到如何把 cpython 临时替换成 pypy 的说明,或者我对 pypy 的理解是有问题
3. 想加快 python 代码的运行,除了每次执行生成的临时缓存 pyc、pyd 文件之外,有没有可以一步到位编译成二进制文件的(我的意思就是说,再不改动或者优化代码的情况下,可否像强语言那样编译成目标代码的情况)
4. 单点中环境( cpython ),多进程和多线程如何选;感觉多进程通讯好麻烦。

------- mongodb (有些概念我还停留在 sql 阶段,所以用 sql 的术语来代替一下) -------
1. 看到官网有介绍说,可以锁库函数。但没有找到锁表的函数。网上解释 CRUD 时会自动锁表。这个多并发操作同一张表的时候,脏数据问题是否存在啊,有没有靠谱传送门供参考。
2. mongodb 不同函数操作性能有没有靠谱传送门,想做一个定性了解
1012 次点击
所在节点    问与答
3 条回复
yuchenyang1994
2017-12-19 14:13:23 +08:00
1. 操作 mongodb 这种 io 操作,用啥解释器都一样,不明白你要干什么
2. pypy 就是解释器,不要替换,装一个解释器就可以,用 pypy 解释器运行
3. 可以,用 cython,
4.io 密集型用多线程,python3 用 async/await 也就是协程,计算密集型用多进程,
Morriaty
2017-12-19 14:24:32 +08:00
1. 可以考虑用 motor,前提是对有异步有足够的理解
2. pypy 也是有 GIL 的
3. pyc 只是提升模块的加载速度,而不是运行速度
4. IO 密集型用多进程或异步,计算密集型请换语言
sgissb1
2017-12-19 15:36:31 +08:00
@Morriaty 针对哥们你的逐条回复

1. 我去看看哈。
2. 那看来 pypy 也是没有必要的哈
3. 那有没有办法一步到位的?就是省掉运行时的解析过程?
4. 没有做过定性分析,但从主管来看,io 占比会多一点,但后续也不清楚。主要是字符串解析简单好调代码。


@yuchenyang1994
1. 然而这只是你自己的想象。我把 python 和 mongdo 分开问问题的
2. 我试试哈,不知道 anconda 会不会有坑
3. cython 我再看看,看介绍是要重写部分代码的
4. 协程这玩意我是知道,不过性能上有多大提升就不清楚了。以前用协程画过界面玩(游戏里多一些)


另外感谢两位哥们回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/415937

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX