Как лучше всего установить ограничения на неизвестный код?
Я использую библиотеку Python ( SimpleParse), которая, как мне кажется, вызывает некоторую убегающую рекурсию. Он уже сломал мой компьютер однажды, когда я просто пытался его отладить.
Что было бы для меня лучшим способом установить ограничения на объем используемой памяти?
Я думал, что напишу быструю C-программу с setrlimit для вызова Python и протестировал ее оттуда.
2 ответа
Python предоставляетsetrlimit()
так что вы можете остаться в Python. (Если вы не счастливее в C:)
Обратите внимание, что ядро Linux долгое время не поддерживало учет RSS; учет адресного пространства - это, вероятно, ваш лучший выбор, но он может быть слишком ограничительным. (Если программа mmap(2)
Несколько гигабайт, но никогда не беспокоят чтение или запись, это не имеет большого значения; ограничения могут запретить mmap(2)
, а не запрещать на самом деле использование памяти.)
Установка предела рекурсии здесь вряд ли является разумным решением. Если в библиотеке есть ошибка, пожалуйста, сообщите или исправьте ее. Если в вашем коде есть ошибка, пожалуйста, исправьте ее. SimpleParse широко не используется... вы можете посмотреть другие параметры парсера. Поскольку вы не объяснили, в чем заключается ваша настоящая проблема в том, что вы пытаетесь ее решить, мы мало что можем дать по альтернативным инструментам.