以下blog给出了各种AndroID Async http客户端速度之间的比较.有人可以解释是什么使改造如此之快吗?
解决方法:
编辑:再次浏览博客文章后,单对多线程问题可能不正确.问题在于他们没有分享其性能分析/基准测试的细节.那一组数字并不能提供太多洞察力.他们说:“我们确定从API(网络)中检索数据是瓶颈”,但他们并没有那么大地分解.他们是否将所有Volley和Retrofit请求都设为单线程?他们是否尝试对AsyncTasks进行多线程处理,以便可以将苹果与苹果进行比较?他们没有指定.
如果将响应解析为JsONObject会使您的应用变慢,那么我采用的一种方法是使用JsONReader以事件驱动的方式解析响应.这可能涉及更多代码,但是好处是您可以获得细粒度的控制,因此您可以跳过所有事情,而不会浪费周期来解析不需要的值.根据您的应用程序,仅此一项就可以使速度大大提高.
我个人认为,他们认为Retrofit更易于使用,这是在我的应用中选择它来处理服务器访问的更诱人的理由.
在“执行顺序”下的AsyncTask文档中:
When first introduced, AsyncTasks were executed serially on a single background thread. Starting with
DONUT
, this was changed to a pool of threads allowing multiple tasks to operate in parallel. Starting withHONEYCOMB
, tasks are executed on a single thread to avoID common application errors caused by parallel execution.If you truly want parallel execution, you can invoke
executeOnExecutor(java.util.concurrent.Executor, Object[])
withTHREAD_POol_EXECUTOR
.
这意味着每个请求不仅在等待上一个请求完成,还在等待其所有JsON都被读取/解析.
默认情况下,AsyncTask是单线程的,而Retrofit不是.为了使测试公平,他们应该对AsyncTasks使用ThreadPoolExecutor.不指出这种区别就以不诚实为准.我很惊讶他们不知道AsyncTask的单线程性质.
总结以上是内存溢出为你收集整理的Android的 – 是什么让改装比HttpURLConnection类的AsyncTask快?全部内容,希望文章能够帮你解决Android的 – 是什么让改装比HttpURLConnection类的AsyncTask快?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)