我正在从我的Android应用程序调用一个web服务。在整个应用程序中,我有许多对此服务的不同调用,除了一个之外,每个调用都在不到一秒的时间内返回数据。我的一次调用可能需要一分钟来返回数据,即使实际的web服务调用几乎是即时的。以下代码行出现问题:
transport.call(SOAP_ACTION, soapEnvelope);它被调用,值几乎同时从web服务返回。但它可能需要一分钟才能到达下一行:
SoapObject result = (SoapObject) soapEnvelope.bodyIn;在web服务返回数据和应用程序命中下一行(上面)之间发生了什么?有没有办法减少这种延迟?有什么简单的东西可以检查吗?
发布于 2013-03-27 21:50:16
事实证明,延迟只是在调试应用程序时。在没有附加调试器的情况下运行应用程序时,它几乎是即时返回的。
发布于 2013-03-25 18:40:07
有没有办法减少这种延迟?有什么简单的东西可以检查吗?
要知道这一点,唯一的方法是测量不同地区的时间差异。对于SOAP web服务调用,这是需要测量的时间。
客户端时间
客户端应用程序代码->请求处理程序->请求序列化->请求分派-> HTTP传输->服务器端
服务器端时间
接收HTTP请求->反序列化->应用程序代码->响应处理程序->序列化->调度-> HTTP传输
阻塞通常出现在应用程序代码、处理程序和网络中。测量一下这些数据,你就可以发现时间都花在哪里了。
https://stackoverflow.com/questions/15572549
复制相似问题