Тест для программы, которую я программирую - PullRequest
4 голосов
/ 11 декабря 2010

Hay!

Я хотел бы создать тест, который может определить сложность (время и пространство) программы.функция за функцией ... Я думал о том, чтобы сделать это с библиотекой "время" и подсчитать секунды при выполнении функций для большого числа "n".

У кого-нибудь есть идея получше?может быть, он уже существует?:)

Спасибо!Amihay

Ответы [ 2 ]

1 голос
/ 11 декабря 2010

Выглядит как вполне разумный подход, по крайней мере, для временной сложности. Убедитесь, что ваша программа выводит данные в удобном формате, например, в формате CSV или через табуляцию, чтобы вы могли легко скопировать / загрузить это в электронную таблицу.

Сложность пространства может быть немного сложнее получить надежно. Для этого вы можете изменить свои функции, чтобы они возвращали полезную метрику. Например, если основная структура данных вашего алгоритма представляет собой карту фиксированных элементов, то возвращение максимального размера карты во время выполнения даст вам достаточно информации.

1 голос
/ 11 декабря 2010

Напишите несколько тестов и выполните профилирование производительности. Конечно, вы можете написать свои собственные функции, но это не так, как это делается. Хороший профилировщик предоставит вам всю информацию, которую вы можете себе представить.

Изучите этот учебник по профилю msnd.

...