Qt中内存分配的最大大小

时间:2018-01-27 16:54:48

标签: qt memory ram qcustomplot

我用Qcustomplot在Qt中绘制实时usb接收数据。为了更好的速度,我想在数据接收开始之前分配内存。这是我的代码的一部分:

ui->plot_platform->graph(0)->data().data()->clear();
QVector<QCPGraphData> add_data(x);
ui->plot_platform->graph(0)->addData(add_data);

我在数据接收开始时这样做。我怎么能确定x的大小?这意味着我如何找到我可以从Windows获得的最大内存大小?你的解决方案是否安全,不会崩溃?

1 个答案:

答案 0 :(得分:1)

即使USB的吞吐量也有限,因此您可以估算最大数量 要点(每个时间单位):= x要在QVector<QCPGraphData> add_data(x)中保留。

另一方面,当您在堆栈上为QVector<QCPGraphData>分配内存时,如果您保留了太多的向量单元,则可能会出现堆栈溢出。

顺便说一下:你对速度的需求可能会让你在分配错误的地方进行优化 使用ui->plot_platform->graph(0)->addData(add_data);更新绘图时,一些额外的内存不是那么耗时。值得与QWT(s。https://stackoverflow.com/a/24689918/4599792)比较?