#google-benchmark
#google-benchmark
Вопрос:
Библиотека Google microbenchmark поддерживает оценку сложности алгоритма, но все выражается в сообщении фреймворку, каков ваш размер N
. Мне любопытно, каков наилучший способ представления M N
алгоритмов в этой среде. В моем тесте я просматриваю декартово произведение значений M amp; N в моем тесте.
Должен ли я вызывать SetComplexityN
с M N
помощью (amp; для O(MN)
алгоритмов, которые, как я предполагал SetComplexityN
, аналогичны M*N
)? Если бы я хотел жестко запрограммировать сложность алгоритма (по сравнению с наилучшей подгонкой) benchmark::oN
, сопоставляется ли это с M N
и benchmark::oNSquared
сопоставляется с O(MN)
?
Ответ №1:
Это еще не то, что мы рассматривали в библиотеке.
Если вы установите сложность M N
и используете oN
, то подходящая кривая, используемая для минимального вычисления наименьших квадратов, будет линейной M N
.
Однако, если вы установите сложность M*N
и используете oNSquared
, мы постараемся соответствовать pow(M*N, 2)
, что, скорее всего, не то, что вы хотите, поэтому я думаю, что все же использование oN
будет уместным.