我正在尝试绘制一个图表来描述进程的内存消耗与时间的关系。在 SO 的帮助下,我能够使用 Qt 获取消耗的内存并绘制图形。为了展示内存中的微小变化,我以字节为单位缩放 Y 轴。
我的问题是,通常消耗的内存是要在我的图表中展示的一个非常大的值,并且它会超出可见区域。
我学习here我如何使用对数刻度来避免这个问题。但这会导致另一个问题:
一段时间后,通常进程会随着内存初始化稳定下来,与此进程消耗的总内存相比,内存消耗的任何进一步变化都是非常小的值。因此,由于我用于缩放的日志,这些更改在我的图表上并不真正可见。但我的主要目的是以图形格式展示总内存消耗的这种变化。
我的方法是错误的还是有更好的方法来实现这一目标?
在 Qt/C++/qml 中实现,但最欢迎通用的想法。
例如。
时间:0 秒 | 消耗:0 字节
时间:1 秒 | 消耗:1212120 字节
时间:2 秒 | 消耗:1212520 字节
时间:3 秒 | 消耗:1212720 字节
.. 消费在这个时候稳定下来 -- 现在只有小的变化 --
时间:20 秒 | 消耗:1212890 字节
时间:21 秒 | 消耗:1212893 字节
时间:22 秒 | 消耗:1212895 字节
最佳答案
分数幂(如平方根)可能是一个考虑因素,而不是对数。
忽略第一个值。如果时间 0 的值始终为 0,则可以考虑忽略它。它显着抵消了您的数据集。那么图表上的 y-min 可以是 1212120,看起来会更好:
显示变化(时间 x 的值 - 时间 x-1 的值)而不是实际值(时间 x 的值)可能也是一个好主意。
关于algorithm - 绘制具有较大值但值变化较小的图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14959408/