Если вам нужно изменить эти значения, чтобы запустить ваши тесты QA, тогда это не слишком большая проблема.Тем не менее, следует избегать требования потребителя сделать это для запуска программы (IMHO).Если ничего другого, создайте скрипт-обертку, который устанавливает эти значения и запускает приложение, чтобы пользователи по-прежнему могли запускать приложения одним щелчком мыши.Однако установка их изнутри программы была бы предпочтительнее.По крайней мере, пусть программа проверит лимиты при запуске и (чисто) выдает ошибку рано, если лимиты слишком малы.
Если разработчик программного обеспечения сказал мне, что мне пришлось возиться со своим стеком ипределы дескриптора, чтобы заставить их программу работать, это изменило бы мое восприятие программного обеспечения.Это заставило бы меня задуматься «почему они должны превышать системные ограничения, которые, по-видимому, приемлемы для любого другого программного обеспечения, которое у меня есть?».Это может или не может быть действительной проблемой, но просьба сделать что-то, что (для многих) может показаться хакерским, не имеет такого же профессионального преимущества, как программа, которую вы только запускаете и запускаете.
Эта проблемакажется еще хуже, когда вы говорите: «Это не та ситуация, когда они МОГУТ закончиться, при нормальной нагрузке наши программы закончатся и вызовут ошибку».Программа, превышающая эти пределы, это одно, а программа, которая не корректно обрабатывает условия ошибки, возникающие в результате превышения этих ограничений, - это совсем другое.Если вы достигнете предела дескриптора файла и попытаетесь открыть файл, вы должны получить сообщение об ошибке, указывающее, что у вас слишком много открытых файлов.Это не должно вызывать сбой программы в хорошо разработанной программе.Может быть сложнее обнаружить проблемы использования стека, но нехватка файловых дескрипторов никогда не должна вызывать сбой.
Вы не даете много подробностей о том, что это за программа, но я бы сказал, что этонебезопасно предполагать, что пользователи вашей программы обязательно будут иметь соответствующие разрешения для изменения этих значений.В любом случае, вероятно, также небезопасно предполагать, что ничто иное не может изменить эти значения, пока ваша программа работает без ведома пользователя.
Хотя всегда есть исключения, я бы сказал, что в целом программа, которая превышает этиограничения должны быть пересмотрены.Ограничения существуют по определенной причине, и почти все остальные части программного обеспечения в вашей системе работают в этих пределах без проблем.Вам действительно нужно, чтобы столько файлов открывалось одновременно, или было бы лучше открыть несколько файлов, обработать их, закрыть их и открыть еще несколько?Ваша библиотека / программа пытается сделать слишком много в одном большом пакете, или было бы лучше разбить его на более мелкие, независимые части, которые работают вместе?Превышаете ли вы пределы стека, потому что используете глубоко рекурсивный алгоритм, который можно переписать нерекурсивным способом?Вероятно, существует множество способов улучшения рассматриваемой библиотеки и программы, чтобы облегчить необходимость изменения ограничений системных ресурсов.