【发布时间】:2013-02-20 14:40:53
【问题描述】:
我正在尝试绘制一个图表来描述进程的内存消耗与时间的关系。在获得 SO 的帮助后,我能够使用 Qt 消耗内存并绘制图形。为了展示内存的微小变化,我以字节为单位缩放 Y 轴。
我的问题是,通常消耗的内存是一个非常大的值,要在我的图表中展示,它会超出可见区域。
我研究here 如何使用对数刻度来避免这个问题。但这会导致另一个问题:
一段时间后,通常进程会随着内存初始化而稳定下来,与此进程消耗的总内存相比,内存消耗的任何进一步变化都是非常小的值。因此,这些变化在我的图表上并不真正可见,因为我正在使用日志进行缩放。但我的主要目的是以图形格式展示总内存消耗的变化。
我的方法是错误的还是有更好的方法来实现这一点?
在 Qt/C++/qml 中实现,但欢迎通用想法。
例如。
时间:0 秒 | 消耗:0 字节
时间:1 秒 | 消耗:1212120字节
时间:2 秒 | 消耗:1212520 字节
时间:3 秒 | 消耗:1212720 字节
.. 消费在这个时候稳定下来 -- 现在只有很小的变化 --
时间:20 秒 | 消耗:1212890字节
时间:21 秒 | 消耗:1212893 字节
时间:22 秒 | 消耗:1212895 字节
【问题讨论】:
-
如何绘制内存使用的delta?也就是说,第 2 秒 +500 字节,第 3 秒 +200 字节,...
-
两全其美 - 在一个带有对数缩放的图上显示幅度,在另一个图上显示实际字节数。对于第二个图,将 ymin、ymax 缩放为过去 10 秒内运行平均值的 20%。
-
@Dukeling 谢谢!您能否将其发布为答案,以便我可以就您的解决方案提出一些其他问题,并可能接受它作为答案。
-
@timrau 但是对于第一个增量间隔,当消耗从 0 增加到非常高的值时会出现一个尖峰,然后这种变化会突然下降到很小的值。这个初始峰值很可能会超出我的图表?
标签: algorithm graphics graph plot