小编El'*_*man的帖子

为什么Python在尝试计算非常大的数字时会"先发制人"地挂起?

关于杀死使用过多内存的进程之前我已经问过这个问题,而且我已经解决了大部分问题.

然而,有一个问题:计算大量数字似乎不受我试图使用的方法的影响.下面的代码旨在为进程设置10秒的CPU时间限制.

import resource
import os
import signal

def timeRanOut(n, stack):
    raise SystemExit('ran out of time!')
signal.signal(signal.SIGXCPU, timeRanOut)

soft,hard = resource.getrlimit(resource.RLIMIT_CPU)
print(soft,hard)
resource.setrlimit(resource.RLIMIT_CPU, (10, 100))

y = 10**(10**10)
Run Code Online (Sandbox Code Playgroud)

希望在运行此脚本(在Unix机器上)时看到的是:

-1 -1
ran out of time!
Run Code Online (Sandbox Code Playgroud)

相反,我没有输出.我获得输出的唯一方法是使用Ctrl+ C,如果我在10秒后Ctrl+ 我得到这个C:

^C-1 -1
ran out of time!
CPU time limit exceeded
Run Code Online (Sandbox Code Playgroud)

如果I Ctrl+ C 10秒之前,那么我必须做两次,并且控制台输出如下所示:

^C-1 -1
^CTraceback (most recent call last):
  File "procLimitTest.py", line 18, in <module> …
Run Code Online (Sandbox Code Playgroud)

python linux

47
推荐指数
2
解决办法
2109
查看次数

如何使用Python自动终止使用过多内存的进程?

情况:我有一个网站,允许人们使用共享托管服务器上的Python解释器,以不同的语言(特别是我创建的esolang)执行任意代码.我在一个单独的进程中运行此代码,该进程的时间限制为60秒.

问题:你可以做类似(相当于Python)的东西10**(10**10),它会迅速消耗比我分配给我的更多的内存.显然,它也锁定了Apache - 或者响应时间太长 - 所以我必须重启它.

我已经看到了这个问题,但是给出的答案使用的是Perl,我完全不知道,因此我想在Python中找到答案.不过,操作系统也是 Linux.

具体来说,我想要以下特点:

  1. 自动运行
  2. 强制杀死超过内存限制的任何进程,如1MB或100MB
  3. 杀死我的代码产生的超过24小时的任何进程

我使用这段代码(在Django视图中)来创建进程并运行它(proxy_prgm是一个Manager,所以我可以从解释esolang代码的程序中检索数据):

prgmT[uid] = multiprocessing.Process(
    target = proxy_prgm.runCatch,
    args = (steps,),
    name="program run")

prgmT[uid].start()
prgmT[uid].join(60) #time limit of 1 minute

if prgmT[uid].is_alive():
    prgmT[uid].terminate()
    proxy_prgm.stop()
Run Code Online (Sandbox Code Playgroud)

如果您需要更多详细信息,请不要犹豫,告诉我要编辑什么(或问我问题).

python linux

9
推荐指数
1
解决办法
1262
查看次数

如何解决Lua中的函数依赖循环?

在我的Lua代码中(使用Corona SDK),我的问题基本归结为:

local function foo()
    bar()
end

local function bar()
    foo()
end
Run Code Online (Sandbox Code Playgroud)

但是,因为Lua是逐行完成的,所以没有机会工作.此外,我没有看到避免这种依赖循环的方法; foo()创建为触摸事件调用bar()的DisplayObjects,它本身具有调用foo()的能力.换句话说,我需要能够制作按钮,当点击它们时,制作更多可以做同样事情的按钮.

此外,我知道Lua没有像C/C++那样的函数原型.有关如何解决此问题的任何建议?

lua function circular-dependency coronasdk

3
推荐指数
1
解决办法
683
查看次数

标签 统计

linux ×2

python ×2

circular-dependency ×1

coronasdk ×1

function ×1

lua ×1