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

При заполнении вектора на 20 миллионов точек память скачет и всё тормозит

std::vector<Point> points;
for (size_t i = 0; i < reader.count(); ++i) {   // count() известен заранее: 20 млн
    points.push_back(reader.next());
}

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

  • points.reserve(reader.count()) до цикла
  • points.resize(reader.count()) и push_back
  • points.shrink_to_fit() после каждой вставки
  • Заменить vector на std::deque с push_front

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

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

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

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