Я использую библиотеку NLP (Stanford NER), которая бросает ошибки OOM для редких входных документов.Ограничить вызов CPU/Stack для Java?
Я планирую в конечном итоге изолировать эти документы и выяснить, что с ними вызывает ошибки, но это трудно сделать (я запускаю в Hadoop, поэтому я просто знаю, что ошибка происходит на 17% через split 379/500 или что-то вроде того). В качестве промежуточного решения я хотел бы иметь возможность применять ограничение на процессор и память для этого конкретного вызова.
Я не уверен, что лучший способ сделать это. Мой первый, хотя и состоит в том, чтобы создать фиксированный пул потоков из одного потока и использовать timed get() для Future. Это, по крайней мере, даст мне ограничение на настенные часы, которое, скорее всего, поможет.
Мой вопрос заключается в том, есть ли способ сделать это лучше, чем при разумном количестве усилий.