webservice异步调用内存过高的问题?
我在vs2005里面异步调用WebService
如果我的客户端程序异步调用10万次,会发现客户端所在的机器耗内存特别高,而且调用完毕也没有办法降下来
如果不关闭客户端程序,继续调用10万次,内存会继续上涨.怎么能解决内存的耗用,同时保持相对的性能??
我们的应用要求客户端调用性能要很高!现在关键是要降低客户端异步调用时候的内存开销!
[解决办法]
Thread.Sleep(1);
这个参数对于测试过于严苛了。模拟实际情况,客户端调用10此以后通常会等待1秒钟以上(实际上往往等待1分钟以上),我们可以使用:
Thread.Sleep(1000);
来测试。使用sleep,并且将调用分组写在方法内,目的是让GC回收channel对象。然后把每一组调用本身所花的时间加起来(不包括sleep时间),再除以所有调用数量,就可以算出平均调用的速度了。
[解决办法]
如果是真的有这么多请求,建义换种方式,对于请求进行统一的管理
[解决办法]
10万次确实是太大了点,这是没有办法的事情.
不过线程执行完毕会被很快回收,这点是肯定的,导致内存增大的问题估计是有对象没有被回收。
用GC回收一下看情况如何?