마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 파일 업로드 전송 속도 개선 방법 조언 부탁드립니다.

0 추천
솔직하게 tcp 소켓 프로그래밍이니 뭐니 HTTP 파일 전송 방법 이론 같은 것은 잘 모릅니다.

그래서 이론적이나 실무적이나 빠삭한 분들이 많이 계셔 질문드립니다.

http://www.codejava.net/java-se/networking/upload-files-by-sending-multipart-request-programmatically

위 사이트를 참고하여 파일 전송 HTTP 방식으로 만들어 봤습니다. 하지만 속도 향상이 필요하여 질문드립니다.( 여러 개의 파일 전송 )

multipart 방식으로 되어 있는데 제가 어떤 부분을 건드려야 할지 감이 잡히지 않아 질문드립니다.
바이두 (200 포인트) 님이 2015년 10월 2일 질문

2개의 답변

0 추천
몇 개 파일을 동시에 보내는지, 용량은 어떻게 되는지, 네트웍 상황은 어떻게 되는지 알려주셔야 할 것 같아요

Http post로 보낸다고 해서 속도가 확 느릴 것 같진 않은데요

네트워크 대역폭이 적은데, 많은 량을 보낼 수도 있고

서버 측의 I/O가 느려서 그럴수도 있고

예를 들어, 단말에서 1MB짜리 5개파일을 동시에 보내는데, 10초가 걸린다. Wifi 2.4G로 연결되어 있다. 타 앱으로 보내면 5초면 된다 등등 이런 구체적인 정보를 줘야 속도가 개선가능한지를 알 수 있습니다.
cc1232 (35,280 포인트) 님이 2015년 10월 2일 답변
5MB 파일 50%로 축소해서 5개를 보내는데 20초 걸립니다. 하지만 그에비해
카카오톡은 소캣으로 해서 그런지 몰라서 빠른 시간내에 전송이 되서 지금 Multipart 로 파일을 보낼 때 속도를 개선이 필요할 것 같습니다.
말씀하시는 걸 보니 이미지를 전송하는 것 같네요. 5MB를 50%로 축소했으면 2.5MB라는 말인가요? 2.5MB * 5 =  12.5MB 를 보내는건가요?
카카오톡과 비교하려면 카톡이 실제로 12.5MB의 데이터를 보내는지도 확인해야 할 것 같습니다. 속도의 문제가 아니라 카톡이 이미지를 리사이징해서 적은 데이터량만 전송했을 수도 있으니까요
0 추천
우선은 동일한 환경에서, 위 링크의 소스에서 약간의 개선점을 살펴보면..

FileInputStream을 사용하는데.. BufferedInputStream으로 변경해 주세요..

그리고, 버퍼 사이즈로 4k을 사용하고 있는데, 8k로 변경해 주시면 소폭의 성능 향상을 기대할 수 있습니다.

 

다른 분이 말씀하신 것처럼.. 좀 더 자세한 상황을 기술해 주셔야.. 개선방법도 구체적이 될 듯 합니다..
mcsong (44,040 포인트) 님이 2015년 10월 2일 답변
...