我有一个Python程序运行在4gbram32位12.04ubuntu上的一些输入数据上。程序的时空复杂度均为O(n)。当输入数据大约为100kb时,它在大约4s内完成执行,峰值RAM消耗为0.5%(在LINUX中使用“top”命令)。但是,当我尝试输入大小为500kB、2.5MB和16MB的数据时,该过程并没有在1小时内完成(在每种情况下,我都必须使用Cntrl C取消),并且内存消耗被固定在1.6%(即每种情况下大约64MB)。我可以用更多的内存分配这个Python进程吗?
注意:我使用Python制作的mrjob库在Python中实现Map Reduce作业。
以下是输入csv文件为100 kB时成功执行的日志。ankit@ubuntu:~/mrj/mrjo/mrjob/examples$ python mt1.py as.txt > asop.txtusing configs in /home/ankit/.mrjob.conf
creating tmp directory /home/ankit/mrj/mrjo/examples/mt1.ankit.20121224.094809.251269
> /usr/bin/python mt1.py --step-num=0 --mapper /home/ankit/mrj/mrjo/examples/mt1.ankit.20121224.094809.251269/input_part-00000
writing to /home/ankit/mrj/mrjo/examples/mt1.ankit.20121224.094809.251269/step-0-mapper_part-00000
> /usr/bin/python mt1.py --step-num=0 --mapper /home/ankit/mrj/mrjo/examples/mt1.ankit.20121224.0