Используя:
lst = [8, 8, 9, 9, 7, 15, 15, 2, 20, 13, 2, 24, 6, 11, 7, 12, 4, 10, 18, 13, 23, 11, 3, 11, 12, 10, 4, 5, 4, 22, 6, 3, 19, 14, 21, 11, 1, 5, 14, 8, 0, 1, 16, 5, 10, 13, 17, 1, 16, 17, 12, 6, 10, 0, 3, 9, 9, 3, 7, 7, 6, 6, 7, 5, 14, 18, 12, 19, 2, 8, 9, 0, 8, 4, 5]
И использование timeit модуля:
$ python -m timeit -s 'import uniquetest' 'uniquetest.etchasketch(uniquetest.lst)'
И так далее для различных других функций (который я назвал в честь их плакатов), у меня есть следующие результаты (на моем первом поколении Intel MacBook Pro):
Allen: 14.6 µs per loop [1]
Terhorst: 26.6 µs per loop
Tarle: 44.7 µs per loop
ctcherry: 44.8 µs per loop
Etchasketch 1 (short): 64.6 µs per loop
Schinckel: 65.0 µs per loop
Etchasketch 2: 71.6 µs per loop
Little: 89.4 µs per loop
Tyler: 179.0 µs per loop
[1] Примечание, что Allen изменяет список на месте †“, я полагаю, что это скосило время в этом timeit
, модуль выполняет код 100000 раз, и 99999 из них со списком простофили меньше.
Сводка : простая реализация с победами наборов над запутывающими остротами:-)
Согласно Yahoo Рекомендации по ускорению работы вашего веб-сайта , всегда используйте
вместо @import
. Более подробная информация доступна в этом сообщении блога .
В IE (проверено на 6, 7 и 8),
@import
заставляет таблицы стилей быть скачивается последовательно. Скачивание параллельные ресурсы - ключ к более быстрая страница. Такое поведение в IE заставляет страницу занимать больше времени для завершения.
Использование
позволяет браузеру открывать дополнительные соединения, тем самым сокращая время загрузки.
Краткая версия? @import
не поддерживается в старых браузерах, в определенных ситуациях возникают проблемы с определенными широко используемыми браузерами (IE6 и IE7), может вести себя по-разному в разных браузерах, когда работает и предлагает нет преимуществ перед
.
Длинная версия? Вы хотите использовать
, но есть несколько сценариев (сейчас в основном неактуальных), в которых использование @import
имеет смысл. Из В чем разница между @import и ссылкой для CSS? :
Наиболее частая причина использования @import вместо (или вместе с) потому что старые браузеры не узнайте @import, чтобы вы могли скрыть стили от них.
Речь идет о сокрытии вещей от IE4, поэтому я сказал «в основном несущественные». Один из этих случаев скрывает что-то от IE6, но это лучше сделать с помощью Условных комментариев .
Более современное (и актуальное) сравнение находится в Использование правила CSS @import :
Internet Explorer (вы знали, что он в конце концов) не справляется с указание типов носителей - задыхается. В основном IE (версии 4-7) пытаются прочтите тип носителя, как будто он был частью имени файла, в результате чего весь вещь, чтобы обрушиться. Как таковой, если вы не хотите, чтобы в вашем CSS был тип носителя по умолчанию «все», вы наверное, лучше использовать комбинация тега и импорт - указание типа носителя в вашу ссылку, а затем импортировать соответствующий CSS в файле, который вы ссылка на. Я еще не слышал, если IE8 страдает той же проблемой (если вы случайно знаю, пожалуйста, просветите меня комментарии!).
Другой источник - Yahoo Best Practices for Speed Up Your Web Site :
Один из предыдущих передовых методов заявляет, что CSS должен быть наверху чтобы учесть прогрессивные рендеринг.
В IE
@import
ведет себя так же, как используя в нижней части страницу, поэтому лучше не использовать ее.
но на самом деле не объясняет почему (отсюда предыдущие ссылки).