|
我的网站,需要大量从服务器读取wave文件到前端,
一开始是用JQuery的post来读取,发现随着运行,大量调用,内存占用增长很快。
内存的增长不全是wave文件的占用,因为所有的wave文件不超过100M。
从任务管理器看,浏览器的内存占用会从1G增加到2, 3G,然后还在不断增长。
于是自己new XMLHttpRequest,维护一个对象池,不断重用,
内存泄漏减轻好多。
但是发现还是有内存泄漏,当时不影响网站使用,就一直没解决。
最近用Chrome的内存堆快照分析,
发现很多上述ajax返回的字串没有释放。
这些字串用完都赋值为null,不清楚为啥会泄漏。
仔细观察,这些字串都包在()里。
因为ajax返回的是JSON字串,收到后,把它包在()里,用eval解析成JSON对象。
于是把eval换成JSON.parse,内存泄漏就全部消失了。
|
|