(郁闷系列)让我郁闷的Json-rpc之效率篇

既然是郁闷系列,连接到上一篇郁闷文章: http://www.iteye.com/topic/68525

这篇我们来说说Json-rpc
工作在ajax年代,当然不能没有尝试了,咱也在架构里加点ajax的东东,至少满足一下自己的虚荣心嘛,看咱也用上了ajax,虽然少了一个x。

系统部署到客户那里以后,总是有客户抱怨,你们的系统使用一段时间后,非常的慢,但是关掉后重新启动就没问题。本来一直抱怨客户的256M内存的机器,美其名曰:什么年代了,还256啊,但是现实是客户毕竟是客户,不理我们是吧,那就不给你钱,看谁狠,加上领导的压力,最终不得不下狠心看看那个破玩意在拖累我们的伟大的社会主义软件系统。

仔细想想,客户机器运行速度缓慢,除了病毒的原因外,无外乎两点,一个是cpu占用率高,一个是内存消耗的太多了,新的线程分配不到内存了。现场有同事过去看了一下,cpu的情况基本排除,那剩下就是内存的消耗这种情况了。

某天把客户经常使用的页面找到,点击进入,下载了一个很简单的内存监控软件DMD监控内存,发现进入新增页面,没做任何操作,只是进入,居然消耗掉3M的客户机内存,这个还是可以忍受的,毕竟偶页面的js操作不少,重新循环之前的步骤,每次内存都消耗3M,这时,偶就想,消耗了怕啥啊,我们可以回收啊。我等啊等,等啊等(注意,页面没有关闭),内存不见一点回收的迹象,哦,至此多少可以判断客户那边出现的情况,只要进入这个页面就会消耗一下客户端内存,但是内存还不回收。怪不得使用一段时间,客户端页面会很缓慢,原来都是内存惹的祸。

既然初步判断了原因,那就把所有的js代码全部去掉,重新进入本页面,咦,内存没变化,符合之前的预测,然后就一点点的加js代码,终于发现问题了,可恶的json-rpc,当实例化客户端后,居然不释放内存,我晕我倒,看下面这段代码:
var jsonUrl = "<%=request.getContextPath()%>/JSON-RPC";
var jsonRpc = new JSONRpcClient(jsonUrl);


在网上查了一下,也没有json-rpc关于内存损耗方面的文章,是不是真的如我测试的那样?还是跟环境有关系,我就不的而知了,迫于时间的紧迫,只能把那个最经常用到的地方改用dwr。

下篇郁闷篇会提到DWR的返回值

你可能感兴趣的:(json,Ajax,浏览器,DWR,IE)