Я пишу фляжное приложение, которое принимает запросы POST с данными json. Я заметил огромные различия в времени ответа, основанные на размере данных, передаваемых в приложение. После отладки я сузил проблему до строки, где я извлекал json-данные из объекта запроса. Важно отметить, что тестирование проводилось на сервере разработки фляг.
start = time.time()
resp = json.dumps(request.json)
return str(time.time() - start)
Я приурочил эту строку и для данных 1024 (вероятно, не совпадение), и меньше символов это заняло 0.002s и для чего-либо более 1024 за 1 секунду! Что здесь происходит? Это ограничение сервера разработки?
EDIT: То же самое происходит для получения данных POST через request.form.get( "somedata" ) с длиной содержимого более 1024
EDIT: Я не мог реплицировать проблему в том же примере, который был использован Apache
EDIT:
Я начал копаться в модуле Werkzeug и обнаружил, что медлительность возникает при чтении ответного сообщения self._read(to_read)
в модуле wsgi.py, который передается из BaseHTTPRequestHandler. Все еще не знаю, почему так медленно.
Здесь детали окружающей среды: Ubuntu - 10.04 Python - 2.6.5 Колба - 0,9 Werkzeug - 0.8.3