tklist 发表于 2014-08-05 16:46

问一个关于Python调用shell内存问题

有一个python主程序,占用很大内存,在执行过程中,需要调用c语言写的bin文件,基本不占内存,但是用os.popen出错。Cannot allocate memory。
查了好像是popen会复制python主进程的内存,问个各位有什么方法解决吗?

tklist 发表于 2014-08-05 16:52

改用os.system直接bin程序没有执行,直接退出了。try except 也没有捕获到异常。

q1208c 发表于 2014-08-05 17:39

不是建议使用 subprocess 了么?

tklist 发表于 2014-08-05 18:44

用了subprocess.call也出同样的错误
回复 3# q1208c


   

q1208c 发表于 2014-08-05 19:08

回复 4# tklist
你不会是把内存占光了吧?



   

tklist 发表于 2014-08-05 19:19

没有占用光,但是python主程序占用了70%内存回复 5# q1208c


   

tklist 发表于 2014-08-05 22:12

额,没人知道怎么搞吗?我准备在写一个python程序,分别调用耗内存python程序,c语言写的bin文件。

q1208c 发表于 2014-08-06 08:02

to=findpost&pid=&ptid=4149023]6# tklist


我个人觉得, 一个 python 程序应该用不了多少内存的. 除非你把好大一堆数据放在了内存里. 从程序设计角度, 这是不合适的.



单从技术角度来看, subprocess.popen 是一般的外部调用解决办法. call 我没用过. 由于不在了解你那的具体情况. 只能瞎猜了. 你的进程不会超过了它能使用的最大内存数了吧?
32位的进程, 好象最大是2G.

icymirror 发表于 2014-08-06 10:14

因为操作系统本身有支持进程内存空间的功能,所以和@q1208c有同样的疑问。
或者,你使用的机器本身配置的内存比较少?128M或者256M的老式机器?

tklist 发表于 2014-08-06 10:58

我们特殊业务需求就是要用很多内存。25G。
回复 8# q1208c


   
页: [1] 2
查看完整版本: 问一个关于Python调用shell内存问题