我目前正在进行性能分析。我们有一个基本的客户/服务器应用程序如果我在同一台计算机(本地主机)上运行客户机/服务器而不是在局域网上的两台计算机上运行客户机/本地主机与局域网:速度差异?
回答
TCP传输速度会!因为如果你在同一台计算机上运行它,它将本地转发数据包,甚至不需要触及LAN和网络适配器。
但是客户端+服务器的整体速度在不同的机器上可能会更好,特别是如果您不经常与服务器通信。
这完全取决于你的应用程序做什么....
为例: 如果从客户端传输10GB的文件服务器,那么,它会有所作为。
是的,通过网络发送它的延迟会降低程序的速度。吞吐量不会,但如果您在发送数据之前等待回复,则会由于额外的延迟而建立起来。
对于本地主机,我得到0.024ms的ping时间,用于ping我的路由器,我得到0.339ms的时间 – Earlz 2010-03-02 18:02:47
LnDCobra,这实际上是一个很好的答案。 “如果你在等待回复”......当你与Skype上的某个人聊天时会发生这种情况。由于几毫秒的延迟,整个对话速度变慢。 – 2010-03-02 18:12:11
是的,如果你认为0.024和0.339之间的差异很大,根据这些时间localhost比LAN快15倍。 – 2010-03-02 18:43:06
我不知道它是否可衡量(也取决于你的局域网的速度),但从逻辑的角度来看,当然是有区别的。本地主机将始终是最快的,因为数据不是通过其他介质(如空气或铜线)发送的。
但取决于您的应用程序的作用,这可能或可能不重要。
使用本地主机时,由于内存,磁盘,CPU等原因,本地资源更可能成为性能瓶颈。使用两台计算机时,由于延迟,带宽,吞吐量等原因,网络更可能成为瓶颈。数据包丢失等。
这取决于您的应用程序的功能以及它如何使用网络,客户端和服务器。
如果客户端和服务器在同一台计算机上,传输时间几乎肯定会更快。根据客户端和服务器消耗的其他资源,这对于整个程序的性能而言可能并不重要。
我刚刚在一个项目上遇到了这个问题。与localhost一起使用UDP至少比网络连接快一个数量级(可能两个数量级),并且我相信在本地主机上,网络端口通常不存在1500的MTU上限。
一个未经证实的怀疑是PC上内置的网络端口并不都是相同的质量,所以即使他们声称是千兆位,也可能无法真正走得这么快。但它也可能导致大量的Windows系统调用(每个数据包有一个操作系统调用)可能是一个很大的开销。通过TCP,我可以在一次调用中向操作系统传递大量数据。使用UDP时,我必须一次将它传递给一个数据包,受到MTU大小的限制,从而导致大量的OS调用。但尚未证实。
还没有尝试过Linux。
- 1. 差异网页本地主机和主机服务器
- 2. 本地主机和远程站点之间的AJAX速度差异
- 3. 通过局域网查看本地主机站点
- 4. 通过局域网访问django本地主机服务器
- 5. 跨域Silverlight问题与本地主机
- 6. 本地主机上的子域与Nginx
- 7. PHP主机没有局域网
- 8. 主机在局域网中未解析
- 9. MATLAB scatter3,plot3速度差异
- 10. 将Docker上的Piwigo映射到主机的局域网地址
- 11. 从局域网中的IP地址查找DNS主机名
- 12. 从局域网中的主机名获得IP地址
- 13. hdfs局域网IP地址主机名解析
- 14. 当在本地主机上运行远程主机时,CSS的差异
- 15. Chrome在本地主机和服务器上的差异
- 16. 本地主机和(LocalDb)/ MSSQLLocalDB之间的SQL差异
- 17. 解决有关通过局域网访问本地主机的问题
- 18. 网站与机器名称,但不与本地主机
- 19. 简单的方法来衡量局域网计算机的LAN网络速度?
- 20. 在不同的主机名下查看局域网上的局域网
- 21. joomla网站与地区差异
- 22. 与本地主机:3000
- 23. 如何加速netbeans的本地主机?
- 24. ASP.NET - 本地主机上的浏览器速度
- 25. 本地主机上的Firefox速度很慢
- 26. 本地主机在新帖子上查询速度很慢
- 27. 为什么我的网站在本地主机上速度较慢并且速度很快?
- 28. 本地主机上的网站速度很慢,服务器上的速度很慢
- 29. 模拟本地主机上的低速互联网连接
- 30. 全局变量和对象变量之间的速度差异
@Andrey:这不一定是真的。如果应用程序指示它使用网络层进行传输,则本地连接仍使用回送通过适配器传递。 – 2010-03-02 18:09:05
请解释应用程序如何指示使用网络? – Andrey 2010-03-02 18:12:10