이것은 답변이 아닙니다. 그냥이 구현과 빠른 수동 테스트의 결과를 공유하려는 : ION (1.1.5)와
- NIO 코식 두타으로 OkHttp (1.1.1)와
- OIO들에 의해 광장에서
테스트는 LTE와 동일한 기기 (Android 4.0.4)에서 수행됩니다. 8 분 내에 108 개의 요청이 하나씩 만들어집니다 (동시성은 없습니다). 요청은 5 부분으로 나누어집니다 : NIO -> OIO -> NIO -> OIO -> NIO. 요청은 동일한 응답을 반환하는 UserGrid API에 대한 HTTP PUT 요청이며,이 응답은 String으로 변환되어 같은 방식으로 처리됩니다.
밀리 :
NIO/ION 60 times OIO/OkHttp for 48 times
Min. : 889 Min. : 629.0
1st Qu.: 1086 1st Qu.: 774.5
Median : 1426 Median : 1241.0
Mean : 1659 Mean : 1712.2
3rd Qu.: 1697 3rd Qu.: 1881.2
Max. :10913 Max. :16333.0
Std Dev: 1329.406 Std Dev: 2254.099
비고 :
- 앱 각 부분 사이에 다시 시작된다. 따라서 NIO/ION 테스트에는 "첫 실행"이 약간 더 느립니다. 그러나 평균/평균에 큰 차이를 만들어서는 안됩니다.
이 테스트에서 NIO가 응답 시간에 더 예측 가능하다고 말할 수 있습니다.
내가 말했듯이, 이것은 답을 의미하지 않습니다. 다른 테스트 결과를보고 NIO/OIO 시나리오가 더 좋은지 파악하고 싶습니다. thx
테스트 및 측정. NIO는 올바르게 실행하면 (즉, 하나의 스레드에서) 스레드를 저장하므로 스레드 스택에 저장되므로 메모리가 절약됩니다. wifi 또는 4G 속도에서는 CPU 바인딩이 아닌 네트워크 바인딩을 사용하게됩니다. – EJP
이 http://blog.codepainters.com/2012/02/17/why-java-nio-is-a-better-idea-for-android/에 따르면 NIO는 일부 버그를 피할 수 있습니다. non-NIO 소켓 코드. – RenniePet