1.1.2网络延迟

网络延迟
Internet发展成熟的重要标志是全世界所有的电脑连接起来,形成一个巨大的信息处理中心。远程的或者本地的程序访问也变得模糊,使用者不知道也不再关心他是工作在本地还是远程,他们快乐的compute the folds in their proteins或破解外星的信号 。
不幸的是,远程和本地的访问是不尽相同的,穿越网络所需的代价非常高(而且不是很可靠)。当一段non-networked的代码编译或者解释的时候,用到的各种编码的方法和功能指令存储在本地的内存中。(figure 1.6)
(Under the hood,估计是写错了应该是hoof),大量的计算花费在收发数据网络两端的数据,它是非常的缓慢,甚至超过了信号在物理线路上的传递。各种各样的状态编码和解码修整着从物理远端发送的数据,翻译这些01代码,错误监测和回发,调整接收到包的次序,二进制代码的最终的含义。(The various stages of encoding and decoding cover aspects of the communication ranging from physical signals passing along the wire (or airwaves), translation of these signals as the 1s and 0s of binary data, error checking and re-sending, to the reassembling of the sequence, and ultimately the meaning, of the binary information.)。
这里引入的请求功能必须是一个编码了的对象,也可以说是串行化。这些串行化的数据按照传输协议通过物理传输发送出去(铜线或者光缆,或者无线传输)。
在远端的一个机器上所用的协议是decoded,,这个二进制数据被反串行化,并生成一个请求对象的拷贝。这个对象能够被应用于数据模型并且产生一个response对象。对于调用功能的回复信道,串行化和传输又必须重新进行一次,最后结果在一个response对象被返回给到调用的函数。


    这些复杂的过程是必须由环境自动完成,现在的程序环境像java以及
.net framewrok提供了这些的功能。尽管如此,当一个远程调用被起用的时候,仍然需要大量的工作。并且如果调用过于频繁了,性能会很糟糕。
因此,一个穿越网络的调用是永远不会和本地内存中一样的. 此外,不可靠的网络(因而失去了重要的信息包),使本无变数难以预测。 相对来说在本地的机器反应要好得多.
但什么都与可用性有关呢?应该说不少.
成功的UI必须在最基本的层面模仿我们真实的世界期望. 其中最基本的交互的规则是,当我们推动、激励、或戳的时候,它立即反应. 稍有延误,就可能分散用户注意力,使其偏离了方向。
然而在网络中穿行的时候,有太多原因使系统效率下降,成为引人注目的延误.  在桌面应用,我们必须决定是否使用设计不良的应用,让人不觉得好像幼儿手推车,但在网络中,我们可以免费得到一切想要的!
由于网络延迟的不可预测性,造成了bugginess的泛滥,而测试也极其困难. 因此,网络延迟是现实世界的应用造成不良互动一种常见的症状.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值