http://www.perlmonks.org?node_id=576892


in reply to Real time data graphs.

enhering, have you tested using Tk::Canvas? How much memory did it take up to graph the number of points that you expect to plot? It doesn't make logical sense that you will necessarily fill all available memory because each acquired data point takes some amount of memory, because at some point you are going to hit "the end" of your graphing period.

The length of your graphing period limits the amount of memory that you will need. (Points that are no longer graphed should no longer take up memory for Tk::Canvas.) That might mean that the memory requirements are very large, if your graphing period is long, but it will be finite. Whether your very long graphing period (assumption) fills all of memory is a question of how much memory is required to graph all of the data points that you have at that length.

That's why I asked what you had measured in terms of memory requirements for any testing that you had already done.

Replies are listed 'Best First'.
Re^2: Real time data graphs.
by enhering (Sexton) on Oct 07, 2006 at 19:18 UTC
    RobPayne, I may need to monitor the temperature of a system for days, at 864000 points per day. The only possibility I can see of using Tk::Canvas in this situation is by working with as many points as there are horizontal pixels in the canvas and reposition them when the graph fills up.
      You might want to look at rrdtool (RRD::Simple) and it's ability to summarize historical data. The issue may be how Tk::Canvas uses memory per point, but the limitation should be screen size before it is memory. If you plot ten points per second, at a screen resolution of 1600x1200, you can only print two days worth of data if you plot every point on the screen before you run out of space.

      You might want to take a look at the way mrtg graphs historical data, it limits database and graph size by graphing less granular data the older the further the data is in the past.