Nano Hash - криптовалюты, майнинг, программирование

Как разделить время (хроно) на заданное значение

Я работаю над знакомством с хроно, чтобы оценить производительность. У меня есть глобальная переменная, в которой она собирает время вставки слов из файла в вектор строк. Если у меня есть n строк, как мне разделить это время на n, чтобы получить среднее время и преобразовать его в секунды, микросекунды, миллисекунды? Я нашел, как разделить хроно-время на другое хроно, но не могу найти, как разделить на заданное число n. Вот что я пытался:

//global var
auto InsertionTimerChainingHT = std::chrono::system_clock::now();
//... function declerations
// inside function where I insert strings to vector
auto total = std::chrono::system_clock::now();
for (auto it = DataArray.begin(); it != DataArray.end(); it++)
{
    auto start = std::chrono::system_clock::now();
    ChainingHT.insert(it->data());
    auto stop = std::chrono::system_clock::now();

    total += (stop - start);


}
InsertionTimerChainingHT = total;
// I attempted to do the following
InsertionTimerChainingHT /= 1853;
InsertionTimerChainingHT = (InsertionTimerChainingHT / 1853).count();
30.11.2018

  • Используйте std::chrono::duration<double> diff = start - stop;, чтобы получить время в секундах. Почему вы делите на 1853? 30.11.2018
  • @BarmakShemirani Спасибо, что дали мне знать, как преобразовать в секунды. 1853 — это количество элементов, которые я вставил за указанный промежуток времени. Я пытаюсь получить среднее время для вставленных строк. 30.11.2018

Ответы:


1

Храните total как chrono::duration, а не chrono::time_point. Возврат system_clock::now() - это time_point (момент времени). Разница между stop и start составляет duration (например, 3 микросекунды).

Например:

auto total = std::chrono::system_clock::duration{0};  // zero system_clock ticks

duration можно разделить на скаляр, в результате чего получится duration:

total /= DataArray.size();
30.11.2018
  • Рад, что это сработало. Если у вас есть час, вот видеоруководство по хроно: youtube.com/watch?v =P32hvk8b13M 30.11.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..