Я пишу клиент-серверное приложение C ++.Сервер содержит список пропусков, в котором хранится пара ключ-значение.Я могу вставить данные из клиента, и запрос достигнет сервера, и будут выполнены такие операции, как вставка, удаление, поиск.
И клиент, и сервер будут иметь анклав SGX в них.Я хочу измерить процессорное время на сервере.Для этого я могу просто рассчитать истекшее время ЦП, начиная с момента, когда я выполняю вызов анклавов SGX на сервере для работы с пропуском списков, и заканчивать время, когда вызов анклавов возвращается на сервер.Эта ссылка показывает, как рассчитать истекшее время ЦП Измерение времени ЦП в c ++
Мне нужно сделать миллионы запросов, и для каждого из них я буду измерять время ЦП и хотел бы принятьсреднее значение для каждой операции, т. е. для вставки, удаления и поиска.
Не могли бы вы, ребята, подсказать, какой из перечисленных ниже способов эффективен?
- Рассчитать истекшее время ЦП и открытьфайл results.txt и запись в него по одной строке за раз.А потом вручную взять среднее?ИЛИ
- Использовать инструмент профилирования?Я не использовал никаких инструментов профилирования, так что понятия не имею, как это работает.
Несколько других связанных с этим вопросов: -
- На вычисление времени ЦП с использованием ctime не влияют переключение контекста и другие ресурсы на моем ПК?AFAIK, когда я сделаю вызов анклава, произойдет аппаратное переключение контекста.Поэтому попытка получить истекшее время путем помещения операторов ctime на уровень ненадежных серверов не помогает.Правильно?
- Есть ли хороший инструмент для сбора данных, хранящихся в файле results.txt , и создания из него красивого графика?