为 Retrofit 创建新对象会减慢服务响应时间吗?
Does creating new object for Retrofit slows the service response time?
每次使用网络服务时,我都使用改造来创建新对象。 Web 服务响应时间很好。但是当在应用程序中尝试时它会变慢。
这会影响响应吗?
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiConstants.BASE_URL)
.addCallAdapterFactory(new ErrorCallback.ErrorHandlingCallAdapterFactory())
.addConverterFactory(GsonConverterFactory.create())
.build();
在 Retrofit 文档中,构建、baseUrl、addCallAdapterFactory、addConverterFactory 操作不建立任何连接。这是有道理的,因为它们仅用于准备 Retrofit 实例以进行通信。
此外,考虑到 restful 服务通常使用 HTTP 进行通信,因此无需为每个会话建立连接。每次调用 Web 服务 api 的操作时都会建立连接。
因此,每次创建实例不会影响通信,但会影响客户端cpu和不必要的内存资源。
创建一个新的 Retrofit 实例确实会影响响应时间,我可以通过我自己最近的经验来证实这一点。如果我为每个请求创建新实例,我得到的响应时间是 >= 1700 毫秒,而当我使用单个实例进行 API 调用时,我在 <= 500 毫秒内得到响应。
每次使用网络服务时,我都使用改造来创建新对象。 Web 服务响应时间很好。但是当在应用程序中尝试时它会变慢。
这会影响响应吗?
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ApiConstants.BASE_URL)
.addCallAdapterFactory(new ErrorCallback.ErrorHandlingCallAdapterFactory())
.addConverterFactory(GsonConverterFactory.create())
.build();
在 Retrofit 文档中,构建、baseUrl、addCallAdapterFactory、addConverterFactory 操作不建立任何连接。这是有道理的,因为它们仅用于准备 Retrofit 实例以进行通信。
此外,考虑到 restful 服务通常使用 HTTP 进行通信,因此无需为每个会话建立连接。每次调用 Web 服务 api 的操作时都会建立连接。
因此,每次创建实例不会影响通信,但会影响客户端cpu和不必要的内存资源。
创建一个新的 Retrofit 实例确实会影响响应时间,我可以通过我自己最近的经验来证实这一点。如果我为每个请求创建新实例,我得到的响应时间是 >= 1700 毫秒,而当我使用单个实例进行 API 调用时,我在 <= 500 毫秒内得到响应。