Первый вопрос: Хотите оптимизировать его? Скорее всего, вы не хотите. По крайней мере, если вы «всегда пишете код, как будто парень, который в конечном итоге будет поддерживать ваш код, будет жестоким психопатом, который знает, где вы живете». Читаемость, ясность намерений и удобство обслуживания всегда на первом месте.
Второй вопрос: Стоит ли оптимизировать ? По словам Дональда Кнута, в 97% это не так, и вы не спрашиваете Кнута, не так ли? Другим распространенным эмпирическим правилом является правило 80/20, т. Е. 80% времени выполнения тратится на 20% кода. Если вы вообще оптимизируете, сначала узнайте, где оптимизировать. Если ты угадаешь, ты ошибаешься. Период.
Третий вопрос: МОЖЕТЕ ли вы оптимизировать его? Нет, не можете, по крайней мере, не так легко. Вы думаете, что вы умнее, чем сотни программистов, которые писали ваш компилятор на протяжении многих десятилетий? Это не так. Если реальная реализация вашего алгоритма и структур данных может быть оптимизирована, вы можете предположить, что ваш компилятор может сделать это самостоятельно. Компилятор может выполнять развертывание цикла, переупорядочение команд, комбинирование переменных с неперекрывающимся временем жизни, оптимизацию структуры и многое другое - и в эту эпоху это даже лучше, чем большинство программистов на ассемблере в большинстве случаев. И даже если есть небольшой потенциал, вам лучше сосредоточиться на реализации лучшего алгоритма. Ни один компилятор не может превратить O (n ^ 2) в O (n log n), но, возможно, умный ученый сделал это, и вы можете реализовать его алгоритм, чтобы получить гораздо лучшую производительность, чем любая микрооптимизация.