Memory 柱形图的内存泄漏问题
我不擅长说英语。请理解 使用堆栈柱形图时出现内存泄漏问题 我们使用setCategories更新数据,setData每2秒更新一次堆栈柱形图 但是,内存使用继续增加,浏览器将被强制终止 程序唯一要做的就是调用setCategories,setData。我需要做些什么来清理记忆吗 测试环境为操作系统:windows7、windows10、浏览器:最新版本chrome 57.0.2987.133 你可以看到,在1、3、5、7、10、15和20分钟后,你会不断增加 内存使用会随着时间的推移而增加,因此您可以立即检查它 通过在Chrome中运行[shift+esc]快捷方式,可以在任务窗口中检查内存使用情况 将示例代码作为附件发送。多谢各位 JQuery和Highcharts(5.0.10)使用最新版本Memory 柱形图的内存泄漏问题,memory,highcharts,memory-leaks,column-chart,Memory,Highcharts,Memory Leaks,Column Chart,我不擅长说英语。请理解 使用堆栈柱形图时出现内存泄漏问题 我们使用setCategories更新数据,setData每2秒更新一次堆栈柱形图 但是,内存使用继续增加,浏览器将被强制终止 程序唯一要做的就是调用setCategories,setData。我需要做些什么来清理记忆吗 测试环境为操作系统:windows7、windows10、浏览器:最新版本chrome 57.0.2987.133 你可以看到,在1、3、5、7、10、15和20分钟后,你会不断增加 内存使用会随着时间的推移而增加,因此
<script>
var dy = {
instanceAlias : {}
};
var CATEGORIES = ["a1","a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15","a16","a17","a18","a19","a20"];
var THEME = "";
var HEIGHT = "290";
var highchartConfig = {
column : {
chart: {
renderTo: null,
type: 'column'
},
xAxis: {
gridLineWidth: 1,
tickLength: 4,
categories : null,
labels : {
rotation: 0,
formatter : function(d){
return dy.instanceAlias[this.value] || this.value;
}
}
},
yAxis: {
min : 0,
max : 5,
lineWidth: 1,
tickLength: 4, // Same value as offset
tickPosition: "outside",
tickWidth: 1,
tickAmount: 3,
tickInterval : 25,
title: {
style : {
display: 'none'
}
},
stackLabels: {
style : {
"fontWeight": "normal",
color : (THEME == "dark") ? "#b0b0b3" : "#000"
}
}
},
plotOptions: {
series: {
borderRadius: 6,
borderWidth: 0,
marker :{
enabled :true,
symbol : "circle",
radius : 4
}
}
},
series: null
}
};
var stack1Config = $.extend(true,{},highchartConfig.column,{
colors : ["#009651","#ff9800","#ff1100","#009651"], //stack colors
chart: {
animation: false,
renderTo: "stack1",
height : HEIGHT
},
xAxis: {
categories : CATEGORIES
},
title: {
style: {
display: 'none'
}
},
subtitle: {
style: {
display: 'none'
}
},
legend : false,
tooltip : false,
yAxis: {
max : null,
tickInterval : null,
tickLength : null,
stackLabels: {
enabled: true,
useHTML : false,
style : {
"fontWeight": "normal",
color : (THEME == "dark") ? "#b0b0b3" : "#000"
}
}
},
plotOptions: {
column: {
stacking: 'normal',
},
series: {
animation: false,
stickyTracking: false,
enableMouseTracking: false,
lineWidth: 0,
marker: {
enabled : true,
symbol : "circle",
radius : 4
},
}
},
series : (function(){
var series = new Array();
var stack = [
{id : "normal", alias : "normal"},
{id : "warning", alias : "warning"},
{id : "danger", alias : "danger"}
];
for (var i = 0; i < stack.length; i++) {
//stack column 브러시 추가.
series.push({
name : stack[i].alias || stack[i].id,
id : stack[i].id,
lineWidth: 1,
data : (function(categories){
var data = [];
for (var i = 0; i < categories.length; i++) {
data.push(0);
}
return data;
})(CATEGORIES)
});
}
//circle
series.push({
type : "scatter",
name : "scatter",
id : "scatter",
marker: {
fillColor: '#FFFFFF',
lineWidth: 1,
lineColor: null
},
data : (function(b){
var data = [];
for (var i = 0; i < b.length; i++) {
data.push(0);
}
return data;
})(CATEGORIES)
});
console.log(series)
return series;
})()
});
var stack2Config = $.extend(true,{},highchartConfig.column,{
colors :["#009651"],
chart: {
animation: false,
renderTo: "stack2",
height : HEIGHT
},
xAxis: {
categories : CATEGORIES
},
title: {
style: {
display: 'none'
}
},
subtitle: {
style: {
display: 'none'
}
},
legend : false,
tooltip : false,
yAxis: {
max : null,
tickInterval : null,
tickLength : null,
stackLabels: {
enabled: true,
useHTML : false,
style : {
"fontWeight": "normal",
color : (THEME == "dark") ? "#b0b0b3" : "#000"
}
}
},
plotOptions: {
animation: false,
stickyTracking: false,
enableMouseTracking: false,
lineWidth: 0,
marker : {
enabled : false
},
column : {
dataLabels: {
enabled: true,
useHTML: true,
x : 0,
y : 0,
style : {
"fontWeight": "normal"
}
}
}
},
series : (function(){
var series = new Array();
var stack = [
{id : "cpu", alias : "CPU"}
];
for (var i = 0; i < stack.length; i++) {
//stack column 브러시 추가.
series.push({
name : stack[i].alias || stack[i].id,
id : stack[i].id,
lineWidth: 1,
data : (function(categories){
var data = [];
for (var i = 0; i < categories.length; i++) {
data.push(0);
}
return data;
})(CATEGORIES)
});
}
//circle
series.push({
type : "scatter",
name : "scatter",
id : "scatter",
marker: {
fillColor: '#FFFFFF',
lineWidth: 1,
lineColor: null
},
data : (function(b){
var data = [];
for (var i = 0; i < b.length; i++) {
data.push(0);
}
return data;
})(CATEGORIES)
});
console.log(series)
return series;
})()
});
var stack1 = Highcharts.chart(stack1Config);
var stack2 = Highcharts.chart(stack2Config);
var alarmTimeoutId = null;
var alarmTimeout = function(){
return setTimeout(function(){
var ACT_COLUMN = {
normal : [],
warning : [],
danger : [],
scatter : [] // success,warning,danger total value
};
var length = 20;
for (var i = 0; i < length; i++) {
var normalCnt = Math.round(Math.random()*100);
var warningCnt = Math.round(Math.random()*100);
var dangerCnt = Math.round(Math.random()*100);
ACT_COLUMN.scatter.push({ y: normalCnt+warningCnt+dangerCnt });
ACT_COLUMN.normal.push(normalCnt);
ACT_COLUMN.warning.push(warningCnt);
ACT_COLUMN.danger.push(dangerCnt);
}
for (var key in ACT_COLUMN) {
stack1.get(key).setData(ACT_COLUMN[key],false,false);
}
stack1.xAxis[0].setCategories(CATEGORIES);
ACT_COLUMN.scatter = null;
ACT_COLUMN.normal = null;
ACT_COLUMN.warning = null;
ACT_COLUMN.danger = null;
ACT_COLUMN = null;
var cpuData = [];
for (var i = 0; i < length; i++) {
var cpu = Math.round(Math.random()*100);
var color = "#009651";
if(cpu <= 50){
color = "#009651";
}else if(cpu <= 80){
color = "#ff9800";
}else{
color = "#ff1100";
}
cpuData.push({y : cpu, color : color });
}
var series = stack2.series;
var seriesLength = series.length;
for (var i = 0; i < seriesLength; i++) {
series[i].setData(cpuData,false,false);
}
stack2.xAxis[0].setCategories(CATEGORIES);
clearTimeout(alarmTimeoutId);
alarmTimeoutId = alarmTimeout();
}, 2000);
}
alarmTimeout();
</script>
变量dy={
instanceAlias:{}
};
风险值类别=[“a1”、“a2”、“a3”、“a4”、“a5”、“a6”、“a7”、“a8”、“a9”、“a10”、“a11”、“a12”、“a13”、“a14”、“a15”、“a16”、“a17”、“a18”、“a19”、“a20”];
var THEME=“”;
var HEIGHT=“290”;
var highchartConfig={
专栏:{
图表:{
renderTo:null,
类型:“列”
},
xAxis:{
网格线宽度:1,
长度:4,
类别:空,
标签:{
轮换:0,
格式化程序:函数(d){
返回dy.instanceAlias[this.value]| | this.value;
}
}
},
亚克斯:{
分:0,,
最高:5,
线宽:1,
tickLength:4,//与偏移量的值相同
勾选位置:“外部”,
宽度:1,
金额:3,
时间间隔:25,
标题:{
风格:{
显示:“无”
}
},
堆叠标签:{
风格:{
“fontWeight”:“正常”,
颜色:(主题==“深色”)?“#b0b0b3”:“#000”
}
}
},
打印选项:{
系列:{
边界半径:6,
边框宽度:0,
标记:{
启用:对,
符号:“圆圈”,
半径:4
}
}
},
序列号:空
}
};
var stack1Config=$.extend(true,{},highchartConfig.column{
颜色:[“#009651”、“#ff9800”、“#ff1100”、“#009651”]、//堆叠颜色
图表:{
动画:错,
renderTo:“stack1”,
高度:高度
},
xAxis:{
类别:类别
},
标题:{
风格:{
显示:“无”
}
},
副标题:{
风格:{
显示:“无”
}
},
传说:错,
工具提示:false,
亚克斯:{
max:null,
时间间隔:空,
tickLength:null,
堆叠标签:{
启用:对,
useHTML:false,
风格:{
“fontWeight”:“正常”,
颜色:(主题==“深色”)?“#b0b0b3”:“#000”
}
}
},
打印选项:{
专栏:{
堆叠:“正常”,
},
系列:{
动画:错,
粘滞跟踪:错误,
enableMouseTracking:false,
线宽:0,
标记:{
启用:对,
符号:“圆圈”,
半径:4
},
}
},
系列:(函数(){
var系列=新数组();
变量堆栈=[
{id:“正常”,别名:“正常”},
{id:“警告”,别名:“警告”},
{id:“危险”,别名:“危险”}
];
对于(var i=0;i