Путеводитель по Тайланду »»» Бангкок (Bangkok) »»» храмы Бангкока »»» храм Ват Траймит (храм Золотого Будды) Храм Ват Траймит (Wat Traimit) расположен в центральной части тайской столицы, а районе Яоварат (Yaowarat), в 10-ти минутах ходьбы от станции подземки Хуа Лампонг (Hua Lamphong MRT station).
Главной достопримечательностью храма Ват Траймит является золотая статуя Будды весом 5500 килограмм, чудесным образом обнаруженная незадолго до празднования 2500-летия вознесения Будды на трансцендентные небеса Нирваны. А именно в 2498 году по тайскому летоисчислению (1955 год от Рождества Христова), тайский календарь ведёт отсчёт от даты ухода Будды в лучший из миров.
Кроме Золотого Будды, смотреть в храме Ват Траймит, как это ни удивительно, нечего. Храм огромен, однако все его остальные помещения закрыты для праздношатающейся публики.
Посещение храма Ват Траймит, как и большинства популярных храмов, платное. Удовольствие посмотреть на Золотого Будду стоит 40 бат. Открыт храм ежедневно, с 8-ми часов утра и до 5-ти часов вечера. Расположение храма Ват Траймит. Карта центральной части Бангкока.Как уже было сказано выше, храм Ват Траймит расположен в 10-ти минутах ходьбы от станции подземки Хуа Лампонг. Имея на руках карту, дойти от станции метро до храма нетрудно, он огромен, узнаваем, и построен на открытом месте.
В отличие от метро, на такси ехать к храму Ват Траймит не рекомендуется, поскольку район, в котором он расположен, Яоварат, он же Чайнатаун, знаменит своими пробками. Что ещё посмотреть рядом с храмом Ват Траймит. Улицы, рынки и китайские храмы Чайнатауна.Посещение храма Ват Траймит и осмотр статуи Золотого Будды имеет смысл совместить с прогулкой по Чайнатауну, живописному китайскому кварталу Бангкока.
Улицы Чайнатауна суетливы, шумны и перегружены толпами народа, они не особенно чисты, и не всегда пахнут розами, тем не менее, жизнь здесь бьёт ключом, присутствует драйв, и уровень колорита просто зашкаливает.
Отзывы об этом месте не всегда восторженные, тем не менее, Чайнатаун однозначно заслуживает того, чтобы увидеть его своими глазами.
Кроме колорита, который, пожалуй, является главной приманкой этих мест, Чайнатаун притягивает к себе туристов неординарным шоппингом.
Рынки Чайнатауна тянутся километровыми рядами, на лотках и в ларьках продаётся всё, что только можно найти в Бангкоке, а ещё в Чайнатауне продаётся эксклюзив, такой, как традиционная китайская одежда из шёлка.
Китайские храмы Чайнатауна не менее колоритны, чем его рынки. Визуально китайские храмы до такой степени отличаются от тайских, что поневоле задаёшь себе вопрос, а храмы ли это одной религии?
Отличия эти касаются не только красных деревянных колонн, черепичных крыш и каменных львов, охраняющих подходы к храму. Отличия касаются и манеры изображения буддистских подвижников и святых. Таких вот расслабленных старцев, см. фотографию выше, невозможно представить себе в стенах тайского храма, для китайцев же это обыденная стилистика. В качестве заключения. Приехав посмотреть на Золотого Будду и Ват Траймит, прогуляйтесь заодно по Чайнатауну, вы об этом не пожалеете. |
|
история, фото, как добраться, адрес
на карте и время работы в 2023
Фарахеева Лилия
+7 (495) 725 1001
1001тур
Молодежная, 1001 тур
Перезвоните мне
Дербина Ирина
+7 (495) 725 1001
1001тур
ВДНХ, 1001 тур/Pegas
Перезвоните мне
Кулагина Елена
+7 (495) 725 1001
1001тур
Кузьминки, 1001 тур/Pegas
Перезвоните мне
Макарова Ирина
+7 (495) 725 1001
1001тур
Планерная, 1001 тур/Pegas
Перезвоните мне
Китаев Максим
+7 (495) 725 1001
1001тур
Москва
Перезвоните мне
Ольховский Дмитрий
+7 (495) 725 1001
1001тур
Раменки, 1001 тур
Перезвоните мне
Маргарян Шушан
+7 (495) 725 1001
1001тур
Тверская, 1001 тур
Перезвоните мне
Сайкина Анна
+7 (495) 725 1001
1001тур
Электрозаводская, 1001 тур
Перезвоните мне
Слобожанинова Юлия
+7 (495) 725 1001
1001тур
Киевская Европейский, 1001 тур
Перезвоните мне
Михайлова Наталья
+7 (495) 725 1001
1001тур
Тульская, 1001 тур/Pegas
Перезвоните мне
Лисина Ольга
+7 (495) 725 1001
1001тур
Водный стадион, 1001 тур
Перезвоните мне
Афанасьева Ольга
+7 (495) 725 1001
1001тур
Киевская, 1001 тур
Перезвоните мне
Власова Анжелика
+7 (495) 725 1001
1001тур
Речной Вокзал У Речного, 1001 тур/Pegas
Перезвоните мне
Вахрамова Ирина
+7 (495) 725 1001
1001тур
Полежаевская, 1001 тур
Перезвоните мне
Гореликова Виктория
+7 (495) 725 1001
1001тур
Новые Черемушки, 1001 тур/Pegas
Перезвоните мне
Яременко Ирина
+7 (495) 725 1001
1001тур
Москва
Перезвоните мне
Стрельникова Наталья
+7 (495) 725 1001
1001тур
Кантемировская, 1001 тур/Pegas
Перезвоните мне
Добрякова Мария
+7 (495) 725 1001
1001тур
Фили, 1001 тур
Перезвоните мне
Погосян Ани
+7 (495) 725 1001
1001тур
Алтуфьево Весна, 1001 тур
Перезвоните мне
Косарева Екатерина
+7 (495) 725 1001
1001тур
Беляево, 1001 тур/Pegas
Перезвоните мне
Королева Анна
+7 (495) 725 1001
1001тур
Красногвардейская Вегас, 1001 тур
Перезвоните мне
Архипова Елизавета
+7 (495) 725 1001
1001тур
Щукинская, 1001 тур
Перезвоните мне
Познер Екатерина
+7 (495) 725 1001
1001тур
Речной Вокзал, 1001 тур
Перезвоните мне
Шагербаева Джульетта
+7 (495) 725 1001
1001тур
Тёплый Стан, 1001 тур
Перезвоните мне
Лужкова Ольга
+7 (495) 725 1001
1001тур
Киевская, 1001 тур
Перезвоните мне
Калинина Маргарита
+7 (495) 725 1001
1001тур
Новослободская, 1001 тур
Перезвоните мне
Ларионова Ирина
+7 (495) 725 1001
1001тур
Кантемировская, 1001 тур/Pegas
Перезвоните мне
Павликова Юлия
+7 (495) 725 1001
1001тур
Кузьминки, 1001 тур/Pegas
Перезвоните мне
Даричева Екатерина
+7 (495) 725 1001
1001тур
Братиславская, 1001 тур
Перезвоните мне
Бодаева Людмила
+7 (495) 725 1001
1001тур
Жулебино, 1001 тур/Fun&Sun (ex. TUI)
Перезвоните мне
Никулина Наталья
+7 (495) 725 1001
1001тур
Новослободская, 1001 тур
Перезвоните мне
Петрикова Валерия
+7 (495) 725 1001
1001тур
Планерная, 1001 тур/Pegas
Перезвоните мне
Бабичева Ирина
+7 (495) 725 1001
1001тур
Кузьминки, 1001 тур/Fun&Sun (ex. TUI)
Перезвоните мне
Данилина Валентина
+7 (495) 725 1001
1001тур
Щукинская, 1001 тур
Перезвоните мне
Габоева Белла
+7 (495) 725 1001
1001тур
Белорусская, 1001 тур
Перезвоните мне
Королева Татьяна
+7 (495) 725 1001
1001тур
Сокольники, 1001 тур
Перезвоните мне
Фортова Маргарита
+7 (495) 725 1001
1001тур
Кузьминки, 1001 тур/Pegas
Перезвоните мне
Кичигина Елена
+7 (495) 725 1001
1001тур
Электрозаводская, 1001 тур
Перезвоните мне
Северина Инна
+7 (495) 725 1001
1001тур
Павелецкая, 1001 тур
Перезвоните мне
Самодаровская Ольга
+7 (495) 725 1001
1001тур
Киевская Европейский, 1001 тур
Перезвоните мне
Захарченко Ольга
+7 (495) 725 1001
1001тур
Бабушкинская, 1001 тур/Pegas
Перезвоните мне
Бриленкова Ксения
+7 (495) 725 1001
1001тур
Полежаевская, 1001 тур
Перезвоните мне
Гребнева Александра
+7 (495) 725 1001
1001тур
Таганская, 1001 тур
Перезвоните мне
Малькович Регина
+7 (495) 725 1001
1001тур
Водный стадион, 1001 тур
Перезвоните мне
Решникова Евгения
+7 (495) 725 1001
1001тур
Тверская, 1001 тур
Перезвоните мне
Ильиных Анастасия
+7 (495) 725 1001
1001тур
Медведково, 1001 тур/Pegas
Перезвоните мне
Скорописова Майя
+7 (495) 725 1001
1001тур
Медведково, 1001 тур/Pegas
Перезвоните мне
Алексеева Оксана
+7 (495) 725 1001
1001тур
Киевская Европейский, 1001 тур
Перезвоните мне
Бекишева Анастасия
+7 (495) 725 1001
1001тур
Митино, 1001 тур
Перезвоните мне
Петухова Маргарита
+7 (495) 725 1001
1001тур
Домодедовская, 1001 тур/Pegas
Перезвоните мне
Шугаева Светлана
+7 (495) 725 1001
1001тур
Кузьминки, 1001 тур/Fun&Sun (ex. TUI)
Перезвоните мне
Рогова Светлана
+7 (495) 725 1001
1001тур
Планерная, 1001 тур
Перезвоните мне
Тихонова Юлия
+7 (495) 725 1001
1001тур
Молодежная, 1001 тур
Перезвоните мне
Угляй Екатерина
+7 (495) 725 1001
1001тур
Кузнецкий мост, 1001 тур
Перезвоните мне
Купреева Ольга
+7 (495) 725 1001
1001тур
Выхино, 1001 тур
Перезвоните мне
Карпухина Наталья
+7 (495) 725 1001
1001тур
Улица 1905 года, 1001 тур
Перезвоните мне
Белоусова Светлана
+7 (495) 725 1001
1001тур
Домодедовская, 1001 тур
Перезвоните мне
Сукачева Оксана
+7 (495) 725 1001
1001тур
Алексеевская, 1001 тур/Pegas
Перезвоните мне
Сергеев Евгений
+7 (495) 725 1001
1001тур
Москва
Перезвоните мне
Осипова Инесса
+7 (495) 725 1001
1001тур
Улица Скобелевская, 1001 тур/Pegas
Перезвоните мне
Калинин Никита
+7 (495) 725 1001
1001тур
Москва
Перезвоните мне
Четвергова Анна
+7 (495) 725 1001
1001тур
Юго-Западная, 1001 тур
Перезвоните мне
Сарварова Екатерина
+7 (495) 725 1001
1001тур
Водный стадион, 1001 тур
Перезвоните мне
Петрова Анастасия
+7 (495) 725 1001
1001тур
Войковская, 1001 тур
Перезвоните мне
Ковалёв Вадим
+7 (495) 725 1001
1001тур
Коломенская, 1001 тур/Pegas
Перезвоните мне
Чабан Екатерина
+7 (495) 725 1001
1001тур
Медведково, 1001 тур/Pegas
Перезвоните мне
Сергеева Екатерина
+7 (495) 725 1001
1001тур
Планерная, 1001 тур
Перезвоните мне
Иванова Анастасия
+7 (495) 725 1001
1001тур
Улица 1905 года, 1001 тур
Перезвоните мне
Базаров Николай
+7 (495) 725 1001
1001тур
Сокол, 1001 тур
Перезвоните мне
Еприцкая Яна
+7 (495) 725 1001
1001тур
Фили, 1001 тур
Перезвоните мне
Пицун Жанна
+7 (495) 725 1001
1001тур
Кузьминки, 1001 тур/Fun&Sun (ex. TUI)
Перезвоните мне
Карпунина Ирина
+7 (495) 725 1001
1001тур
Таганская, 1001 тур
Перезвоните мне
Хлопкова Анна
+7 (495) 725 1001
1001тур
Бабушкинская, 1001 тур/Pegas
Перезвоните мне
Ласьков Максим
+7 (495) 725 1001
1001тур
Пражская, 1001 тур
Перезвоните мне
Змерзлюк Наталья
+7 (495) 725 1001
1001тур
Полежаевская, 1001 тур
Перезвоните мне
Павленко Елена
+7 (495) 725 1001
1001тур
Домодедовская, 1001 тур/Pegas
Перезвоните мне
Гаршина Алена
+7 (495) 725 1001
1001тур
Улица 1905 года, 1001 тур
Перезвоните мне
Гусева Евгения
+7 (495) 725 1001
1001тур
Беляево, 1001 тур/Pegas
Перезвоните мне
Антонова Наталья
+7 (495) 725 1001
1001тур
Полежаевская, 1001 тур
Перезвоните мне
Шипова Алиса
+7 (495) 725 1001
1001тур
Таганская, 1001 тур
Перезвоните мне
Гарёва Оксана
+7 (495) 725 1001
1001тур
Академическая, 1001 тур/Pegas
Перезвоните мне
Сапрыкина Юлия
+7 (495) 725 1001
1001тур
Тёплый Стан, 1001 тур
Перезвоните мне
Буглак Иван
+7 (495) 725 1001
1001тур
Тверская, 1001 тур
Перезвоните мне
Гундырева Юлия
+7 (495) 725 1001
1001тур
Щелковская, 1001 тур/Pegas
Перезвоните мне
Кириллов Дмитрий
+7 (495) 725 1001
1001тур
Коломенская, 1001 тур/Pegas
Перезвоните мне
Плешко Марина
+7 (495) 725 1001
1001тур
Жулебино, 1001 тур/Fun&Sun (ex. TUI)
Перезвоните мне
Рогова Юлия
+7 (495) 725 1001
1001тур
Домодедовская, 1001 тур
Перезвоните мне
Кулинич Анна
+7 (495) 725 1001
1001тур
Тульская, 1001 тур/Pegas
Перезвоните мне
Тузова Татьяна
+7 (495) 725 1001
1001тур
Сокольники, 1001 тур
Перезвоните мне
Родзик Светлана
+7 (495) 725 1001
1001тур
Щукинская, 1001 тур
Перезвоните мне
Иванова Наталья
+7 (495) 725 1001
1001тур
Москва
Перезвоните мне
Сатосова Дарья
+7 (495) 725 1001
1001тур
Войковская, 1001 тур
Перезвоните мне
Кулаков Никита
+7 (495) 725 1001
1001тур
Красногвардейская Вегас, 1001 тур
Перезвоните мне
Ескина Алла
+7 (495) 725 1001
1001тур
Москва
Перезвоните мне
Иванова Наталья
+7 (495) 725 1001
1001тур
Митино, 1001 тур
Перезвоните мне
Наумова Юлия
+7 (495) 725 1001
1001тур
Таганская, 1001 тур
Перезвоните мне
Ворик Илона
+7 (495) 725 1001
1001тур
Речной Вокзал У Речного, 1001 тур/Pegas
Перезвоните мне
Петрова Галина
+7 (495) 725 1001
1001тур
Сокол, 1001 тур
Перезвоните мне
Шепелева Татьяна
+7 (495) 725 1001
1001тур
Кантемировская, 1001 тур/Pegas
Перезвоните мне
Дмитрова Елена
+7 (495) 725 1001
1001тур
Домодедовская, 1001 тур
Перезвоните мне
Наконечный Антон
+7 (495) 725 1001
1001тур
Павелецкая, 1001 тур
Перезвоните мне
Евдокимова Екатерина
+7 (495) 725 1001
1001тур
Петровско-Разумовская Парус, 1001 тур/Pegas
Перезвоните мне
Ковалёв Максим
+7 (495) 725 1001
1001тур
Тверская, 1001 тур
Перезвоните мне
Порохина Елена
+7 (495) 725 1001
1001тур
Петровско-Разумовская Парус, 1001 тур/Pegas
Перезвоните мне
Гончарова Лилия
+7 (495) 725 1001
1001тур
ВДНХ, 1001 тур/Pegas
Перезвоните мне
Тимофеева Инна
+7 (495) 725 1001
1001тур
Щелковская, 1001 тур
Перезвоните мне
Шелягина Ирина
+7 (495) 725 1001
1001тур
Войковская, 1001 тур
Перезвоните мне
Малышева Анастасия
+7 (495) 725 1001
1001тур
Павелецкая, 1001 тур
Перезвоните мне
Гуржапова Лейла
+7 (495) 725 1001
1001тур
Братиславская, 1001 тур
Перезвоните мне
Ульбашева Елена
+7 (495) 725 1001
1001тур
Тульская, 1001 тур
Перезвоните мне
Саватеева Светлана
+7 (495) 725 1001
1001тур
Белорусская, 1001 тур
Перезвоните мне
Беляева Ксения
+7 (495) 725 1001
1001тур
Электрозаводская, 1001 тур
Перезвоните мне
Кочеткова Валерия
+7 (495) 725 1001
1001тур
Отрадное, 1001 тур/Pegas
Перезвоните мне
Потапова Ольга
+7 (495) 725 1001
1001тур
Павелецкая, 1001 тур
Перезвоните мне
Захарова Инна
+7 (495) 725 1001
1001тур
Новые Черемушки, 1001 тур/Pegas
Перезвоните мне
Сорокина Юлия
+7 (495) 725 1001
1001тур
Белорусская, 1001 тур
Перезвоните мне
Овсянникова Юлия
+7 (495) 725 1001
1001тур
Щелковская, 1001 тур
Перезвоните мне
Юрьева Елена
+7 (495) 725 1001
1001тур
Кузнецкий мост, 1001 тур
Перезвоните мне
Лавренюк Анжелика
+7 (495) 725 1001
1001тур
Бабушкинская, 1001 тур/Pegas
Перезвоните мне
Попеску Даниела
+7 (495) 725 1001
1001тур
Улица 1905 года, 1001 тур
Перезвоните мне
Степанов Владимир
+7 (495) 725 1001
1001тур
Калужская, 1001 тур
Перезвоните мне
Маслов Александр
+7 (495) 725 1001
1001тур
Новогиреево, 1001 тур
Перезвоните мне
Погоний Кристина
+7 (495) 725 1001
1001тур
Крылатское, 1001 тур/Pegas
Перезвоните мне
Азаревич Мария
+7 (495) 725 1001
1001тур
Тульская, 1001 тур
Перезвоните мне
Волкова Виктория
+7 (495) 725 1001
1001тур
Братиславская, 1001 тур
Перезвоните мне
Галахова Светлана
+7 (495) 725 1001
1001тур
Марьино, 1001 тур
Перезвоните мне
Лукманова Рената
+7 (495) 725 1001
1001тур
Юго-Западная, 1001 тур
Перезвоните мне
Москвина Светлана
+7 (495) 725 1001
1001тур
Братиславская, 1001 тур
Перезвоните мне
Шевцова Марина
+7 (495) 725 1001
1001тур
Медведково, 1001 тур/Pegas
Перезвоните мне
Акиняева Светлана
+7 (495) 725 1001
1001тур
Щелковская, 1001 тур
Перезвоните мне
Гурьева Елена
+7 (495) 725 1001
1001тур
Митино, 1001 тур
Перезвоните мне
Махнёва Мария
+7 (495) 725 1001
1001тур
Войковская, 1001 тур
Перезвоните мне
Максимов Павел
+7 (495) 725 1001
1001тур
Щукинская, 1001 тур
Перезвоните мне
Антохина Светлана
+7 (495) 725 1001
1001тур
Петровско-Разумовская Парус, 1001 тур/Pegas
Перезвоните мне
Нестерова Ирина
+7 (495) 725 1001
1001тур
Новогиреево, 1001 тур
Перезвоните мне
Карева Олеся
+7 (495) 725 1001
1001тур
Речной Вокзал, 1001 тур
Перезвоните мне
Муравленко Анастасия
+7 (495) 725 1001
1001тур
Тульская, 1001 тур/Pegas
Перезвоните мне
Сорокин Анатолий
+7 (495) 725 1001
1001тур
Тёплый Стан, 1001 тур
Перезвоните мне
Письменов Евгений
+7 (495) 725 1001
1001тур
Пражская, 1001 тур
Перезвоните мне
Зубкова Руслана
+7 (495) 725 1001
1001тур
Молодежная, 1001 тур
Перезвоните мне
Кинкович Татьяна
+7 (495) 725 1001
1001тур
Саларьево, 1001 тур
Перезвоните мне
Кутепова Диана
+7 (495) 725 1001
1001тур
Красногвардейская Вегас, 1001 тур
Перезвоните мне
Атмахова Ирина
+7 (495) 725 1001
1001тур
Улица Скобелевская, 1001 тур/Pegas
Перезвоните мне
Стахова Анна
+7 (495) 725 1001
1001тур
Тёплый Стан, 1001 тур
Перезвоните мне
Самохина Валерия
+7 (495) 725 1001
1001тур
Беляево, 1001 тур/Pegas
Перезвоните мне
Наумова Екатерина
+7 (495) 725 1001
1001тур
Марьино, 1001 тур
Перезвоните мне
Таврина Анна
+7 (495) 725 1001
1001тур
Саларьево, 1001 тур
Перезвоните мне
Поливановская Анна
+7 (495) 725 1001
1001тур
Раменки, 1001 тур
Перезвоните мне
Чекалова Лариса
+7 (495) 725 1001
1001тур
Кузьминки, 1001 тур/Pegas
Перезвоните мне
Базылева Наталия
+7 (495) 725 1001
1001тур
Улица Скобелевская, 1001 тур/Pegas
Перезвоните мне
Такташова Светлана
+7 (495) 725 1001
1001тур
Тёплый Стан, 1001 тур
Перезвоните мне
Королев Артём
+7 (495) 725 1001
1001тур
Тульская, 1001 тур
Перезвоните мне
Мухамбетова Рауза
+7 (495) 725 1001
1001тур
Новогиреево, 1001 тур
Перезвоните мне
Голузина Елена
+7 (495) 725 1001
1001тур
Водный стадион, 1001 тур
Перезвоните мне
Табагуа Диана
+7 (495) 725 1001
1001тур
Кузнецкий мост, 1001 тур
Перезвоните мне
Самарина Марина
+7 (495) 725 1001
1001тур
Новые Черемушки, 1001 тур/Pegas
Перезвоните мне
Кулинич Никита
+7 (495) 725 1001
1001тур
Тульская, 1001 тур/Pegas
Перезвоните мне
Бывалова Мария
+7 (495) 725 1001
1001тур
Речной Вокзал У Речного, 1001 тур/Pegas
Перезвоните мне
Метельская Елена
+7 (495) 725 1001
1001тур
Щелковская, 1001 тур/Pegas
Перезвоните мне
Баркова Наталья
+7 (495) 725 1001
1001тур
Новослободская, 1001 тур
Перезвоните мне
Казакова Наталья
+7 (495) 725 1001
1001тур
Щелковская, 1001 тур
Перезвоните мне
Таран Алена
+7 (495) 725 1001
1001тур
Алексеевская, 1001 тур/Pegas
Перезвоните мне
Кешишян Анастасия
+7 (495) 725 1001
1001тур
Выхино, 1001 тур
Перезвоните мне
Меняйлова Светлана
+7 (495) 725 1001
1001тур
Новые Черемушки, 1001 тур/Pegas
Перезвоните мне
Кувыкина Елена
+7 (495) 725 1001
1001тур
Алексеевская, 1001 тур/Pegas
Перезвоните мне
Ткач Михаил
+7 (495) 725 1001
1001тур
Москва
Перезвоните мне
Старинская Марина
+7 (495) 725 1001
1001тур
Митино, 1001 тур
Перезвоните мне
Лызина Наталья
+7 (495) 725 1001
1001тур
Коломенская, 1001 тур/Pegas
Перезвоните мне
Гакова Ирина
+7 (495) 725 1001
1001тур
Киевская, 1001 тур
Перезвоните мне
Мишина Светлана
+7 (495) 725 1001
1001тур
Пражская, 1001 тур
Перезвоните мне
Васнева Юлия
+7 (495) 725 1001
1001тур
Москва
Перезвоните мне
timeit — Измерение времени выполнения небольших фрагментов кода — Документация по Python 3.
11.3
Исходный код: Lib/timeit.py
Этот модуль предоставляет простой способ синхронизировать небольшие фрагменты кода Python. Он имеет оба
интерфейс командной строки, а также вызываемый
один. Это позволяет избежать ряда распространенных ловушек для измерения времени выполнения.
См. также введение Тима Питерса в главу «Алгоритмы» во втором
издание Python Cookbook , опубликованное O’Reilly.
Основные примеры
В следующем примере показано, как интерфейс командной строки
можно использовать для сравнения трех разных выражений:
$ python3 -m timeit '"-".join(str(n) для n в диапазоне (100))' 10 000 циклов, лучшее из 5: 30,2 мкс на цикл $ python3 -m timeit '"-".join([str(n) для n в диапазоне (100)])' 10 000 циклов, лучшее из 5: 27,5 мкс на цикл $ python3 -m timeit '"-".join(map(str, range(100)))' 10 000 циклов, лучшее из 5: 23,2 мкс на цикл
Этого можно добиться с помощью интерфейса Python с помощью:
>>> время импорта >>> timeit. timeit('"-".join(str(n) for n in range(100))', number=10000) 0,3018611848820001 >>> timeit.timeit('"-".join([str(n) для n в диапазоне (100)])', число=10000) 0,27273687328 >>> timeit.timeit('"-".join(map(str, range(100)))', number=10000) 0,23702679807320237
Вызываемый объект также может быть передан из интерфейса Python:
>>> timeit.timeit(лямбда: "-".join(карта(ул, диапазон(100))), число=10000) 0,19665591977536678
Обратите внимание, однако, что timeit()
автоматически определит количество
повторения только при использовании интерфейса командной строки. в
В разделе «Примеры» вы можете найти более продвинутые примеры.
Интерфейс Python
Модуль определяет три удобные функции и общедоступный класс:
- timeit.timeit( stmt=’pass’ , setup=’pass’ , timer=<таймер по умолчанию> , number=1000000 , глобальные = нет )
Создайте экземпляр
Timer
с данным оператором, установите код и
таймер и запустите его методtimeit()
с числом выполнений .
Необязательный аргумент globals задает пространство имен, в котором выполняется
код.Изменено в версии 3.5: Добавлен необязательный параметр globals .
- timeit.repeat( stmt=’пройти’ , setup=’pass’ , timer=<таймер по умолчанию> , repeat=5 , number=1000000 , globals=None )
Создайте экземпляр
Timer
с данным оператором, установите код и
Функция таймера и запуск ее методаrepeat()
с заданным повторением
кол и число казней. Необязательный аргумент globals задает
пространство имен, в котором выполняется код.Изменено в версии 3.5: Добавлен необязательный параметр globals .
Изменено в версии 3.7: Значение по умолчанию повтор изменено с 3 на 5.
- timeit.default_timer()
Таймер по умолчанию, который всегда равен
time. perf_counter()
.Изменено в версии 3.3:
time.perf_counter()
теперь является таймером по умолчанию.
- класс timeit.Timer( stmt=’pass’ , setup=’pass’ , timer=<функция таймера> , globals=None )
Класс для определения времени выполнения небольших фрагментов кода.
Конструктор принимает оператор для определения времени, используется дополнительный оператор
для настройки и функции таймера. Оба оператора по умолчанию равны'pass'
;
функция таймера зависит от платформы (см. строку документа модуля).
stmt и setup также могут содержать несколько операторов, разделенных;
или символы новой строки, если они не содержат многострочных строковых литералов.
оператор по умолчанию будет выполняться в пределах пространства имен timeit; это поведение
можно управлять, передав пространство имен глобальным переменным .Чтобы измерить время выполнения первого оператора, используйте функцию
timeit()
метод. Методыrepeat()
иautorange()
удобны
методы для вызоваtimeit()
несколько раз.Время выполнения 9Настройка 0008 исключена из общего запуска по времени.
Параметры stmt и setup также могут принимать вызываемые объекты.
без аргументов. Это встроит вызовы к ним в функцию таймера, которая
затем будет выполненtimeit()
. Обратите внимание, что временные накладные расходы
немного больше в этом случае из-за дополнительных вызовов функций.Изменено в версии 3.5: Добавлен необязательный параметр globals .
- время( число=1000000 )
Время число выполнение основного оператора. Это выполняет настройку
оператор один раз, а затем возвращает время, необходимое для выполнения основного
оператор несколько раз, измеряемый в секундах как число с плавающей запятой.
Аргумент — количество проходов цикла, по умолчанию — один.
млн. Оператор main, оператор setup и функция таймера
которые будут использоваться, передаются конструктору.Примечание
По умолчанию
timeit()
временно отключает мусор
сбор во время тайминга. Преимущество этого подхода в том, что
это делает независимые тайминги более сопоставимыми. Недостатком является
что GC может быть важным компонентом производительности
измеряемая функция. Если это так, GC может быть повторно включен в качестве первого
в строке setup . Например:timeit.Timer('for i in range(10): oct(i)', 'gc.enable()').timeit()
- автодиапазон (обратный вызов = нет )
Автоматически определять, сколько раз вызывать
timeit()
.Это удобная функция, которая многократно вызывает
timeit()
.
так что общее время> = 0,2 секунды, возвращая возможное
(количество петель, время, затраченное на это количество петель). Он звонит
timeit()
с возрастающими числами из последовательности 1, 2, 5,
10, 20, 50, … до тех пор, пока время не составит не менее 0,2 секунды.Если задан обратный вызов , а не
None
, он будет вызван после
каждое испытание с двумя аргументами:callback(number, time_taken)
.Новое в версии 3.6.
- повтор( повтор=5 , число=1000000 )
Вызовите
timeit()
несколько раз.Это удобная функция, которая повторно вызывает
timeit()
,
возврат списка результатов. Первый аргумент указывает, сколько раз
позвонитьtimeit()
. Второй аргумент указывает номер
аргумент дляtimeit()
.Примечание
Заманчиво вычислить среднее значение и стандартное отклонение от результата
вектор и сообщите об этом. Однако это не очень полезно.
В типичном случае наименьшее значение дает нижнюю границу того, насколько быстро
ваша машина может запустить данный фрагмент кода; более высокие значения в
результирующий вектор обычно не вызван изменчивостью в Python.
скорость, но другими процессами, мешающими вашей точности синхронизации.
Итак,min()
результата, вероятно, единственное число, которое вы
должно заинтересовать. После этого следует просмотреть весь
вектор и применять здравый смысл, а не статистику.Изменено в версии 3.7: Значение по умолчанию повтор изменено с 3 на 5.
- print_exc( файл=нет )
Помощник для печати трассировки из временного кода.
Типичное использование:
t = Timer(...) # за пределами попытки/исключения пытаться: t.timeit(...) # или t.repeat(...) кроме исключения: t.print_exc()
Преимущество по сравнению со стандартной трассировкой заключается в том, что исходные строки в
будет отображаться скомпилированный шаблон. Необязательный аргумент file указывает
куда отправляется трассировка; по умолчанию этоsys.stderr
.
Интерфейс командной строки
При вызове как программы из командной строки используется следующая форма:
python -m timeit [-n N] [-r N] [-u U] [-s S] [-h] [оператор . ..]
Где понимаются следующие опции:
- -n Н, —number=N
сколько раз выполнять «оператор»
- -r Н, —repeat=Н
сколько раз повторять таймер (по умолчанию 5)
- -s С, —setup=S
оператор, который будет выполняться один раз (по умолчанию
pass
)
- -p, —процесс
измерить время процесса, а не время настенных часов, используя
time.process_time()
вместоtime.perf_counter()
, что по умолчаниюНовое в версии 3.3.
- -u, —unit=U
указать единицу времени для вывода таймера; можно выбрать
нс
,мкс
,мс
илис
Новое в версии 3.5.
- -v, —verbose
распечатать необработанные результаты синхронизации; повторить для большего количества цифр точность
- -ч, —help
распечатать короткое сообщение об использовании и выйти
Многострочный оператор может быть задан путем указания каждой строки как отдельной
аргумент утверждения; строки с отступом возможны при заключении аргумента в
кавычки и с использованием начальных пробелов. Несколько вариантов -s
обрабатываются
сходным образом.
Если -n
не задано, подходящее количество петель рассчитывается путем попытки
возрастающие числа из последовательности 1, 2, 5, 10, 20, 50, … до суммы
время не менее 0,2 секунды.
default_timer()
На измерения могут влиять другие программы, работающие на
одна и та же машина, поэтому лучшее, что можно сделать, когда требуется точное время, это
повторить время несколько раз и использовать лучшее время. -r
вариант хорош для этого; по умолчанию 5 повторений, вероятно, достаточно в
большинство случаев. Вы можете использовать time.process_time()
для измерения процессорного времени.
Примечание
Существуют определенные базовые накладные расходы, связанные с выполнением оператора pass.
Код здесь не пытается скрыть это, но вы должны знать об этом.
базовые накладные расходы можно измерить, вызвав программу без аргументов,
и это может отличаться в разных версиях Python.
Примеры
Можно указать оператор настройки, который выполняется только один раз в начале:
$ python -m timeit -s 'text = "образец строки"; char = "g"' 'символ в тексте' 5000000 циклов, лучшее из 5: 0,0877 мкс на цикл $ python -m timeit -s 'текст = "образец строки"; char = "g"' 'text.find(char)' 1000000 циклов, лучшее из 5: 0,342 мкс на цикл
В выводе есть три поля. Счетчик циклов, который говорит вам, сколько
количество раз, когда тело оператора выполнялось за одно повторение цикла синхронизации. Повторение
подсчет («лучший из 5»), который говорит вам, сколько раз цикл времени был
повторяется, и, наконец, время, которое в среднем занимало тело оператора в течение
лучшее повторение временной петли. То есть время самого быстрого повторения
принято деленное на количество циклов.
>>> время импорта >>> timeit.timeit('char in text', setup='text = "образец строки"; char = "g"') 0,41440500499993504 >>> timeit.timeit('text.find(char)', setup='text = "образец строки"; char = "g"') 1. 7246671520006203
То же самое можно сделать с помощью класса Timer
и его методов:
>>> время импорта >>> t = timeit.Timer('char in text', setup='text = "образец строки"; char = "g"') >>> t.timeit() 0,3955516149999312 >>> t.repeat() [0,40183617287970225, 0,37027556854118704, 0,38344867356679524, 0,3712595970846668, 0,37866875250654886]
В следующих примерах показано, как определить время для выражений, содержащих несколько строк.
Здесь мы сравниваем стоимость использования hasattr()
и , попробуйте
/ , кроме
.
для проверки отсутствующих и присутствующих атрибутов объекта:
$ python -m timeit 'try:' ' str.__bool__' 'кроме AttributeError:' 'pass' 20 000 циклов, лучшее из 5: 15,7 мкс на цикл $ python -m timeit 'если hasattr(str, "__bool__"): пройти' 50 000 циклов, лучшее из 5: 4,26 мкс на цикл $ python -m timeit 'try:' ' int.__bool__' 'кроме AttributeError:' 'pass' 200 000 циклов, лучшее из 5: 1,43 мкс на цикл $ python -m timeit 'if hasattr(int, "__bool__"): пройти' 100 000 циклов, лучшее из 5: 2,23 мкс на цикл
>>> время импорта >>> # атрибут отсутствует >>> с = """\ . .. пытаться: ... стр.__bool__ ... кроме AttributeError: ... проходить ... """ >>> timeit.timeit(stmt=s, число=100000) 0,9138244460009446 >>> s = "if hasattr(str, '__bool__'): пройти" >>> timeit.timeit(stmt=s, число=100000) 0,58280008651 >>> >>> # присутствует атрибут >>> с = """\ ... пытаться: ... int.__bool__ ... кроме AttributeError: ... проходить ... """ >>> timeit.timeit(stmt=s, число=100000) 0,04215312199994514 >>> s = "if hasattr(int, '__bool__'): пройти" >>> timeit.timeit(stmt=s, число=100000) 0,085880606993
Чтобы предоставить модулю timeit
доступ к определяемым вами функциям, вы можете передать
параметр установки , который содержит оператор импорта:
деф тест(): """Глупая тестовая функция""" L = [i для i в диапазоне (100)] если __name__ == '__main__': импортировать время print(timeit.timeit("test()", setup="from __main__ import test"))
Другой вариант — передать globals()
в параметр globals , что вызовет код
для выполнения в вашем текущем глобальном пространстве имен. Это может быть удобнее
чем индивидуально указать импорт:
определение f(x): вернуть х**2 определение г (х): вернуть х**4 определение ч(х): вернуть х**8 импортировать время print(timeit.timeit('[func(42) for func in (f,g,h)]', globals=globals()))
Timeit на Python с примерами
Эта статья познакомит вас с методом измерения времени выполнения ваших фрагментов кода Python. Мы будем использовать встроенную библиотеку Python timeit. Этот модуль предоставляет простой способ найти время выполнения небольших фрагментов кода Python.
Какая польза от Timeit?
А как насчет использования простого модуля времени? Просто сохраните время до и после выполнения кода и вычтите их! Но этот метод не является точным, так как на мгновение может быть запущен фоновый процесс, который прерывает выполнение кода, и вы получите значительные различия во времени выполнения небольших фрагментов кода. Timeit запускает ваш фрагмент кода миллионы раз (значение по умолчанию — 1000000), так что вы получаете статистически наиболее релевантное измерение времени выполнения кода! Timeit довольно прост в использовании и имеет интерфейс командной строки, а также вызываемый интерфейс.
Python Timeit() Синтаксис:
Синтаксис: timeit.timeit(stmt, setup, timer, number)
Параметр:
- stmt — утверждение, которое вы хотите измерить; по умолчанию это «пройти».
- setup это код, который вы запускаете перед запуском stmt ; по умолчанию это «пройти».
Обычно мы используем это для импорта необходимых модулей для нашего кода.- таймер который равен timeit.Timer объект; обычно оно имеет разумное значение по умолчанию, так что вам не о чем беспокоиться.
- число , которое представляет собой количество выполнений, которые вы хотите запустить stmt .
Возвращает количество секунд, которое потребовалось для выполнения кода.
Простой пример функции timeit()
Python3
|
Вывод:
0.0237445189995924
Синхронизация нескольких строк в коде Python
Есть два способа запустить многочисленные строки кода в timeit.timeit(), точку с запятой или сохранить код, заключенный в тройные кавычки, в виде строки.
Пример 1. Использование точки с запятой
Python3
|
Вывод:
Затраченное время равно 0,068305159325
Пример 2. Использование тройных кавычек
Программа довольно проста. Все, что нам нужно сделать, это передать код в виде строки функции timeit.timeit(). Рекомендуется сохранять операторы импорта и другие статические фрагменты кода в аргументе установки.
Python3
|
Выход:
Примечание: Обратите внимание на тот факт, что вывод представляет собой время выполнения числа , умноженное на итераций фрагмента кода, а не на одну итерацию. Для одной итерации exec. time, разделите время вывода на число .
0.0024192919954657555
Пример 3. Использование timeit.repeat()0004 и Линейный поиск . Кроме того, здесь мы демонстрируем еще две функции, функцию timeit.repeat и вызываем функции, уже определенные в нашей программе.
Python3
90 026
|
Вывод:
Вывод вышеуказанной программы будет минимальным значением в списке раз .
- Ниже показано, как можно использовать командную строку. На выходе будет список времени выполнения всех запусков кода, повторяющихся с указанным номером. раз.
- В аргументе настройки мы передали:
из __main__ import binary_search from random import randint
- Это позволит импортировать определение функции binary_search , уже определенное в программе, и библиотечную функцию random randint .
- Как и ожидалось, мы заметили, что время выполнения бинарного поиска значительно меньше, чем линейного поиска!
Пример 4: default_timer()
В этом примере мы находим разницу во времени между началом и концом.
Python3
|