Два последних примечания, касающихся производительности. Несмотря на то, что абсолютные значения изменяются со временем, с появлением новых версий Python и компьютеров, на которых выполняется тестирование, относительные результаты остаются практически неизменными. То есть стек на основе кортежей побеждает при отсутствии операций обращения по индексу. Однако любые результаты измерения производительности в таком динамично развивающемся языке, как Python, могут измениться со временем, поэтому обязательно выполняйте подобные тесты у себя, чтобы получить более точные результаты.
Во-вторых, часто существует больше способов измерения производительности, чем простой хронометраж. Чтобы получить более полное представление, обращайтесь к описанию profile в руководстве по стандартной библиотеке (и его оптимизированной альтернативы cProfile). Профилировщики выполняют программный код Python, попутно собирают информацию о производительности и выводят отчет по завершении выполнения программного кода. Это наиболее надежный способ обнаружения узких мест в программном коде перед началом работ по оптимизации с применением других синтаксических конструкций, алгоритмов и структур данных или переноса части приложения на язык C.
Однако в случае простого измерения производительности наш модуль хронометража предоставляет все необходимые нам данные. Мы будем повторно использовать его для измерения более ощутимого повышения скорости при выполнении альтернативных реализаций множеств в следующем разделе.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011