-1

몇 가지 문제가 발생하여 쿼리를 실행하는 데 너무 많은 시간이 걸리므로 앱의 네트워킹 부분을보다 안정적이고 최적으로 만들려고합니다. 나는 내 코드의 조각을 공유하기 전에, 여기에 몇 가지 정보를 정기적으로 있습니다최적의 네트워킹

  • 이 때문에 많은 사용자는 현재 5 만 활성 사용자가
  • 약한 모바일 데이터 연결에 사용할 수 있습니다, 안드로이드 응용 프로그램입니다 서버는 제 3자가 서버를 개발
  • 피크 시간대에 높은 부하를 가질 수있다, 그래서 나는 단지

는 대부분의 경우 문제가 많이 약한 모바일에서 오는 클라이언트 측에 개선을 할 수 있도록 데이터 연결이 피크 시간대에 있지만 여전히 연결을 개선하기 위해 무엇인가 할 수 있다면 이온, 그럼 내가 할거야.

저는 AsyncTask에서 쿼리를 관리하고 있습니다. onPreExecute()에서 나는 초기화만을하고 있으며, 대화 상자를 보여주는데, 여기서 아무 일도 일어나지 않습니다. 다음 사용자에게 결과를 보여주기 위해 Activity를 시작, 내가 필요한 변수를 설정, 그 결과를 처리하고 onPostExecute(Void param),이 후

try 
{ 
    HttpClient hc = new DefaultHttpClient(); 
    hc.getParams().setParameter("http.protocol.content-charset", "UTF-8"); 
    HttpParams hp = hc.getParams(); 
    HttpConnectionParams.setConnectionTimeout(hp, Stat.TIMEOUT); 
    HttpConnectionParams.setSoTimeout(hp, Stat.TIMEOUT); 
    HttpProtocolParams.setUserAgent(hp, ActMain.userAgent); 
    httpGet=new HttpGet(item.buildQuery()); 
    HttpResponse resp = hc.execute(httpGet); 
    Stat.result=_result=EntityUtils.toString(resp.getEntity(), HTTP.UTF_8); 
} 
catch(MalformedURLException e){} 
catch(IOException e){} 

return null; 

: 여기 정확한 코드는, doInBackGround(Void... arg)의 모든 중요한 부분을하고있는 중이 야 여기서 중요한 부분은 없습니다.

자주 발생하는 이상한 오류는 순수한 JSON 형식의 결과 대신 서버가 거의 평문 형식의 404 오류 메시지로 응답하는 경우가 있습니다. 나는 그것이 서버와 관련되어있는 것으로 추측하고있다. 그래서 그것을 해결하기 위해 아무 것도 할 수 없다. 아마 사용자가 결과를 얻을 수 있도록 2-3 번 쿼리를 다시 시작할 수있다.

내 진짜 질문은 : 붙여 넣은 코드 스 니펫을 개선하여 클라이언트 쪽에서 좀 더 안정적/최적이 될 수 있을까요? 미리 감사드립니다!

EDIT : 문제를 서버로 추적 할 수 있었고, 내 응용 프로그램이 생각보다 많은 활성 사용자 수를 가지고 있습니다. 서버가 시간이 지나치게 오버로드되어 모든 것이 정상적으로 처리되었습니다.

+2

지연 원인을 측정하고 문제를 해결해야합니다. 당신에게 명백한 문제 만 해결하려고하는 것은 a) 시간 낭비 b) 문제를 더욱 악화시킬 수 있습니다. 예를 들어, 서버가 과부하되는 경우 클라이언트를 더 빠르게 만들면 문제가 악화 될 수 있습니다. –

+0

내가 동의하는 이유는 내가받은 스 니펫이 좋은 네트워킹을 제공하는지, 아니면 약점이 있는지 궁금해하기 때문이다. 내 모든면에서 문제가 없다면 서버 개발자와 이야기하려고 노력할 것입니다. – hundeva

+0

내가 가진 유일한 걱정은 예외를 무시하는 것입니다. 많은 오류가 발생하고 알지 못하는 경우가 아니면 성능에 영향을 미치지 않습니다. –

답변

1

클라이언트가 느리거나 빠릅니다. 그것은 지속적으로 천천히 또는 빠르다. 동일한 모바일 장치, 동일한 소프트웨어로 느린 동작과 때로는 더 빠른 동작을 보게되면 원인이되지 않습니다.

변형의 가장 큰 원인은 위에서 말한대로 네트워크와 서버의 부하입니다.