There are various places in the codebase where numbers/calculations are in floating point when dealing with discrete data (for example, Communication Over Time, in which the data arrays are kept as rates (msgs/second, for example), but have to be converted back to number of messages, an integral value, at some points). This can cause slight errors due to rounding and increases memory usage and computational load.
One cleanish way to fix this is to allow the graphing classes to accept integral data with some sort of option to also pass in a time interval (in the case of time series data), which can then be toggled on or off to display the rate of the data (msgs/sec) or the raw data (# msgs in interval). This would allow the underlying data arrays to be some kind of integral array type while still providing rate-based graphs.
There are various places in the codebase where numbers/calculations are in floating point when dealing with discrete data (for example, Communication Over Time, in which the data arrays are kept as rates (msgs/second, for example), but have to be converted back to number of messages, an integral value, at some points). This can cause slight errors due to rounding and increases memory usage and computational load.
One cleanish way to fix this is to allow the graphing classes to accept integral data with some sort of option to also pass in a time interval (in the case of time series data), which can then be toggled on or off to display the rate of the data (msgs/sec) or the raw data (# msgs in interval). This would allow the underlying data arrays to be some kind of integral array type while still providing rate-based graphs.