服务程序使用Java开发,客户端使用C#开发的winForm程序,项目的特点是业务要求经常性传递Image对象,故使用Hessian进行序列化DTO, 客户端采用Hessian csharp 进行反序列化,测试发现一个300k的文件从服务端传输到客户端需要12秒,显然这个速度不能满足业务需要.
下载hessian csharp原代码,发现直接对网络流进行反序列化,难怪慢呀.
动手改改吧,修改在CHessianInput的构造函数中,将网络流读到内存流中,代码如下:
public CHessianInput(Stream srInput)
{
BufferedStream bs = new BufferedStream(srInput);
Init(bs);
}
经过测试只要不到一秒了.

浙公网安备 33010602011771号