Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Urllib работает очень медленно (> 4 секунд на запрос)

20.07.2015, 17:00. Показов 4047. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
urlib выполняет запросы ооооочень медленно (4-5 секунд), такое ощущение что он открывает IE, выполняет запрос, забирает результат, закрывает IE и только потом отдаёт содержимое. Проверено на 4х машинах с разными версиями Windows и разными версиями Python. На linux код отрабатывает за приличное время в районе 300мс, это конечно не так уж и быстро для get запроса, но вполне терпимо. Post работает так же, содержимое переганяю запросами в пределах 100 байт.
Сервер локально поднятый, отвечает за пару мс, так что сеть и серверную часть подозревать не стоит.
Логично что библиотеки для работы с http, которые я попробовал, работают так же так как все они похоже опираются на базовую реализацию и предоставляют лишь разнообразные обёртки вокруг стандартных модулей для работы с http.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding: utf-8 -*-
from urllib import request
import time
 
print (time.time())
url = 'http://xxx'
print (request.urlopen(url).read())
 
print (time.time())
url = 'http://xxx'
print (request.urlopen(url).read())
 
print (time.time())
url = 'http://xxx'
print (request.urlopen(url).read())
 
print (time.time())
Результаты выполнения:
1437399996.929227
b"..."
1437400001.462487
b"..."
1437400005.995746
b"..."
1437400010.537006

Подскажите пожалуйста что может быть причиной и какие есть решения.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.07.2015, 17:00
Ответы с готовыми решениями:

Запрос работает очень медленно
Помогите мне ускорить работу запроса. Сам запрос имеет такой вид select x2.столбец1, x2.столбец2, xx.столбец1, x.столбец1,...

Urllib работает медленно
Здравствуйте. Все запросы через urllib выполняются достаточно долго( порядка 20-22 секунд). Даже самая простая загрузка страницы или...

BufferedReader очень медленно обрабатывает запрос json
Всем привет! У меня есть клиентское приложение, которое отправляет POST запрос на удаленный сервер. Сервер должен отправить ответ на...

8
224 / 209 / 63
Регистрация: 26.05.2011
Сообщений: 363
21.07.2015, 05:45
Попробуйте requests
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
21.07.2015, 06:29
pyuser, Так requests же основан на базовых библиотеках, входящих в стандартную поставку языка.
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
21.07.2015, 11:02  [ТС]
alex925, всё верно. Я вообще requests и использую, но пример привёл именно чтобы подчеркнуть что системные библиотеки urlib любой версии работают так долго.
На текущий момент выяснил что работают они так долго только на машинах с windows 7 на работе, на домашнем пк, который незначительно превосходит тестовые по мощности, всё выполняется в рамках 300 мс. Но пока я не знаю что именно винить чтобы разбираться и как выйти из этого положения.
Возможно есть какие-то библиотеки для работы с http с кусками на си и не использующие системные пакеты для http?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
21.07.2015, 12:04
Gepar, Я сижу на linux и меня скорость выполнения запросов вполне устраивает (не было ситуации, когда запрос должен был выполнится за ограничение кол-во времени), по этому я этот вопрос не изучал и не искал пути решения.
Запрос скорее всего медленно выполняется из-за конкретной реализации сокетов.
Если хочешь попробовать работать с какой нить сишной библиотекой через python, то попробуй что нибудь в вроде PycURL.
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
21.07.2015, 21:26  [ТС]
alex925, да вот как-то не вериться что за время жизни win7 никто из питоноводов не заметил такую проблему, я бы винил прокси (так как на работе они используются для внешней сети, кроме гугла, а дома соотв. прокси нет), но я их не настраиваю в своём коде да и при попытке получить сайт к которому нельзя без прокси ошибка вылетает сразу же что url недоступен, никаких тебе 4 мс задержек. Вот больше похоже что именно на получение тела ответа всё время и уходит, а заголовок оно хватает сразу.
Ладно, видимо придётся найти не тестовую машину с юниксом на работе чтобы поселить туда свои скрипты для общения с сервисом на постоянной основе, ато похоже моя проблема не сильно распространена (штук 5 тем на stackoverflow я находил, но всё они остались без ответа, почему и создал тему).
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
21.07.2015, 21:46
Цитата Сообщение от Gepar Посмотреть сообщение
за время жизни win7 никто из питоноводов не заметил такую проблему
Один раз такая тема тут поднималась, но чем кончилось все не помню.
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
27.07.2015, 13:34  [ТС]
Определил что питон под windows всё же топчеться на прокси, притом томпчеться на них он странно: он их не использует на моей машине с windows, а время тратит. Решением на windows стало:
Python
1
2
import os
os.environ['no_proxy'] = '127.0.0.1,localhost'
На линуксе работает примерно одинаково хоть с прокси, хоть без.
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
29.07.2018, 20:44
Тема давно мертва, но так как в поиске по данной проблеме выдаётся первой строчкой, то поясню. Такое медленное выполнение - это особенность Windows 7 (без SP1). Чем, это обосновывается, я не знаю. Но этот же скрипт, который под Win7 грузится ~20c. под любой другой ОС работает моментально (Проверено на Win10, Ubuntu 16.04)
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.07.2018, 20:44
Помогаю со студенческими работами здесь

Интернет работает очень медленно на одном ПК, на другом работает быстрее.
Такая проблема, интернет очень плохо работает,скорость совсем маленькая (14м) подключаю другой комп в этот же кабель скорость(40м) в чём...

Очень медленно работает 1С 8.3?
С чем может быть связана медленная работа 1С? Есть терминальный сервер Windows Server 2003 x64. (2600 Мгц, 8Гб ОЗУ). БД хранятся...

Очень медленно работает ПК
День добрый. Помогите решить проблему. Имеется компьютер с Win 7 64. Машинка жестко тормозит. Сначала грешил на установленный Kaspersky...

Очень медленно выполняется запрос SQL на ТСД Windows CE 6.0
Добрый день ! начал писать некоторые программы для терминала сбора данных Моторола. сделал на VC2008, проект для smart devices. c#. ...

Почему PDO выполняет простой запрос очень медленно?
$id=$params; $sql="SELECT Brend,Model, size, number,price, summa FROM view_purchase_order WHERE id_order=:kod"; $stmt =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru