Код для измерения ТОЧНОГО времени выполнения внутри код на iPad или телефоне?

Используя STL увеличит Ваш двоичный размер для двух основных причин:

Встраивание

По умолчанию, компилятор рассматривает код шаблона как встроенный. Поэтому, если Вы будете использовать std::list в нескольких различных единицах компиляции, , и компилятор встраивает тот код , то у них каждый будут свои собственные локальные встроенные определения std::list функции (который, вероятно, не является грандиозным предприятием, так как компилятор только встроит очень маленькие определения по умолчанию).

Примечание, которые (поскольку Martin указывает в другом месте) умножаются - определенные символы разделяются всеми современными компоновщиками C++ на больших платформах, как описано в документация GCC . Таким образом, если компилятор оставит код шаблона исключительным, то компоновщик удалит дубликаты.

Специализация

из-за самой природы шаблонов C++, std::list потенциально произвольно отличается, чем std::list. На самом деле стандартные мандаты, который std::vector определяется как битовый вектор, так большинство операций, там полностью отличающиеся, чем значение по умолчанию std::vector.

Только специалист по обслуживанию библиотеки может иметь дело с этим. Одно решение состоит в том, чтобы взять базовую функциональность и "un-templatize" это. Превратите его в структуру данных C-стиля с void* везде. Затем шаблонный интерфейс, который видят нисходящие разработчики, является тонкой оберткой. Уменьшение объема дублированного кода, потому что шаблонные специализации вся доля общее основание.

23
задан Community 23 May 2017 в 11:45
поделиться

1 ответ

loop
  {
   NSDate *start = [NSDate date];

  // a considerable amount of difficult processing here
  // a considerable amount of difficult processing here
  // a considerable amount of difficult processing here

   NSDate *methodFinish = [NSDate date];
   NSTimeInterval executionTime = [methodFinish timeIntervalSinceDate:start];

   NSLog(@"Execution Time: %f", executionTime);
  }

Должно работать.

76
ответ дан 29 November 2019 в 00:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: