Некая самописная программа любит читать из /proc/self/statm первое значение (total program size) для корректировки собственной логики (например, чтобы понять, можно ли держать данные в памяти, или лучше устроить файл на диске). Происходит это настолько часто, что накладные расходы на чтение из proc стали заметны.
Если /proc/self/statm не переоткрывать, а просто снова и снова читать из него, то данные не меняются, но все работает примерно в 20 раз быстрее ;(.
Вопросы.
1. Есть ли какой-нибудь хитрый способ ускорения работы с proc, позволяющий избавиться от постоянных open/close?
2. Можно ли узнавать total program size другим способом?
Код приводить бесполезно, потому что все уходит в систему внутри open.