- 主题:求助一个c++高性能开发问题
哦,才看到要输出到文件或数据库,昨晚只看了一半。
用c是不是能快点?
【 在 dormouseBHU 的大作中提到: 】
: 他这个瓶颈肯定不在除法。大概率是浮点数转字符串还有 std::ostringstream 的流操作。
:
--
FROM 112.39.178.*
+1
【 在 dormouseBHU 的大作中提到: 】
: 他这个瓶颈肯定不在除法。大概率是浮点数转字符串还有 std::ostringstream 的流操作。
--
FROM 114.247.175.*
最好是自己设计一个浮点数序列化机制,比如直接BASE6four
简单的转换成10进制浮点文本格式,不光慢,还可能损失精度。
最好能不转文本,直接传binary
【 在 xmbba 的大作中提到: 】
: 请高手们帮忙看一下,
: 一个函数,输入xn包含有76657个double数据,经过浮点数除法运算以后输出yn,输出yn是需要有约44960个double数据,yn的结果要push到pStream里面,为了输出到文件或者数据库,需要在0.5s内完成,最好是越快越好。基本的运算方案不能做修改,只能想办法提升效率。目前发现
: 会有卡顿。不知道有没有什么比较极致的提高效率的方法。
: ...................
--
修改:kirbyzhou FROM 114.247.175.*
FROM 114.247.175.*
1、既然都用Qt了,就能不Qt Core类和std C++混用就不混用。
2、函数的参数是xn和yn,计算代码却是xn_data和yn_data,说明思维不够专注。
3、n-m*ratio在计算里用了2次,可以提出来仅计算一次。
4、列表取值用xn.at(i)代替xn[i]。
5、用QTextStream或者QDataStream来做输出或者先把计算结果字符串化到QStringList
,再一把写到文件。
【 在 xmbba 的大作中提到: 】
: 请高手们帮忙看一下,
: 一个函数,输入xn包含有76657个double数据,经过浮点数除法运算以后输出yn,输出yn是需要有约44960个double数据,yn的结果要push到pStream里面,为了输出到文件或者数据库,需要在0.5s内完成,最好是越快越好。基本的运算方案不能做修改,只能想办法提升效率。目前发现
: 会有卡顿。不知道有没有什么比较极致的提高效率的方法。
: ...................
--
FROM 112.48.103.*
可以让AI给你一个OpenCL或者CUDA的GPU计算程序做这件事。
--
FROM 171.213.153.*