Zing Chart 的十字准线功能泄漏 CPU
Crosshair feature of Zing Chart is leak CPU
当我在我的图表中启用十字准线功能时,在 Chrome 56 中一切正常,但是当我将 Chrome 升级到 57 时(甚至 chrome 58 和 ZingChart 2.6.0现在),CPU 悬停在图表上以查看十字准线时,使用率始终高于 25%。当我有 2 个图表时,CPU 使用率上升到 99%,浏览器很快变慢并崩溃。
我尝试禁用所有功能以查看导致此问题的原因,当我禁用十字准线时,CPU 使用又正常了。如果我禁用除十字准线功能以外的所有功能,则会观察到相同的 CPU 占用效应。
释放资源的唯一方法是终止选项卡。
这是我的代码:
var dataChart = {
id: "ShSDbePYhAxC",
data: {
type: "area",
"crosshair-x": {
"plot-label": {
text: "The %t Series has a value of %v."
}
},
gui: {
behaviors: [
{
id: "Reload",
enabled: "none"
}
],
contextMenu: {
customItems: [
{
function: "zingAlert()",
id: "zingAlert",
text: "zing Alert"
}
]
}
},
item: {
angle: -30
},
legend: {
"background-color": "white",
"border-color": "black",
"border-radius": "5px",
"border-width": 2,
layout: "1xauto",
padding: "10%",
x: "12%",
y: "90%"
},
plot: {
alphaArea: 1,
aspect: "spline",
"bar-width": "15px",
"contour-on-top": false,
lineWidth: "2px",
stacked: true,
marker: {
visible: false
},
tooltip: {
visible: false
}
},
plotarea: {
"margin-bottom": "23%",
"margin-left": "dynamic"
},
"scale-x": {
item: {
angle: -30
},
labels: [
"Name0", "Name1", "Name2", "Name3", "Name4"
]
},
"scale-y": {
label: {
"font-size": "15%",
text: "Number Of Visitors"
}
},
series: [
{
text: "Text A",
values: [11111, 222222, 3333333, 444444, 55555]
},
{
text: "Text B",
values: [6666, 777777, 88888, 99999, 12121212]
}
]
},
height: 550,
output: "canvas",
width: "100%",
}
所以我们一直倾向于认为这可能是 chrome 和 Angular 的问题。为了确认这一点,您可以将您的 zingchart 版本恢复到旧版本,如 v2.2.2。您可以通过以下链接的 cdn 访问此版本
根目录:
http://cdn.zingchart.com/2.2.2/
ZingChart.min:
http://cdn.zingchart.com/2.2.2/zingchart.min.js
模块:
http://cdn.zingchart.com/2.2.2/modules/
如果问题仍然存在,那是浏览器和 Angular 的问题,我们知道应该把精力集中在哪里。如果问题消失,则直接是 ZingChart 问题。
当我在我的图表中启用十字准线功能时,在 Chrome 56 中一切正常,但是当我将 Chrome 升级到 57 时(甚至 chrome 58 和 ZingChart 2.6.0现在),CPU 悬停在图表上以查看十字准线时,使用率始终高于 25%。当我有 2 个图表时,CPU 使用率上升到 99%,浏览器很快变慢并崩溃。
我尝试禁用所有功能以查看导致此问题的原因,当我禁用十字准线时,CPU 使用又正常了。如果我禁用除十字准线功能以外的所有功能,则会观察到相同的 CPU 占用效应。
释放资源的唯一方法是终止选项卡。
这是我的代码:
var dataChart = {
id: "ShSDbePYhAxC",
data: {
type: "area",
"crosshair-x": {
"plot-label": {
text: "The %t Series has a value of %v."
}
},
gui: {
behaviors: [
{
id: "Reload",
enabled: "none"
}
],
contextMenu: {
customItems: [
{
function: "zingAlert()",
id: "zingAlert",
text: "zing Alert"
}
]
}
},
item: {
angle: -30
},
legend: {
"background-color": "white",
"border-color": "black",
"border-radius": "5px",
"border-width": 2,
layout: "1xauto",
padding: "10%",
x: "12%",
y: "90%"
},
plot: {
alphaArea: 1,
aspect: "spline",
"bar-width": "15px",
"contour-on-top": false,
lineWidth: "2px",
stacked: true,
marker: {
visible: false
},
tooltip: {
visible: false
}
},
plotarea: {
"margin-bottom": "23%",
"margin-left": "dynamic"
},
"scale-x": {
item: {
angle: -30
},
labels: [
"Name0", "Name1", "Name2", "Name3", "Name4"
]
},
"scale-y": {
label: {
"font-size": "15%",
text: "Number Of Visitors"
}
},
series: [
{
text: "Text A",
values: [11111, 222222, 3333333, 444444, 55555]
},
{
text: "Text B",
values: [6666, 777777, 88888, 99999, 12121212]
}
]
},
height: 550,
output: "canvas",
width: "100%",
}
所以我们一直倾向于认为这可能是 chrome 和 Angular 的问题。为了确认这一点,您可以将您的 zingchart 版本恢复到旧版本,如 v2.2.2。您可以通过以下链接的 cdn 访问此版本
根目录: http://cdn.zingchart.com/2.2.2/
ZingChart.min: http://cdn.zingchart.com/2.2.2/zingchart.min.js
模块: http://cdn.zingchart.com/2.2.2/modules/
如果问题仍然存在,那是浏览器和 Angular 的问题,我们知道应该把精力集中在哪里。如果问题消失,则直接是 ZingChart 问题。