@daniil14056

Как выполнить проверку if в функции только 1 раз при первом вызове?

Допустим есть такая функия, в которой известно, что только при самом первом ее выполнении параметр может быть null, далее уже сравнение if будет бессмысленно.
Вопрос, существует ли какой подход, или шаблон оптимизации.
void fun(string str)
    {
        if (str == null) /// после 1 выполнения функции, str != null всегда
            return;
        //// fast work
    }
  • Вопрос задан
  • 236 просмотров
Пригласить эксперта
Ответы на вопрос 3
zagayevskiy
@zagayevskiy
Android developer at Yandex
Это называется "преждевременная оптимизация". Проверка на null не стоит ничего.
Ответ написан
Комментировать
@leremin
atypical programmer
А какая разница проверять ли аргумент на null или на первый запуск?
Ответ написан
Комментировать
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Только написать 2 функции: одну с проверкой, другую без. И вызывать первую только один первый раз, а потом вторую. Если вызов в цикле, то надо развернуть цикл - первую итерацию вытащить перед циклом и гнать цикл со второй итерации.

Но эта оптимизация будет практически бесполезна во всех случаях. Тупо увеличение кода может изменить попадания в кэш и замедлить вашу программу гораздо сильнее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы