本帖最后由 lihuiqian1991 于 2018-1-22 15:32 编辑
SpreadJS版本:V11
再现方式:
1. 打开http://demo.gcpowertools.com.cn/ ... os/initializeSpread
2. HTML修改为如下:
- <div class="sample-turtorial">
- <div id="ss" style="width:100%; height:340px;border: 1px solid gray;"></div>
- <button id="init" onclick="init()">init</button>
- <button id="destory" onclick="destroy()">destroy</button>
- </div>
复制代码 3. JS修改为如下:
- var spread;
- function init() {
- spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
- var sheet = spread.getSheet(0);
- sheet.suspendPaint();
- for (var i = 0; i < 10000; i++) {
- sheet.setValue(i, 0, i);
- sheet.setValue(i, 1, i + 1);
- sheet.setFormula(i, 2, "A" + (i + 1) + "*B" + (i + 1));
- }
- sheet.resumePaint();
- }
- function destroy() {
- spread.destroy();
- spread = undefined;
- }
复制代码 4. 点击运行
5. 记录堆快照1
6. 点击init按钮
7. 点击destroy按钮
8. 记录堆快照2
9. 对比堆快照2与堆快照1
在实际项目中,对比堆快照的结果如下:
因为内容不一样,某些项目的size会存在不同。
我们最关心的是实际项目中,排名靠前的几个无法回收的内容。
其他内容也很关心,但优先级不是很高。
请问,如何能够比较全面地回收内存?
|
|