큰 json 개체 (elasticsearch, BTW)를 반환하는 서버를 쿼리하는 코드 조각이 있습니다. 결과를 읽는 데 많은 시간이 걸립니다. json 객체를 파싱하는 것은 매우 빠릅니다.파이썬에서 URL 응답 읽기 속도 향상
tic = time.time()
req_resp = urllib2.urlopen(req, timeout = 60)
toc=time.time()
a = toc-tic
tic = time.time()
json_str = req_resp.read()
toc=time.time()
b = toc-tic
tic = time.time()
resp = json.loads(json_str)
toc=time.time()
c = toc-tic
print 'Fetch %.1f Process %.1f, load Json %.1f' %(a,b,c)
출력 :
Fetch 0.5 Process 3.5, load Json 0.0
JSON을로드하는 것은 빠르고 동안이, 너무 많은 시간을 소요 이상한 것 같다. 내가 도대체 뭘 잘못하고있는 겁니까? 이것을 더 빨리 할 수있는 방법은 없습니까?
FYI 이것은 elasticsearch에있는 1000 개의 문서에 대한 쿼리로 여러 단어 길이의 몇 개의 문자열 필드를 반환합니다.
나는 socket
모듈은 C++로 작성 _socket
에 의존 파이썬 2.7
전혀 이상하지 않습니다. 그것은 네트워크 (및 서버 처리)가 병목 현상임을 보여 주며 이는 예상됩니다. – korylprince
왜 탄력성 검색 데이터베이스에 직접 문의하지 않습니까? 탄성 검색에 익숙하지 않지만 HTTP 서버를 통해 실행되는 것은 의심 스럽습니다. – nacholibre
이 쿼리는 한 번 또는 여러 번만 실행합니까? – Glaslos