0

我正在尝试绘制一个图表来描述进程的内存消耗与时间的关系。在获得 SO 的帮助后,我能够使用 Qt 消耗内存并绘制图形。为了展示内存中的微小变化,我以字节为单位缩放 Y 轴。

我的问题是,通常消耗的内存是一个非常大的值,要在我的图表中展示,它会超出可见区域。

在这里研究如何使用对数刻度来避免这个问题。但这会导致另一个问题:

一段时间后,通常进程会随着内存初始化而稳定下来,与该进程消耗的总内存相比,内存消耗的任何进一步变化都是非常小的值。因此,这些变化在我的图表上并不真正可见,因为我正在使用日志进行缩放。但我的主要目的是以图形格式展示总内存消耗的变化。

我的方法是错误的还是有更好的方法来实现这一点?

在 Qt/C++/qml 中实现,但最欢迎通用的想法。

例如。

时间:0 秒 | 消耗 : 0 字节

时间:1 秒 | 消耗:1212120 字节

时间:2 秒 | 消耗:1212520 字节

时间:3 秒 | 消耗:1212720 字节

.. 消费在这个时候稳定下来——现在只有很小的变化——

时间:20 秒 | 消耗:1212890 字节

时间:21 秒 | 消耗:1212893 字节

时间:22 秒 | 消耗:1212895 字节

4

2 回答 2

3
  • 可以考虑分数幂(例如平方根)而不是对数。

  • 忽略第一个值。如果时间 0 的值始终为 0,则可以考虑忽略它。它显着抵消了您的数据集。那么图上的 y-min 可以是 1212120 会更好看:

    图形

  • 显示更改(时间 x 处的值 - 时间 x-1 处的值)而不是实际值(时间 x 处的值)也可能是一个好主意。

于 2013-02-20T06:35:43.757 回答
2

这是处理它的一种方法:

  1. 图表变化,而不是绝对值。
  2. 使用插图或小图表,例如在地图中,显示图表角落的巨大变化。在图表的主要部分,显示小的变化。
  3. 在主图表的另一个角落显示当前光标位置(单个数字)的内存使用值。
于 2013-02-20T05:29:47.490 回答