Вступить в клуб →
лёгкаявопросПроизводительность и низкие задержки

Расчёт суммы корзины на каждый запрос копирует 50 тысяч заказов

double totalAmount(std::vector<Order> orders) {
    double sum = 0;
    for (const auto& o : orders) sum += o.amount;
    return sum;
}

auto total = totalAmount(cache.orders());   // orders() возвращает const std::vector<Order>&

Профайлер показывает, что половина времени обработчика уходит на malloc и конструкторы копирования Order. Что исправить?

  • Принимать const std::vector<Order>&
  • Принимать std::vector<Order>&& orders
  • Вызывать с std::move(cache.orders())
  • Сделать функцию inline в заголовке

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела