Измерение производительности процессорного времени для вызовов функций Intel SGX - PullRequest
0 голосов
/ 30 января 2019

Я пишу клиент-серверное приложение C ++.Сервер содержит список пропусков, в котором хранится пара ключ-значение.Я могу вставить данные из клиента, и запрос достигнет сервера, и будут выполнены такие операции, как вставка, удаление, поиск.

И клиент, и сервер будут иметь анклав SGX в них.Я хочу измерить процессорное время на сервере.Для этого я могу просто рассчитать истекшее время ЦП, начиная с момента, когда я выполняю вызов анклавов SGX на сервере для работы с пропуском списков, и заканчивать время, когда вызов анклавов возвращается на сервер.Эта ссылка показывает, как рассчитать истекшее время ЦП Измерение времени ЦП в c ++

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

Не могли бы вы, ребята, подсказать, какой из перечисленных ниже способов эффективен?

  1. Рассчитать истекшее время ЦП и открытьфайл results.txt и запись в него по одной строке за раз.А потом вручную взять среднее?ИЛИ
  2. Использовать инструмент профилирования?Я не использовал никаких инструментов профилирования, так что понятия не имею, как это работает.

Несколько других связанных с этим вопросов: -

  1. На вычисление времени ЦП с использованием ctime не влияют переключение контекста и другие ресурсы на моем ПК?AFAIK, когда я сделаю вызов анклава, произойдет аппаратное переключение контекста.Поэтому попытка получить истекшее время путем помещения операторов ctime на уровень ненадежных серверов не помогает.Правильно?
  2. Есть ли хороший инструмент для сбора данных, хранящихся в файле results.txt , и создания из него красивого графика?
...