2011-01-24 4 views
1

iPhone에 응용 프로그램이 있습니다. 이 응용 프로그램은 페이지/화면 당 25 개의 제품을 표시합니다. 제품 이름, 가격, 할인, 제품 이미지의 URL 등과 같은 텍스트 항목은 모든 25 제품의 첫 번째 서버에서 다운로드됩니다.서버에서 iPhone의 이미지를 다운로드 할 때 성능 문제가 발생했습니다.

그런 다음 25 개의 제품 이미지를 하나씩 다운로드하라는 25 개의 동기화 요청을합니다. 각 이미지의 크기는 약 25KB이며 크기는 300x400 픽셀이며 대략 72x72 크기의 이미지 만 iPhone에 표시 할 수 있습니다. 한 화면/페이지를 표시하는 데 약 40 초가 소요되며 이러한 종류의 성능은 좋지 않습니다. 그래서 우리는 성능을 향상시키는 방법을 조사하고 있습니다.

  1. 서버의 이미지 크기를 72x72 픽셀로 줄이면 성능이 향상됩니까?
  2. 또한 서버에서 iPhone으로 25 개의 이미지를 모두 다운로드 할 수 있습니까? 그렇다면 어떻게 할 수 있겠습니까? 우리는 성능을 향상시킬 수있는 경우에만이 작업을 수행하려고합니다.
+2

아마 이것은 더 나은 Stackoverflow? –

+0

동의, iOS 및 Mac OS 프로그래밍 질문은 http://stackoverflow.com/에 속하며 몇 가지 답변을 매우 빨리 얻을 수 있습니다. –

답변

2

나는 당신이 이미 언급 한 Stackoverflow에서 이것을 제안합니다.

프로그래머의 관점에서 보면 72x72 이미지 만 필요하다면 분명히 가져와야합니다. 대역폭, 배터리 및 처리 능력을 절약 할 수 있습니다.

그런 다음 25 개의 동기화 요청이 나쁜 생각 인 것 같습니다. 왜 전체 페이지 (또는 두 페이지)를 동시에 가져 오지 않을까요?

URL 요청은 본질적으로 느리기 때문에 작성하는 횟수가 적을수록 더 빨리 작동합니다.

나는 "처음 25 개를 주겠다"와 같이 일괄 처리를 허용하도록 서버를 수정 한 다음 로컬로 처리합니다. 그런 다음 사용자가 다음에 이미 눌렀을 때 (그리고 항상 1 또는 2를 미리) 비동기 적으로 (그리고 선제 적으로) 다음 25를 가져올 수 있습니다.

캐시를 사용하고 가능한 경우 로컬로 저장하고 해당 페이지가 로컬로 사용 가능한지 항상 확인하므로 사용자가 뒤로 누른 다음 다시 누르면 다시 레코드를 가져올 필요가 없습니다. 다운로드 한 제품은 다운로드 된 상태로 유지됩니다. 제품 페이지에서 자주 변경하면 안됩니다.

더 구체적인 구현을 위해서는 StackOverflow로 건너 뛰는 것이 좋습니다.

관련 문제