了解I/O的访问时间很有好处。
我们都会把基本的字符串处理做成库或者函数, 供程序调用。你见过把字符串处理单独做成一个网络server吗? 我见过, 也用过。根据实际测试结果, 同城IDC之间, 往返网络迟延一般在10ms以内, 很快了。根据对这个字符串server进行监控,发现往返网络迟延+字符串server的处理时间, 总共才3-5ms.
某次,我把深圳对深圳的访问切换成深圳对上海的访问, 跨城IDC, 这里就涉及到延时增加, 根据监控, 往返延时(调用延时)增加了50ms以上, 可见, 跨城调用是有代价的。 对于延时要求很高的系统,必须进行多地部署, 就近访问。
我们可以近似看看光从深圳到上海的往返传播时间。 飞机从深圳到上海大约2小时, 飞机时速大约700km/h, 所以深圳到上海的距离大约1400km(我查了一下, 大概就这个值), 所以往返就是2800km了, 光的往返传播时间大约是10ms, 如果算上网络包在传输过程的路由寻址,分组转发等n多操作, 那肯定就不止10ms了(上述例子中,是50ms).
下面, 我们可看看基本I/O时间的对比:
可以看一看。
不多说。