- 主题:各位大佬有没有调试std::vector、std::complex之类的好办法
标准库的vector、complex之类的,在debug模式下性能实在太差,
一个程序用release轻松跑,但debug就完蛋,尤其是要处理网络传来的数据,性能跟不上数据就来不及处理,没法调试。
我把vector有关的,全都取出其data的指针,然后计算,算是解决了。
但complex难道只能手写复数的乘除法?
--
FROM 123.113.109.*
需要调试啊。
release调试太痛苦。
【 在 ziqin 的大作中提到: 】
: 你为何要用debug跑?
--
FROM 123.113.109.*
经测试,速度没变化
【 在 ziqin 的大作中提到: 】
: 那你加一个配置啊,开NDEBUG 宏,但是不优化
--
FROM 123.113.109.*
很多变量值看不到
【 在 DoorWay 的大作中提到: 】
: 痛苦指的是?
--
FROM 123.113.109.*
一直都用的这个,想更高效一点
【 在 z16166 的大作中提到: 】
: release + printf大法
: Windows的话,有个ETW
--
FROM 111.193.237.*
主要是被优化掉的变量
复杂数据类型反而好说,一般优化不掉
【 在 DoorWay 的大作中提到: 】
: VS哪个版本?
: 是不是用了C++/CLI?
: 显示不了值的变量是什么类型?托管对象、复杂数据类型比如自定义map,处理方法不同。
: ...................
--
FROM 123.113.109.*
禁止优化vector、complex之类的运行速度就慢了,和debug没有本质区别。
我觉得编译器应该有个选项,单独针对标准库优化,调试时能在断点查看标准库中各种数据比如vector、complex类型的值就行,其内部代码反正一般也不会去调试,可以使劲优化。
【 在 DoorWay 的大作中提到: 】
: 属性/C++/优化,禁止优化
--
修改:capriccio FROM 123.113.109.*
FROM 123.113.109.*
我试过了release不加优化比debug只快一倍,加优化比debug快30倍。
只快一倍的话还是不够
【 在 DoorWay 的大作中提到: 】
: 禁止优化vector运行也会比debug快很多,debug慢不在优化那仨瓜俩枣,主要是内存分配前后要加检验。
: 打开vector.h,找找有个宏,_DEBUG_LEVEL。我没用过。我一般开release,不优化,就够调试了。
--
FROM 124.126.155.*
都断点了,当然不用管中断之后的事情了,看清楚当时的状态找到问题就行。
问题是中断之前得跟上网络数据的速度啊
【 在 DoorWay 的大作中提到: 】
: 你都打断点了,看一眼也得一秒吧,还有跟不上网络处理速度的问题吗
: 说的内容,前后照不上。
: 到底痛点是变量查看不行,还是处理速度不够。
: ...................
--
FROM 124.126.155.*