分享
 
 
 

影响网络应用程序性能的因素

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

随着网络的发展,越来越多的应用程序需要依赖于网络,所以网络的性能直接影响到我们应用程序的性能。那么都有那些因素影响到网络程序的性能来?

我们以Windows平台上的应用程序来分析,首先将影响因素分为两个部分:基础网络部分,应用程序的网络驱动部分。

基础网络部分指物理的网络结构和链路,主要有下面几个方面的因素:

网络的速率和带宽。这是一个根本的问题,如果网络的基础设施不够快的话,那么其他都面谈。通讯计算机之间的距离和路由。最基本的知识,在LAN内的应用程序就能够跑的飞快,因为基本上LAN的计算机第一个条件满足了,而且距离短,且路由跳数少,但对于WAN的应用程序来说距离和路由是决定程序性能的很重要的方面,一般来说距离越远,信息的传输延迟时间越长,而路由的跳数基本上与距离有关,但路由的路径却可以确定,那么选择一个好的路由(时延最小的)是必要的。时延的大小可以通过tracert或其他的工具来测量。计算机的处理能力。一般情况下,CPU频率高的计算机处理起来要比CPU低的高,特别对于需要高速传输数据的应用程序,某个CPU频率可能是处理流量的极限,但使用相对频率高的CPU可能轻松处理。另外CPU的频率高低对程序的影响在发送和接收端都存在,如果接收端不能很快的从缓冲区中把数据取出来,那么发送端必然会收到0窗口的报告,从而停止等待对方的窗口恢复(TCP),造成本来可以利用的带宽被浪费。那么在给定的基础网络部分之上怎么样尽量利用其发挥最大的性能着就属于网络应用程序本身编写的责任了,这也是很有讲究的,下面基本方面可以参考:

使用阻塞套接字。阻塞套接字可能会对应用程序的性能造成影响,在阻塞套接字时,程序必须等待SOCKET处理完毕或者出错后才返回,这段时间CPU就无聊的等待,对于非阻塞可以在这段时间做一些数据准备工作,一旦SOCKET可以用就立即发送数据,并行性更好。频繁的调用send和recv。如果发送很很小的数据包且流量很大的时候(例如:每秒30000个150字节的包),而一次只发送一个包,就可能导致每秒中要调用30000次send函数,这个代价很大,因为每次调用send都要从用户态到核心态的switch,所以这个时候应该尽量减少send的调用次数,例如使用WSASend或用一个更大的发送缓冲区。对于recv也是同样的结果,最好使用一个较大的缓冲区来接收,然后使用内存COPY。实践发现,内存COPY比调用send或recv耗费的CPU时钟周期要少的多。频繁的出错。对于在套接字不可用的时候调用send或recv函数,只会导致出错,而每出错一次就浪费一定的CPU周期,这个代价比较大,所以尽量保证每次调用send或recv的时候都能够正确,因此应该在调用他们之前使用select函数来检查一下(对于非阻塞),在出错之后也要检查等待可用后再调用。不必要的网络数据量。网络传输数据的时候即使一个无用的字节也是负担,特别对于WAN,所以在自己定义数据包的时候应该尽量采用最小化的原则,例如,使用bit可以完成的就不要使用一个字节,使用一个字节完成的就不要用两个字节(当然最小也的一个字节),这个可以参考TCP/IP各类协议定义的时候采用的格式,非常精简。以上这些是本人工作总结的结果,希望与大家一起分享探讨。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有