gpt4 book ai didi

c# - 调用 Web 服务的成本是多少?

转载 作者:太空狗 更新时间:2023-10-30 00:52:28 25 4
gpt4 key购买 nike

我在谷歌上进行了相当不错的搜索,但没有弹出任何内容来回答我的问题。由于我对网络服务知之甚少(最近几个月才开始使用它们,而不是构建它们),我想知道我是否应该按我希望的频率(在合理范围内)调用特定的网络服务,或者应该我一次性建立请求。

举个例子,我的应用程序旨在进行作业更新,对于某些类型的更新,它会调用网络服务。似乎我的选择是,我可以在需要 Web 服务的更新应用程序中创建一个数据表,并将整个数据表传递给 Web 服务,然后在 Web 服务中编写一个方法来处理数据表的更新。或者,我可以遍历我的整个更新表(其中包括除需要 Web 服务的更新之外的其他更新)并在更新需要时调用 Web 服务。

目前看来,将每个更新而不是数据表传递给网络服务对我来说似乎更简单。

就传递到网络服务的数据而言,每次更新都将包含少量数据(3 个字符串,长度最多 120 个字符)。就更新数量而言,可能不会超过 200。

最佳答案

I was wondering whether I should be ok to call a particular web service as frequently as I wish (within reason), or should I build up requests to do in one go.

无论是否使用 Web 服务,通过网络路由的任何调用都将从建立多个请求中受益,这样它们就可以在一次往返中得到处理。在您的情况下,构建一个代表所有更新的对象将是一个明显的赢家,尤其是在连接速度较慢的设置中。

当您通过网络进行调用时,当客户端与服务器通信时(同样,无论是否为 Web 服务),这些事情需要发生:

  1. 与您的通话相关的数据在客户端上序列化
  2. 序列化数据发送到服务器
  3. 服务器反序列化数据
  4. 服务器处理数据,产生响应
  5. 服务器序列化响应
  6. 服务器将序列化的响应发送回客户端
  7. 响应在客户端反序列化

第 2 步和第 6 步通常会因网络延迟而导致延迟。对于简单的操作,延迟通常会影响调用时间。

用于高频交易的最快网络的延迟以微秒为单位;在常规的情况下,它以毫秒为单位。如果您在网络上一个一个地发送 100 个包,延迟为 1 毫秒(每次往返 2 毫秒),那么仅网络延迟就浪费了 200 毫秒!这五分之一秒,以当今 CPU 的标准来看是很多时间。如果您可以简单地通过重组您的请求来消除它,那么这就是这样做的一个很好的理由。

关于c# - 调用 Web 服务的成本是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21188663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com