er.harvindersingh

Fusion Chart Memory Leak.

Recommended Posts

Hello,

 

In our application we are using Fusion Chart version 3.2 and chart is rendered through javascript.

The chart is rendered into the HTML which is fetched from server using AJAX call (Using jquery TAB widget).

Every time user request new data HTML is fetched from server and chart is rendered.

But every time a chart is rendered and disposed it cause memory leaks.

I have already tried dispose() method as well as fixes suggested on other forums.

dispose() method only reclaim memory in kbs but actually memory leak is happening around 8-10 mb (depending upon data points).

Here is method that we are using to render chart:

 

 

function renderDailyViewSummaryChart(chartData){

if(dailyViewSummaryChart != null){

 

dailyViewSummaryChart.dispose();

dailyViewSummaryChart=undefined;

}

if(dailyViewSummaryChart == undefined){

dailyViewSummaryChart = new FusionCharts("./fusioncharts/StackedBar2D.swf", "ChartId4DailyViewSummaryChart", "560", "212", "0", "0");

}

dailyViewSummaryChart.setJSONData(chartData);

dailyViewSummaryChart.render("dailyViewSummaryChart");

}

Share this post


Link to post
Share on other sites
Guest Bindhu

Hi,

 

Welcome to the FusionCharts Forum :)

 

Thank you for the post.

 

Can you please let us know the version of FusionCharts that you are currently using ?

 

If you are not using FusionCharts v3.2.2 SR3, then please upgrade.

 

Hope this helps !

Share this post


Link to post
Share on other sites

Hi,

 

I am using Fusion Charts version 3.2.2.

Following is the configuration for which leak is happening:

Browser: IE9 32 bit

Operating System: Windows 7 64 bit.

 

On the same machine Chrome 18.0 and Firefox 12.0 produces very less memory leaks.

 

Attached is the html for reproducing the memory leak.

Just click the Render button again and again.

Note:- In the sample file dispose() method is just placeholder but in my actual javascript code dispose() method works but only disposes data which is just in KBs.

 

Please let me know if you need more info.

 

 

memoryLeak.html

Share this post


Link to post
Share on other sites
Guest Bindhu

Hi,

 

Our observation showed linear increase in memory consumption on every re-render of the chart. This resulted the chart starving the browser of available memory within 10 minutes of operation and eventually causing a browser crash.

The current build has reduced this rate of memory leak to a great extend. On an average case there is now just 15% of the original leak amount.

 

The new release will have most positive impact on Internet Explorer 6, 7 and 8 (that originally exhibited the worst case) with just 5 to 10% of the original leak amount. FireFox, Chrome and Internet Explorer 9 has been tested to retain only 30% of original leak value but that is consistent with the fact that it originally had nearly half the loss amount when compared to Internet Explorer.

 

However, we would still continue to improve for coming service releases.

 

Hope this helps !

Edited by Bindhu

Share this post


Link to post
Share on other sites

Hi,

 

The new release will have most positive impact on Internet Explorer 6, 7 and 8 (that originally exhibited the worst case) with just 5 to 10% of the original leak amount. FireFox, Chrome and Internet Explorer 9 has been tested to retain only 30% of original leak value but that is consistent with the fact that it originally had nearly half the loss amount when compared to Internet Explorer.

 

 

Which release are you talking about? When will be this released?

Share this post


Link to post
Share on other sites
Guest Bindhu

Hi,

 

I meant about the FusionCharts XT SR3 release and it is released.

Share this post


Link to post
Share on other sites

It is really a serious problem on FusionWidget as well. I have 6 gauges that update every 30 second and after 10 hours it take 2 GB of RAM and then crash. As a workaround I refresh the whole page every 5 minute to release the memory.

 

I tested both setJSONData and feedData method to update the chart but same mem usage happens.

 

Omid

Share this post


Link to post
Share on other sites
Guest Sumedh

It is really a serious problem on FusionWidget as well. I have 6 gauges that update every 30 second and after 10 hours it take 2 GB of RAM and then crash. As a workaround I refresh the whole page every 5 minute to release the memory.

 

I tested both setJSONData and feedData method to update the chart but same mem usage happens.

 

Omid

 

Hi,

 

Try to render once again using FusionWidgets XT SR v1.

 

Though there will be certain scenarios where memory leak issues will arise.

 

However, we are continuously working on the memory leak issue and we will try to improve it in upcoming releases of FusionWidgets XT.

 

Thanks for your time.

Share this post


Link to post
Share on other sites

Hi,

 

Try to render once again using FusionWidgets XT SR v1.

 

Though there will be certain scenarios where memory leak issues will arise.

 

However, we are continuously working on the memory leak issue and we will try to improve it in upcoming releases of FusionWidgets XT.

 

Thanks for your time.

 

Hi,

 

I'm using the latest one that is SR 1.

 

BR

Omid

Share this post


Link to post
Share on other sites
Guest Sumedh

Hi,

 

I'm using the latest one that is SR 1.

 

BR

Omid

 

Hi,

 

As I mentioned in earlier post that we are working on this issue.

 

We will update you on this shortly.

Share this post


Link to post
Share on other sites
Guest Sumedh

Hi,

 

Can you please provide some information on below points?

 

> What chart type are you using?

 

> How many data points you are trying to plot?

 

> In which browser you are facing this issue? send us the browser version details.

 

> Also, send us the sample code along with the chart XML.

Share this post


Link to post
Share on other sites

What chart type are you using?

[ MSColumn2D.swf ]

> How many data points you are trying to plot?

[>10000]

> In which browser you are facing this issue? send us the browser version details.

[iE9, Chrome 18...]

> Also, send us the sample code along with the chart XML.

 

[sample chart XML]

 

<chart caption="成功接听数" baseFontSize ="20" YAxisMaxValue="6000" animation ="0" bgColor="000000" bgAlpha="0" showLabels="1" showvalues="1" decimals="0" numberPrefix="" numdivlines="6" numVDivLines="12" divLineAlpha="30" drawAnchors="1" labelPadding ="10" yAxisValuesPadding ="10" useRoundEdges="1" legendBorderAlpha="0" formatNumber="0" formatNumberScale="0"><categories><category label="成功接听数" /></categories><dataset seriesName="北京" color="AFD8F8" showValues="1"><set value="2220" /></dataset><dataset seriesName="西安" color="F6BD0F" showValues="1"><set value="3000" /></dataset></chart>] ScreenData12[<chart caption="正在通话" baseFontSize ="20" YAxisMaxValue="50" animation ="0" bgColor="000000" bgAlpha="0" showLabels="1" showvalues="1" decimals="0" numberPrefix="" numdivlines="6" numVDivLines="10" divLineAlpha="30" drawAnchors="1" labelPadding ="10" yAxisValuesPadding ="10" useRoundEdges="1" legendBorderAlpha="0"><categories><category label="正在通话" /></categories><dataset seriesName="北京" color="AFD8F8" showValues="1"><set value="20" /></dataset><dataset seriesName="西安" color="F6BD0F" showValues="1"><set value="10" /></dataset></chart>] ScreenData13[<chart caption="空闲座席" baseFontSize ="20" YAxisMaxValue="50" animation ="0" bgColor="000000" bgAlpha="0" showLabels="1" showvalues="1" decimals="0" numberPrefix="" numdivlines="6" numVDivLines="10" divLineAlpha="30" drawAnchors="1" labelPadding ="10" yAxisValuesPadding ="10" useRoundEdges="1" legendBorderAlpha="0"><categories><category label="空闲座席" /></categories><dataset seriesName="北京" color="AFD8F8" showValues="1"><set value="30" /></dataset><dataset seriesName="西安" color="F6BD0F" showValues="1"><set value="20" /></dataset></chart>] ScreenData14[<chart caption="平均通话时长" baseFontSize ="20" YAxisMaxValue="500" animation ="0" numberSuffix="s" bgColor="000000" bgAlpha="0" showLabels="1" showvalues="1" decimals="0" numberPrefix="" numdivlines="6" numVDivLines="10" divLineAlpha="30" drawAnchors="1" labelPadding ="10" yAxisValuesPadding ="10" useRoundEdges="1" legendBorderAlpha="0"><categories><category label="平均通话时长" /></categories><dataset seriesName="北京" color="AFD8F8" showValues="1"><set value="40" /></dataset><dataset seriesName="西安" color="F6BD0F" showValues="1"><set value="30" /></dataset></chart>

 

 

[sample javascript code]

 

<script language="javascript" type="text/javascript">

function LoadChart(dataString) {

myChart.setXMLData(dataString); // there is memory leak!!!

 

}

</script>

 

 

 

<script type="text/javascript"><!--

 

var dataString ='<chart caption="成功接听数" baseFontSize ="20" YAxisMaxValue="600" animation ="1" bgColor="000000" bgAlpha="0" showLabels="1" showvalues="1" decimals="0" numberPrefix="" numVDivLines="10" divLineAlpha="30" drawAnchors="1" labelPadding ="10" yAxisValuesPadding ="10" useRoundEdges="1" legendBorderAlpha="0">\n\

<categories><category label="成功接听数" /></categories>\n\

<dataset seriesName="北京" color="AFD8F8" showValues="1">\n\

<set value="0" />\n\

</dataset>\n\

<dataset seriesName="西安" color="F6BD0F" showValues="1">\n\

<set value="0" />\n\

</dataset>\n\

</chart>';

 

FusionCharts.setCurrentRenderer('JavaScript');

var myChart = new FusionCharts("Charts/MSColumn2D.swf", "myChartId", "330", "490", "0", "1");

myChart.setXMLData(dataString);

myChart.render("chartContainer");

 

 

// -->

</script>

Edited by free_wxl

Share this post


Link to post
Share on other sites
Guest Bindhu

Hi,

 

A warm welcome to the FusionCharts Forum :)

 

Can you please let us know a few more details as mentioned below,

 

1. Exact Test Bed Details required

2. Exact Browser Version

3. Browser Bit - 32 or 64 bit

4. OS Name & Bit -

5. Flash Player Version - Check from (IE only) www.playerversion.com

6. Flash Player bit - 32 or 64

7. How many charts are there in the single page?

8. System Configuration: RAM Capacity and Processor -

9. Exact Sample Details

10. Type of Chart – Flash or JS

11. Is it only chart or is there are something else in the page like design elements, icons tabs images etc.

12. Using Chart Dispose method?

13. Memory Usage (in KB or MB) for the browser that you are currently using.

 

Steps to Check the memory the browser is consuming on load with no Chart.

 

a. Start any blank browser IE or Firefox or opera or Safari

b. Start Chrome In the Address bar type chrome://memory-redirect as in video

OR

c. Start Task Manager Check the Process Usage

d. Extensions & Add ons used in the browser Try to note the browser usage after disabling all the extensions as in video

e. Steps in d & e reflects the browser usage on load with a blank HTML page.

 

Note: All the questions are mandatory. Any one of the answers missing will not allow us to replicate the exact issue.

 

Also, please note that the MSColumn2D chart do not support 10000 data points. It is too much to handle for a MSColumn2D chart.

 

MSColumn2D chart supports around 1000 to 1500 data points only.

 

Hope this helps!

Share this post


Link to post
Share on other sites

1. Exact Test Bed Details required

 

2. Exact Browser Version

[browser:IE9, Version:9.0.8112.16421]

 

3. Browser Bit - 32 or 64 bit

[32bit]

 

4. OS Name & Bit -

[WIN7, 32bit]

 

5. Flash Player Version - Check from (IE only) www.playerversion.com

[WIN 11,4,402,287]

 

6. Flash Player bit - 32 or 64

[32]

 

7. How many charts are there in the single page?

[1]

 

8. System Configuration: RAM Capacity and Processor -

[4G RAM, Inter® Core i5-2410M CPU @2.30G]

 

9. Exact Sample Details

 

10. Type of Chart – Flash or JS

[MSColumn2D..., JS]

 

11. Is it only chart or is there are something else in the page like design elements, icons tabs images etc.

[only chart]

 

12. Using Chart Dispose method?

[no]

 

13. Memory Usage (in KB or MB) for the browser that you are currently using.

[Each setXMLData time, the IE's memory increases 50KB ]

[myChart.setXMLData(dataString); // there is memory leak!!!]

 

 

Steps to Check the memory the browser is consuming on load with no Chart.

 

a. Start any blank browser IE or Firefox or opera or Safari

b. Start Chrome In the Address bar type chrome://memory-redirect as in video

OR

c. Start Task Manager Check the Process Usage

d. Extensions & Add ons used in the browser Try to note the browser usage after disabling all the extensions as in video

e. Steps in d & e reflects the browser usage on load with a blank HTML page.

 

Note: All the questions are mandatory. Any one of the answers missing will not allow us to replicate the exact issue.

 

Also, please note that the MSColumn2D chart do not support 10000 data points. It is too much to handle for a MSColumn2D chart.

 

MSColumn2D chart supports around 1000 to 1500 data points only.

 

Hope this helps!

 

 

 

Share this post


Link to post
Share on other sites

sorry, update it:

13. Memory Usage (in KB or MB) for the browser that you are currently using.

[IE's memory 80,000KB in begin, Each render time, the IE's memory increases 50KB ]

[myChart.setXMLData(dataString);]

[myChart.render("chartContainer"); // there is memory leak!!!]

Edited by free_wxl

Share this post


Link to post
Share on other sites

Source code

=====================================================================

 

=====================================================================

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!-- saved from url=(0091)http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html -->

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>chart</title>

<script type="text/javascript" src="./chart/FusionCharts.js"></script>

<style type="text/css" media="screen">object.FusionCharts:focus, embed.FusionCharts:focus {outline: none}</style>

<script type="text/javascript" language="Javascript" src="./chart/jquery.min.js"></script>

<script type="text/javascript" language="Javascript" src="./chart/lib.js"></script>

<link href="./chart/style.css" rel="stylesheet" type="text/css">

 

<script language="javascript" type="text/javascript">

function LoadChart(dataString) {

myChart.setXMLData(dataString);

myChart.render("chartContainer");// there is memory leak!!!

CollectGarbage();

 

}

</script>

 

<style type="text/css">

h2.headline {

font: normal 110%/137.5% "Trebuchet MS", Arial, Helvetica, sans-serif;

padding: 0;

margin: 25px 0 25px 0;

color: #7d7c8b;

text-align: center;

}

p.small {

font: normal 68.75%/150% Verdana, Geneva, sans-serif;

color: #919191;

padding: 0;

margin: 0 auto;

width: 664px;

text-align: center;

}

</style>

 

<script type="text/javascript" src="./chart/FusionCharts.HC.js"></script>

<script type="text/javascript" src="./chart/FusionCharts.HC.Charts.js"></script>

</head>

<body>

<div id="chartContainer">

<span id="myChartId" style="line-height: 100%; display: inline-block; zoom: 1; width: 600px; height: 400px; ">

<div class="highcharts-container" id="highcharts-0" style="position: relative; overflow-x: hidden; overflow-y: hidden; width: 600px; height: 400px; text-align: left; font-family: 'Lucida Grande', 'Lucida Sans Unicode', Verdana, Arial, Helvetica, sans-serif; font-size: 12px; cursor: default; background-color: rgb(255, 255, 255); ">

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="570" height="350">

<defs>

<clippath id="highcharts-1">

<rect rx="0" ry="0" fill="none" x="0" y="0" width="570" height="360" stroke-width="0.000001"></rect>

</clippath>

<lineargradient id="highcharts-2" gradientUnits="objectBoundingBox" x1="0%" y1="14%" x2="100%" y2="86%">

<stop offset="0%" stop-color="#bbc0b5" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#ecf0e8" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-3" gradientUnits="objectBoundingBox" x1="0%" y1="52%" x2="100%" y2="48%">

<stop offset="0%" stop-color="#929e82" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#e2e7db" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-4" gradientUnits="objectBoundingBox" x1="75%" y1="100%" x2="25%" y2="0%">

<stop offset="0%" stop-color="#3c4135" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#818c72" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-5" gradientUnits="objectBoundingBox" x1="50%" y1="100%" x2="50%" y2="0%">

<stop offset="0%" stop-color="#6f7963" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#d1dac7" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-6" gradientUnits="objectBoundingBox" x1="0%" y1="58%" x2="100%" y2="42%">

<stop offset="0%" stop-color="#94b7d2" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#e3f2fd" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-7" gradientUnits="objectBoundingBox" x1="54%" y1="100%" x2="46%" y2="0%">

<stop offset="0%" stop-color="#3d4b56" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#83a2ba" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-8" gradientUnits="objectBoundingBox" x1="50%" y1="100%" x2="50%" y2="0%">

<stop offset="0%" stop-color="#718ca1" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#d3eafb" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-9" gradientUnits="objectBoundingBox" x1="0%" y1="58%" x2="100%" y2="42%">

<stop offset="0%" stop-color="#d1a00c" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#fce8ab" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-10" gradientUnits="objectBoundingBox" x1="53%" y1="100%" x2="47%" y2="0%">

<stop offset="0%" stop-color="#564205" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#b88d0b" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-11" gradientUnits="objectBoundingBox" x1="50%" y1="100%" x2="50%" y2="0%">

<stop offset="0%" stop-color="#9f7a09" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#fadb7b" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-12" gradientUnits="objectBoundingBox" x1="0%" y1="58%" x2="100%" y2="42%">

<stop offset="0%" stop-color="#769e00" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#d7e7a6" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-13" gradientUnits="objectBoundingBox" x1="53%" y1="100%" x2="47%" y2="0%">

<stop offset="0%" stop-color="#304100" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#688b00" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-14" gradientUnits="objectBoundingBox" x1="50%" y1="100%" x2="50%" y2="0%">

<stop offset="0%" stop-color="#5a7800" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#bfd973" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-15" gradientUnits="objectBoundingBox" x1="0%" y1="58%" x2="100%" y2="42%">

<stop offset="0%" stop-color="#d8783b" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#ffd8be" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-16" gradientUnits="objectBoundingBox" x1="54%" y1="100%" x2="46%" y2="0%">

<stop offset="0%" stop-color="#593118" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#bf6a34" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-17" gradientUnits="objectBoundingBox" x1="50%" y1="100%" x2="50%" y2="0%">

<stop offset="0%" stop-color="#a55c2d" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#ffc199" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-18" gradientUnits="objectBoundingBox" x1="0%" y1="58%" x2="100%" y2="42%">

<stop offset="0%" stop-color="#769e00" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#d7e7a6" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-19" gradientUnits="objectBoundingBox" x1="53%" y1="100%" x2="47%" y2="0%">

<stop offset="0%" stop-color="#304100" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#688b00" stop-opacity="1"></stop>

</lineargradient>

<lineargradient id="highcharts-20" gradientUnits="objectBoundingBox" x1="50%" y1="100%" x2="50%" y2="0%">

<stop offset="0%" stop-color="#5a7800" stop-opacity="1"></stop>

<stop offset="100%" stop-color="#bfd973" stop-opacity="1"></stop>

</lineargradient>

</defs>

<rect rx="0" ry="0" fill="#FFFFFF" x="0" y="0" width="570" height="350" stroke-width="0.000001" stroke-opacity="1" stroke="rgb(102,102,102)" fill-opacity="1"></rect>

<rect rx="0" ry="0" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-2')" x="78" y="43" width="304" height="187" stroke-width="0.000001"></rect>

<path d="M 125 43 L 125 230 198 230 198 43" fill="rgb(0,0,0)" fill-opacity="0"></path>

<path d="M 272 43 L 272 230 345 230 345 43" fill="rgb(0,0,0)" fill-opacity="0"></path>

<path d="M 125.05 43 L 125.05 230" fill="none" stroke-opacity="0" stroke="rgb(0,0,0)" stroke-width="0.1"></path>

<text x="115" y="266" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="middle" visibility="">

<tspan x="115">Week 1</tspan>

</text>

<path d="M 198.05 43 L 198.05 230" fill="none" stroke-opacity="0" stroke="rgb(0,0,0)" stroke-width="0.1"></path>

<text x="188" y="266" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="middle" visibility="">

<tspan x="188">Week 2</tspan>

</text>

<path d="M 272.05 43 L 272.05 230" fill="none" stroke-opacity="0" stroke="rgb(0,0,0)" stroke-width="0.1"></path>

<text x="262" y="266" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="middle" visibility="">

<tspan x="262">Week 3</tspan>

</text>

<path d="M 345.05 43 L 345.05 230" fill="none" stroke-opacity="0" stroke="rgb(0,0,0)" stroke-width="0.1"></path>

<text x="335" y="266" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="middle" visibility="">

<tspan x="335">Week 4</tspan>

</text>

<path d="M 78 230 L 382 230 382 193 78 193" fill="rgb(0,0,0)" fill-opacity="0"></path>

<path d="M 78 155 L 382 155 382 118 78 118" fill="rgb(0,0,0)" fill-opacity="0"></path>

<path d="M 78 80 L 382 80 382 43 78 43" fill="rgb(0,0,0)" fill-opacity="0"></path>

<g class="highcharts-canvasBase3D" lighting3D="true">

<path d="M 78 230 L 382 230 382 240" fill="none"></path>

<rect rx="0" ry="0" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-5')" x="68" y="240" width="304" height="10" stroke-width="0.000001"></rect>

<path d="M 68 240 L 372 240 382 230 78 230 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-3')" stroke-width="0.000001"></path>

<path d="M 372 240 L 382 230 382 240 372 250 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-4')" stroke-width="0.000001"></path>

</g>

<path d="M 382 43 L 385 46.6 385 227 382 230 Z" fill="rgb(176,181,170)" fill-opacity="1">

</path>

<text x="232" y="28" style="font-family:Verdana;font-size:13px;color:#49563A;font-weight:bold;line-height:18.2px;fill:#49563A;" text-anchor="middle" class="highcharts-title" zIndex="1">

<tspan x="232">Weekly Sales Summary</tspan>

</text>

<g class="highcharts-grid" zIndex="1"></g>

<g class="highcharts-grid" zIndex="1"></g>

<g class="highcharts-grid" zIndex="1"></g>

<path d="M 78 230.05 L 382 230.05" fill="none" stroke-opacity="0" stroke="rgb(0,0,0)" stroke-width="0.1" zIndex="1"></path>

<text x="74" y="234" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="end" zIndex="1" visibility="">

<tspan x="74">$0</tspan>

</text>

<path d="M 78 193.5 L 382 193.5" fill="none" stroke-opacity="1" stroke="rgb(172,187,153)" stroke-width="1" zIndex="2"></path>

<text x="74" y="197" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="end" zIndex="2" visibility="">

<tspan x="74">$5K</tspan>

</text>

<path d="M 78 155.5 L 382 155.5" fill="none" stroke-opacity="1" stroke="rgb(172,187,153)" stroke-width="1" zIndex="2"></path>

<text x="74" y="159" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="end" zIndex="2" visibility="">

<tspan x="74">$10K</tspan>

</text>

<path d="M 78 118.5 L 382 118.5" fill="none" stroke-opacity="1" stroke="rgb(172,187,153)" stroke-width="1" zIndex="2"></path>

<text x="74" y="122" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="end" zIndex="2" visibility="">

<tspan x="74">$15K</tspan>

</text>

<path d="M 78 80.5 L 382 80.5" fill="none" stroke-opacity="1" stroke="rgb(172,187,153)" stroke-width="1" zIndex="2"></path>

<text x="74" y="84" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="end" zIndex="2" visibility="">

<tspan x="74">$20K</tspan>

</text>

<path d="M 78 43.05 L 382 43.05" fill="none" stroke-opacity="0" stroke="rgb(0,0,0)" stroke-width="0.1" zIndex="2"></path>

<text x="74" y="47" style="font-family:Verdana;font-size:10px;line-height:14px;color:#49563A;fill:#49563A;" text-anchor="end" zIndex="2" visibility="">

<tspan x="74">$25K</tspan>

</text>

<g class="highcharts-series-group" zIndex="3">

<g class="highcharts-series-3d" transform="translate(68,53)">

<g class="highcharts-point" zIndex="3">

<path d="M 32 70 L 82 70 82 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.06" stroke-width="5" transform="translate(1,1)"></path>

<path d="M 32 70 L 82 70 82 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.12" stroke-width="3" transform="translate(1,1)"></path>

<path d="M 32 70 L 82 70 82 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.18" stroke-width="1" transform="translate(1,1)"></path>

<path d="M 32 70 L 82 70 82 177" fill="none"></path>

<rect rx="0" ry="0" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-8')" x="22" y="80" width="50" height="107" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></rect>

<path d="M 22 80 L 72 80 82 70 32 70 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-6')" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></path>

<path d="M 72 80 L 82 70 82 177 72 187 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-7')" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></path>

</g>

<g class="highcharts-point" zIndex="3">

<path d="M 105 31 L 155 31 155 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.06" stroke-width="5" transform="translate(1,1)"></path>

<path d="M 105 31 L 155 31 155 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.12" stroke-width="3" transform="translate(1,1)"></path>

<path d="M 105 31 L 155 31 155 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.18" stroke-width="1" transform="translate(1,1)"></path>

<path d="M 105 31 L 155 31 155 177" fill="none"></path>

<rect rx="0" ry="0" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-11')" x="95" y="41" width="50" height="146" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></rect>

<path d="M 95 41 L 145 41 155 31 105 31 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-9')" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></path>

<path d="M 145 41 L 155 31 155 177 145 187 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-10')" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></path>

</g>

<g class="highcharts-point" zIndex="3" r="0">

<path d="M 179 -2 L 229 -2 229 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.06" stroke-width="5" transform="translate(1,1)"></path>

<path d="M 179 -2 L 229 -2 229 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.12" stroke-width="3" transform="translate(1,1)"></path>

<path d="M 179 -2 L 229 -2 229 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.18" stroke-width="1" transform="translate(1,1)"></path>

<path d="M 179 -2 L 229 -2 229 177" fill="none"></path>

<rect rx="0" ry="0" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-20')" x="169" y="8" width="50" height="179" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></rect>

<path d="M 169 8 L 219 8 229 -2 179 -2 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-18')" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></path>

<path d="M 219 8 L 229 -2 229 177 219 187 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-19')" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></path>

</g>

<g class="highcharts-point" zIndex="3">

<path d="M 252 60 L 302 60 302 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.06" stroke-width="5" transform="translate(1,1)"></path>

<path d="M 252 60 L 302 60 302 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.12" stroke-width="3" transform="translate(1,1)"></path>

<path d="M 252 60 L 302 60 302 177" fill="none" isShadow="true" stroke="rgb(0,0,0)" stroke-opacity="0.18" stroke-width="1" transform="translate(1,1)"></path>

<path d="M 252 60 L 302 60 302 177" fill="none"></path>

<rect rx="0" ry="0" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-17')" x="242" y="70" width="50" height="117" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></rect>

<path d="M 242 70 L 292 70 302 60 252 60 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-15')" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></path>

<path d="M 292 70 L 302 60 302 177 292 187 Z" fill="url('http://docs.fusioncharts.com/charts/Code/MyFirstChart/weekly-sales-datastring-force-js.html#highcharts-16')" stroke-width="0.000001" stroke-opacity="1" stroke="#333333"></path>

</g>

</g>

</g>

<g class="highcharts-data-labels" visibility="" zIndex="6" transform="translate(78,43)">

<text x="47" y="73" style="font-family:Verdana;font-size:10px;color:#49563A;line-height:14px;fill:#49563A;" text-anchor="middle" zIndex="1">

<tspan x="47">$14.4K</tspan>

</text>

<text x="120" y="34" style="font-family:Verdana;font-size:10px;color:#49563A;line-height:14px;fill:#49563A;" text-anchor="middle" zIndex="1">

<tspan x="120">$19.6K</tspan>

</text>

<text x="184" y="33" style="font-family:Verdana;font-size:10px;color:#49563A;line-height:14px;fill:#49563A;" text-anchor="middle" zIndex="1">

<tspan x="184">$24K</tspan>

</text>

<text x="267" y="64" style="font-family:Verdana;font-size:10px;color:#49563A;line-height:14px;fill:#49563A;" text-anchor="middle" zIndex="1">

<tspan x="267">$15.7K</tspan>

</text>

</g>

<g class="highcharts-axis" zIndex="7"></g>

<text x="230" y="281" style="font-family:Verdana;font-size:10px;color:#49563A;font-weight:bold;line-height:14px;fill:#49563A;" zIndex="7" text-anchor="middle">

<tspan x="230">Week</tspan>

</text>

<g class="highcharts-axis" zIndex="7"></g>

<text x="29.299999999999997" y="136.5" style="font-family:Verdana;font-size:10px;color:#49563A;font-weight:bold;line-height:14px;fill:#49563A;" zIndex="7" transform="rotate(270 29.299999999999997 136)" text-anchor="middle">

<tspan x="29.299999999999997">Sales</tspan>

</text>

<g class="highcharts-axis" zIndex="7"></g>

<g class="highcharts-tooltip" zIndex="8" visibility="hidden" transform="translate(154.20357418164323,34.9957275390625)">

<rect rx="1" ry="1" fill="rgb(255,255,255)" x="5.5" y="5.5" width="87" height="20" stroke-width="1" fill-opacity="1" stroke-opacity="1" stroke="rgb(84,84,84)"></rect>

<text x="9" y="19" style="font-family:Verdana;font-size:10px;color:#49563A;padding:0;white-space:nowrap;line-height:14px;fill:#49563A;" zIndex="1">

<tspan x="9">Week 3, $24K</tspan>

</text>

</g>

<g class="highcharts-tracker" zIndex="9" transform="translate(78,43)">

<path d="M 12 89 L 12 197 62 197 72 187 72 79 22 79 Z" fill="rgb(192,192,192)" isTracker="1334207941402" fill-opacity="0.000001" visibility="" zIndex="-1" style=""></path>

<path d="M 85 50 L 85 197 135 197 145 187 145 40 95 40 Z" fill="rgb(192,192,192)" isTracker="1334207941403" fill-opacity="0.000001" visibility="" zIndex="-1" style=""></path>

<path d="M 159 17 L 159 197 209 197 219 187 219 7 169 7 Z" fill="rgb(192,192,192)" isTracker="1334207941404" fill-opacity="0.000001" visibility="" zIndex="-1" style=""></path>

<path d="M 232 79 L 232 197 282 197 292 187 292 69 242 69 Z" fill="rgb(192,192,192)" isTracker="1334207941405" fill-opacity="0.000001" visibility="" zIndex="-1" style=""></path>

</g>

</svg>

</div>

</span>

</div>

<script type="text/javascript"><!--

 

var dataString ='<chart caption="成功接听数" baseFontSize ="20" YAxisMaxValue="600" animation ="1" bgColor="000000" bgAlpha="0" showLabels="1" showvalues="1" decimals="0" numberPrefix="" numVDivLines="10" divLineAlpha="30" drawAnchors="1" labelPadding ="10" yAxisValuesPadding ="10" useRoundEdges="1" legendBorderAlpha="0">\n\

<categories><category label="成功接听数" /></categories>\n\

<dataset seriesName="北京" color="AFD8F8" showValues="1">\n\

<set value="0" />\n\

</dataset>\n\

<dataset seriesName="西安" color="F6BD0F" showValues="1">\n\

<set value="0" />\n\

</dataset>\n\

</chart>';

 

FusionCharts.setCurrentRenderer('JavaScript');

var myChart = new FusionCharts("Charts/MSColumn2D.swf", "myChartId", "330", "490", "0", "1");

myChart.setXMLData(dataString);

myChart.render("chartContainer");

 

 

// -->

</script>

 

 

</body>

</html>

Share this post


Link to post
Share on other sites

sorry, update it:

13. Memory Usage (in KB or MB) for the browser that you are currently using.

[IE's memory 80,000KB in begin, Each render time, the IE's memory increases 50KB ]

[myChart.setXMLData(dataString);// there is memory leak!!!]

Share this post


Link to post
Share on other sites

Hi,

 

Thanks for the inputs. Apologies for the delayed response.

 

Memory leak issue has been addressed to a certain extent in our latest release.

 

We are constantly working on this area and will try to improve in the upcoming service releases of FusionCharts.

 

We would update you on the same.

Share this post


Link to post
Share on other sites

Hi,

 

Thanks for the inputs. Apologies for the delayed response.

 

Memory leak issue has been addressed to a certain extent in our latest release.

 

We are constantly working on this area and will try to improve in the upcoming service releases of FusionCharts.

 

We would update you on the same.

 

Could you please tell us the status of updates? Was this issue eliminated? If it still has some percent of leaks in any browser, then we need to refresh the page fully and can't leave it working for days. I have the same situation where I re-render charts but call dispose method, besides that I use HTML5 version only. On flash it worked ok though I moved to javascript and now need to be sure that my application won't crash. I am using @version fusioncharts/3.2.4-sr1.9888

 

Code that is used for dispose:

 

var fusionChart = FusionCharts.items[chartId];

fusionChart.dispose();

delete fusionChart;

fusionChart = null;

 

Browser tested: IE9 and Firefox. Though Firefox tries to keep the memory the same, I am not sure it will be 100% working on production where I don't re-render the same charts but use to show different charts in same view (but the main set of charts don't change, it just switches by circle)

Edited by DenisDev

Share this post


Link to post
Share on other sites

Hi Denis,

 

Can you please try rendering a JavaScript chart using the latest Trial version(FusionCharts v3.3.0) and share your valuable feedback with respect to memory leaks?

 

Please Note: To address the memory leak issue, please try removing a chart instance from page and memory. You need to use dispose() function of the chart's JavaScript Object. The function will take care of the rest. Additionally, the function will raise beforedispose event prior to removing a chart and disposed after the chart has been removed. The code is fairly simple and does not require to listen to the events in simple implementation.

 

Ref. Code:

FusionCharts("myChartId").dispose();

Share this post


Link to post
Share on other sites

Hi Swarnam,

 

I already did that. Also used trial version of FusionCharts. The problem is still there. The problem is in library, I am facing this issue from the earliest versions. But opposite to Flash version, Javascript doesn't have a solution. I used Flash versions and dispose worked ok, the memory became free and I could run re-rendering of charts for days, weeks and months without page reload. Now I have to move to HTML and the memory becomes fully used at the end of first day. Have you run charts re-rendering in long term (without page reload)? For example, use setTimeout or setInterval.

Edited by DenisDev

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now