I wrote up a working example of Steven's Guage chart memory leak: http://jsfiddle.net/dlaliberte/xdus3/ On Linux in Chrome, I see the memory increase incrementally, and then drop way down periodically. So I am not necessarily seeing a leak yet.
Memory leaks are typically very browser specific, and can be operating specific, so you should specify the details of your environment. Thanks. dan On Friday, December 7, 2012 11:48:31 PM UTC-5, Daniel LaLiberte wrote: > > Thank you, Steven, Matt, and Steffen for reporting these memory leak > issues. After I have time to try to reproduce the problems, I'll post some > bug reports and I expect we will try to address them with moderately high > priority. However, memory leaks can often be very tricky to figure out and > fix, so we might end up suggesting workarounds. > > dan > > On Wed, Dec 5, 2012 at 1:42 AM, Steven Carter <[email protected]>wrote: > >> I have been seeing the same behavior with the Gauge chart type. I am >> using it for a dashboard and it is updated frequently from the server via a >> Socket.IO broadcast to all currently connected employees. I don't believe >> this was happening before the most recent release so it may be a regression. >> >> Here is my usage code (I scrubbed it to be more generic, so it may not >> be perfectly syntactically correct but I was careful nonetheless): >> >> google.load('visualization', '1', {packages:['gauge']}); >> >> function Gauge() { >> this.gauge = new >> google.visualization.Gauge(document.getElementById('m')); >> this.gaugeOptions = { >> min: 0, >> max: 200000, >> greenFrom: 0, >> greenTo: 100000, >> yellowFrom: 100000, >> yellowTo: 180000, >> redFrom: 180000, >> redTo: 200000, >> animation: { >> duration: 1000, >> easing: 'out' >> }, >> majorTicks: ["0","","100,000","","200,000"], >> minorTicks: 5 >> }; >> this.data = google.visualization.arrayToDataTable([ >> ['c1', 'c2', 'c3'], >> [0, 0, 0], >> ]); >> this.gauge.draw(this.mqData, this.gaugeOptions); >> } >> >> Gauge.prototype.draw = function() { >> this.gauge.draw(this.mqData, this.gaugeOptions); >> } >> >> >> // in main code >> gauge = new Gauge(); >> socket.on('some_event', function(data){ // This is emitted about >> once a second. After about an hour the Chrome tab crashes >> gauge.data.setCell(0, 0, parseInt(data.c1, 10)); >> gauge.data.setCell(0, 1, parseInt(data.c2, 10)); >> gauge.data.setCell(0, 2, parseInt(data.c3, 10)); >> gauge.draw(); >> }); >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google Visualization API" group. >> To view this discussion on the web visit >> https://groups.google.com/d/msg/google-visualization-api/-/N4zOQ0Z2TLgJ. >> >> To post to this group, send email to >> [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/google-visualization-api?hl=en. >> > > > > -- > Daniel LaLiberte <https://plus.google.com/100631381223468223275?prsrc=2> > - 978-394-1058 > [email protected] <[email protected]> 562D 5CC, Cambridge MA > [email protected] <[email protected]> 9 Juniper Ridge > Road, Acton MA > > -- You received this message because you are subscribed to the Google Groups "Google Visualization API" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-visualization-api/-/-uILZhC-Tl4J. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-visualization-api?hl=en.
