Joe*_*ams 22 memory haskell ghc
在使用GHC编译的Haskell程序中,是否可以以编程方式防止过多的内存使用?也就是说,让它在内存使用量达到指定限制时通知程序,最好指示有问题的线程.
例如,假设我想编写一个服务器,托管脚本语言解释器,用户可以连接到该服务器.这是Turing-complete,所以程序理论上可以使用无限的内存或时间.假设每个客户端都使用单独的线程处理.如果客户端写入一个非常快速消耗内存的无限循环,我想确保该线程在被异常警告之前消耗的内存不超过1 MB.发生这种情况时,我不希望其他用户受到影响.
这可能是使用单独的进程ulimit,但是:
我宁愿将其保留在一个程序中,以避免进程间通信的复杂性.
我需要支持Linux和Windows,所以如果可能的话,我宁愿保持与平台无关.