icymirror 发表于 2014-08-06 11:32

回复 10# tklist
假定:调用这个bin的目的是把python处理的数据转交这个bin来处理
如果是这样,有没有可能把那个c的bin文件改成so的,就是linux下面的动态库的格式?
然后,用python的ctypes模块来调用。

q1208c 发表于 2014-08-06 11:42

回复 10# tklist

我好象明白了. 我觉得不管你用什么方式, 成功的可能性都不大.

因为你要使用的是 子进程 的方式, 而子进程 相当于 fork, 所以, 会把整个父进程 fork出来的, 不管你用不用. 你已经占了25G了, 除非你有 64或更多的内存.







我还是那个建议, 从程序设计上, 把大量数据放在内存里, 是不合适的.
   

tklist 发表于 2014-08-06 21:05

这个没有试过。可以试下。
回复 11# icymirror


   

tklist 发表于 2014-08-06 21:09

现在搞成功了,用的其他方法。另外问一个问题,python释放内存这块有点问题。

在python 主程序里面
现在有2种方法调用另外一个python程序
1:import XXX
   XXX.run()
2 os.system("python XXX.py")

这2个方法那个能及时内存,我感觉第2个方法会及时释放内存,但是实际执行好像不是这样的。
ps: 2个方法我都在后面加上gc.collect()

回复 12# q1208c


   

q1208c 发表于 2014-08-07 08:01

回复 14# tklist

我对python的 gc机制也不是太清楚.

不过, 我觉得后一种在进程结束后, 内存会释放出来. 前一种的话, 有可能在执行过程中, gc 就会把不再使用的内存回收掉了.


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