Простой: не оптимизировать преждевременно.И в этом случае это преждевременно. - это тонкая разница между подъемом длины и запросом ее каждый раз, но при любых нормальных обстоятельствах: a: мы говорим об наносекундах , если это , и b: она изменяется в зависимости отбудь то голый вектор, список, список и т. д. Не изучайте общее правило.
Но большая проблема здесь: этот конкретный пример абсолютно не имеет значения к общей производительности;вы говорите о DataTable
;DataTable
предположительно, который заполняется из базы данных, которая является вне процесса, и, вероятно, на другой машине.Вы сравниваете наносекунды (возможно, меньше) с задержкой в сети (обычно 0,3 мс в локальной сети) плюс время запроса, а также пропускная способность (зависит от запроса).
Нельзя изменить скорость света (задержка), но вы можете написать эффективный запрос данных, который обращается только к необходимым данным, используя соответствующую индексацию и, возможно, денормализацию.Да, и N + 1 - это важная вещь.
Точно так же, даже в памяти - большинство узких мест, как правило, связано с такими вещами, как неуместное зацикливание (когда поиск на основе хеш-функции будет лучше), или неиспользование соответствующегокэширование избавляет от необходимости постоянно запрашивать данные снова и снова, снова и снова и снова.
В «сети в целом»;кеширование, сжатие (транспорт и контент - например, минимизация js / css), домены без файлов cookie для статического контента (возможно, CDN), фермы серверов, жирные каналы и соответствующие процессоры ...