【发布时间】:2013-05-16 16:59:26
【问题描述】:
为了向我的 Python 库中添加更多工具,我开始了一个宠物项目 - 一个个人时间管理应用程序,Thyme。
目前,该应用由两个进程组成:每 500 毫秒,一个单独的进程通过win32ui 获取焦点窗口,并通过 SQLAlchemy 将其写入 SQLite DB;而主进程启动一个处理应用程序 UI 的 CherryPy Web 服务器。
但是,这两个 Python 进程的总内存占用约为 30MB,我想减少它。我知道做到这一点的一种方法是使用多线程——但我真的不知道它是否值得打开那罐蠕虫。我的用例是否适合多线程方法?
【问题讨论】:
-
多线程如何减少内存占用?
-
@RobertHarvey 我的印象是这两个线程会以某种方式在同一个 Python 可执行文件下运行,因此使用的内存比两个单独的
python.exes 少。见stackoverflow.com/questions/4214775/…,stackoverflow.com/a/3046201/425219 -
哦,我明白了。嗯,这有点取决于你想要做什么。如果这是某种编组方案,您的第二个可执行文件可能在其他机器上运行,那么在同一个程序中拥有两个线程是行不通的。坦率地说,我不确定为什么需要在同一个可执行文件中进行轮询,除非多个用户共享同一个数据库。另外,现在 30MB 真的很多吗,新机器从 8GB RAM 开始?
标签: python sqlalchemy cherrypy pywin32 python-multithreading