Python编程常用技巧,你全知道么?( 九 )

resource.setrlimit(resource.RLIMIT_CPU (seconds hard))

signal.signal(signal.SIGXCPU time_exceeded)

# 限制内存使用

def set_max_memory(size):

soft hard = resource.getrlimit(resource.RLIMIT_AS)

resource.setrlimit(resource.RLIMIT_AS (size hard))

对CPU限制时候 , 先获取特定资源(RLIMIT_CPU)的软限制和硬限制 , 然后使用参数指定的秒数和获取的硬限制来设置 。 如果超过CPU时间 , 将注册导致系统退出的信号 。

对内存限制 , 也先获取软限制和硬限制 , 并用带有size参数的setrlimit对其进行设置 。

通过__slots__节省内存

如果程序中有一个类需要创建大量实例 , 那么可能会对内存占用会非常大 。 因为Python使用字典来表示类实例的属性 , 这可以加速执行 , 但内存效率很差 , 通常这不是问题 。 可以使用__slots__来优化:

推荐阅读