Допустим, вам нужно реализовать очень быстрый алгоритм для решения какой-то проблемы, он может зависеть от набора параметров, которые вы будете загружать в память из какого-либо источника данных. Допустим, эти параметры будут работать как константы после того, как они были проанализированы (но все еще зависят от проблемы). Если бы эти константы были известны с самого начала и записаны явно в исходном коде, я бы ожидал, что компилятор встроит их, что может дать хорошие улучшения скорости, если к этим параметрам часто обращаются вблизи узкого места. Однако, если они будут проанализированы программой из внешнего источника после ее компиляции, они, как правило, не будут встроены, даже если вы наделите свой объект конечными переменными.
Я предполагаю, что хитрость может заключаться в том, чтобы хранить копию эффективного объекта для каждого набора значений, где каждый набор значений записан явно в коде. Тогда можно было бы использовать соответствующий объект. Но это будет дорогостоящей памятью, и код будет расти в геометрической прогрессии.
Другая идея может заключаться в динамической компиляции кода после анализа набора параметров.
Мой вопрос: есть ли что-то, что когда-либо было разработано для элегантного решения этой проблемы, более конкретно в Java / C ++.