안드로이드 개발 질문/답변
(글 수 45,052)
3G망 기준 다른 앱들은 요청~응답~출력 까지 2초도 안걸리던데...
제가 만든건 5초는 기본으로 걸리고 오래 걸릴땐 15초 까지도 걸립니다...
그래서 작정하고 로그를 군데 군데 위치시켜 4가지 항목을 체크 하였습니다...
체크 항목은 "요청", "응답", "파싱", "출력" 입니다.
항상 응답시간이 문제라고 생각하며 일단 파싱과 출력 부분을 봤는데
파싱에는 0.2~0.5초가 걸렸고 출력은 평균적으로 0.5초 정도가 걸렸습니다.
그래서 역시...파싱하고 출력은 합이 1초정도면 되는구나 해서 응답시간이 문제겠거니 하고
요청로그와 응답후 로그 타임을 비교해봤더니 ...다음과 같은 놀라운 사실이...
12-16 11:28:26.796: ERROR/data_request(10238): ok
12-16 11:28:26.815: ERROR/data_response(10238): ok
0.2초 저도밖에 걸리지 않았습니다....
그래서 요청하기전과 응답 후를 뒤져봤더니...시간텀이 길게(약1초 내외 간격) 찍히는 로그들은 대부분 시스템에서
발생시키는 로그들이었습니다...그리고 네트웍 관련된 것이 가장 많은 시간을 차지했습니다...
밑의 로그는 요청하기 전 로그 구요....
12-16 11:28:24.003: INFO/WMDRMRIGHTSMANAGER(9988): [WMDRM] updateWMDrmSecureClock updation was successful :
12-16 11:28:24.019: DEBUG/PhoneApp(2543): mReceiver: ACTION_ANY_DATA_CONNECTION_STATE_CHANGED
12-16 11:28:24.019: DEBUG/PhoneApp(2543): - state: CONNECTED
12-16 11:28:24.019: DEBUG/PhoneApp(2543): - reason: networkTypeChanged
12-16 11:28:24.019: DEBUG/NotificationMgr(2543): hideDataDisconnectedRoaming()...
12-16 11:28:24.022: DEBUG/MobileDataStateTracker(2439): replacing old mInterfaceName (pdp0) with pdp0 for hipri
12-16 11:28:24.022: DEBUG/MobileDataStateTracker(2439): replacing old mInterfaceName (pdp0) with pdp0 for dun
12-16 11:28:24.022: DEBUG/MobileDataStateTracker(2439): supl Received state= CONNECTED, old= CONNECTED, reason= networkTypeChanged, apnTypeList= *
12-16 11:28:24.026: DEBUG/MobileDataStateTracker(2439): replacing old mInterfaceName (pdp0) with pdp0 for mms
12-16 11:28:24.026: DEBUG/MobileDataStateTracker(2439): default Received state= CONNECTED, old= CONNECTED, reason= networkTypeChanged, apnTypeList= *
12-16 11:28:24.038: DEBUG/NetworkLocationProvider(2439): onDataConnectionStateChanged 3
12-16 11:28:24.448: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=263997208 }
12-16 11:28:25.468: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=263998227 }
12-16 11:28:26.472: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=263999231 }
밑의 로그는 응답 후 파싱하기 전까지의 로그중 0.2~0.3초 텀 로그는 생략하고 가장 많은 텀을 가진 1초 정도 구간의
로그입니다...아마도 네트워크를 닫는 시간이 아닐까..생각 해봅니다...
밑의 로그는 시도 할 때마다 갯수가 달리 나오는데 많이 나올땐 5개 까지도 나오더라구요...하나당 1촌데....이것만
안나오게 할 수 있는 방법만 찾아내도 요청전, 응답후 합쳐서 최소 로딩시간 5초는 줄일 수 있겠더군요...
12-16 11:28:27.473: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=264000231 }
12-16 11:28:28.476: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=264001236 }
12-16 11:28:29.479: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=264002239 }
문제점이 무얼까요...? ㅠ 소스를 봐야 알 문제인가요...? 네이버에서 검색하니 뭐 결과가 하나도 없길래 구글링을 해보았는데
검색 결과가 무지 많더군요...하지만 전 영어는 젬뱅이라... 도움좀 주세요 고수님들 ㅠ
제가 만든건 5초는 기본으로 걸리고 오래 걸릴땐 15초 까지도 걸립니다...
그래서 작정하고 로그를 군데 군데 위치시켜 4가지 항목을 체크 하였습니다...
체크 항목은 "요청", "응답", "파싱", "출력" 입니다.
항상 응답시간이 문제라고 생각하며 일단 파싱과 출력 부분을 봤는데
파싱에는 0.2~0.5초가 걸렸고 출력은 평균적으로 0.5초 정도가 걸렸습니다.
그래서 역시...파싱하고 출력은 합이 1초정도면 되는구나 해서 응답시간이 문제겠거니 하고
요청로그와 응답후 로그 타임을 비교해봤더니 ...다음과 같은 놀라운 사실이...
12-16 11:28:26.796: ERROR/data_request(10238): ok
12-16 11:28:26.815: ERROR/data_response(10238): ok
0.2초 저도밖에 걸리지 않았습니다....
그래서 요청하기전과 응답 후를 뒤져봤더니...시간텀이 길게(약1초 내외 간격) 찍히는 로그들은 대부분 시스템에서
발생시키는 로그들이었습니다...그리고 네트웍 관련된 것이 가장 많은 시간을 차지했습니다...
밑의 로그는 요청하기 전 로그 구요....
12-16 11:28:24.003: INFO/WMDRMRIGHTSMANAGER(9988): [WMDRM] updateWMDrmSecureClock updation was successful :
12-16 11:28:24.019: DEBUG/PhoneApp(2543): mReceiver: ACTION_ANY_DATA_CONNECTION_STATE_CHANGED
12-16 11:28:24.019: DEBUG/PhoneApp(2543): - state: CONNECTED
12-16 11:28:24.019: DEBUG/PhoneApp(2543): - reason: networkTypeChanged
12-16 11:28:24.019: DEBUG/NotificationMgr(2543): hideDataDisconnectedRoaming()...
12-16 11:28:24.022: DEBUG/MobileDataStateTracker(2439): replacing old mInterfaceName (pdp0) with pdp0 for hipri
12-16 11:28:24.022: DEBUG/MobileDataStateTracker(2439): replacing old mInterfaceName (pdp0) with pdp0 for dun
12-16 11:28:24.022: DEBUG/MobileDataStateTracker(2439): supl Received state= CONNECTED, old= CONNECTED, reason= networkTypeChanged, apnTypeList= *
12-16 11:28:24.026: DEBUG/MobileDataStateTracker(2439): replacing old mInterfaceName (pdp0) with pdp0 for mms
12-16 11:28:24.026: DEBUG/MobileDataStateTracker(2439): default Received state= CONNECTED, old= CONNECTED, reason= networkTypeChanged, apnTypeList= *
12-16 11:28:24.038: DEBUG/NetworkLocationProvider(2439): onDataConnectionStateChanged 3
12-16 11:28:24.448: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=263997208 }
12-16 11:28:25.468: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=263998227 }
12-16 11:28:26.472: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=263999231 }
밑의 로그는 응답 후 파싱하기 전까지의 로그중 0.2~0.3초 텀 로그는 생략하고 가장 많은 텀을 가진 1초 정도 구간의
로그입니다...아마도 네트워크를 닫는 시간이 아닐까..생각 해봅니다...
밑의 로그는 시도 할 때마다 갯수가 달리 나오는데 많이 나올땐 5개 까지도 나오더라구요...하나당 1촌데....이것만
안나오게 할 수 있는 방법만 찾아내도 요청전, 응답후 합쳐서 최소 로딩시간 5초는 줄일 수 있겠더군요...
12-16 11:28:27.473: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=264000231 }
12-16 11:28:28.476: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=264001236 }
12-16 11:28:29.479: DEBUG/GsmDataConnectionTracker(2543): GSMDataConnTrack handleMessage { what=1001 when=264002239 }
문제점이 무얼까요...? ㅠ 소스를 봐야 알 문제인가요...? 네이버에서 검색하니 뭐 결과가 하나도 없길래 구글링을 해보았는데
검색 결과가 무지 많더군요...하지만 전 영어는 젬뱅이라... 도움좀 주세요 고수님들 ㅠ
2010.12.16 15:22:32
다른앱과 비교분석 해본 결과....다른 앱도 3G망이 느려지거나 오래동안 단절 될땐 15초가량 걸리고 죽는 현상도 똑같구요...
3G망이 정상적일 때의 결과로 비교해보니 2~3초 가량 차이가 나고 오히려 저의 앱보다 오래걸리는 앱들도 많은거 같습니다...
갤럭시S의 특성인지 SKT폰의 특성인지 안드로이드의 특성인지는 테스트 단말이 갤럭시S 하나뿐이라 알 수 없습니다만
GSMDataConnTrack handleMessage { what=1001 when=264002239 } 이 메시지는 어떤 앱들도 다 나오는군요...
보통 2~3개쯤 뜨네요...2초정도의 로딩 차이는 출력하는 내용의 양 차이 등으로 나는거 같습니다...
좀더 빠르게 할 수 있는 방법을 모색해 봐야겠네요...




단말은 갤럭시S 입니다 구글 검색 해보니 넥서스 원에서도 이 사례가 있다고 한걸 본거 같습니다....
아직 다른 단말은 모르겠습니다....
서버는 xml을 내려주고 단말은 xml을 파싱해서 사용하는 방식 입니다...
위의 실험은 3G망 상태에서 해보았습니다...
와이파이일때는 속도가 빠릅니다...