把stream的底层string reserve足够的长度试试
【 在 xmbba 的大作中提到: 】
: 标 题: 求助一个c++高性能开发问题
: 发信站: 水木社区 (Thu Jul 3 16:30:00 2025), 站内
:
: 请高手们帮忙看一下,
: 一个函数,输入xn包含有76657个double数据,经过浮点数除法运算以后输出yn,输出yn是需要有约44960个double数据,yn的结果要push到pStream里面,为了输出到文件或者数据库,需要在0.5s内完成,最好是越快越好。基本的运算方案不能做修改,只能想办法提升效率。目前发现
: 会有卡顿。不知道有没有什么比较极致的提高效率的方法。
: 目前可能卡顿在几个地方:
: 1,pStream的效率不够高
: 2,qvector的效率不够高
: 3,大量的浮点数除法运算的效率不够高。
: 4,循环的次数太多了。
:
:
:
: void function(const QVector<double> &xn, const double &ts, QVector<double> &yn, const int &dsp_period, double frequency, std::ostringstream *pStream)
: 运算为:
: yn_data[m] = (1 + n -m*ratio)*xn_data[n] + (- n + m * ratio)*xn_data[n+1] ;
: *pStream << yn_data[0] << "\r\n";
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 110.87.25.*]
--
FROM 117.129.55.*