限制cpu时间和内存使用

参加过各种 online judge 的同学肯定知道,一般每道编程题都会有运算时间限制和内存限制。在python中,我们可以使用resource模块来实现。

限制cpu时间

import signal
import resource
import os

def time_excedded(signo, frame):
    print "time's up"
    raise SystemExit(1)

def set_max_runtime(seconds):
    soft, hard = resource.getrlimit(resource.RLIMIT_CPU)
    resource.setrlimit(resource.RLIMIT_CPU, (seconds, hard))
    signal.signal(signal.SIGXCPU, time_excedded)

if __name__ == "__main__":
    set_max_runtime(15)
    while True:
        pass

限制内存

def limit_memory(maxsize):
    soft, hard = resource.getrlimit(resource.RLIMIT_AS)
    resource.setrlimit(resource.RLIMIT_AS, (maxsize, hard))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • YarnYarn产生背景:Yarn直接来自于MR1.0MR1.0 问题:采用的是master slave结构,ma...
    时待吾阅读 5,978评论 2 23
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,420评论 11 349
  • 〔学习总结〕 ①超级个体:这周主要学习的内容是结果思维,简化自己目标流程。我学到的主要是三件事打卡,和之前不同。之...
    雪雪Maisie阅读 204评论 0 1
  • Give so much time to improving yourself that you won’t ha...
    O巴阅读 156评论 0 0
  • 记得大四的时候出来实习,当时公司的总经理和我分享了一句人生心得——学会和自己在一起,和自己做朋友。 之所以会和我说...
    小苏的笔记本阅读 1,121评论 0 1