请教一个如何提高程序执行效率的问题?谢谢~
问题是这样的:
客户端和服务器端使用Socket通信(阻塞模式),服务器端接收客户端请求(有些请求客户端需要向服务器传送较大文件,比如1.3M),服务器端接收请求后并对数据进行处理后,将处理结果返回给客户端(应答消息长度固定12字节).
现在的问题是:客户端和服务器端传输数据的速率大约为65M/s(千兆网),服务器端处理数据的速度为60M/s.如果采用阻塞式通信时,从客户端发出请求到接到应答的速度可能只有30M/s(减半).
我的问题就是如何能够提高这个速度,也就是客户端发出数据到接受到应答的消息间的时间?
我现在想到如下两种方法:
1.仍然采用阻塞式通信,不过在服务器端采用多线程实现,其中一个线程接收数据,一个线程处理数据,服务器中开辟两个缓存来存放接收的数据,接受数据的线程和处理数据线程对这两个缓存进行轮换使用
2.采用非阻塞的异步通信模式,不过我认为这个方法可能对速度提高的不是很大
上面只是个人的看法,还请各位帮忙看看,也可以发表自己的观点!!!!