- 主题:各位大佬有没有调试std::vector、std::complex之类的好办法
痛苦指的是?
【 在 capriccio 的大作中提到: 】
: 需要调试啊。
: release调试太痛苦。
:
--
FROM 61.185.186.*
VS哪个版本?
是不是用了C++/CLI?
显示不了值的变量是什么类型?托管对象、复杂数据类型比如自定义map,处理方法不同。
【 在 capriccio 的大作中提到: 】
: 我打开vc工程瞅了一样,发现每个设置都和这里面说的一样。
: 调试起来一样痛苦啊
:
--
FROM 117.39.199.*
属性/C++/优化,禁止优化
【 在 capriccio 的大作中提到: 】
: 主要是被优化掉的变量
: 复杂数据类型反而好说,一般优化不掉
:
--
FROM 117.39.199.*
禁止优化vector运行也会比debug快很多,debug慢不在优化那仨瓜俩枣,主要是内存分配前后要加检验。
打开vector.h,找找有个宏,_DEBUG_LEVEL。我没用过。我一般开release,不优化,就够调试了。
【 在 capriccio 的大作中提到: 】
: 禁止优化vector、complex之类的运行速度就慢了,和debug没有本质区别。
: 我觉得编译器应该有个选项,单独针对标准库优化,调试时能在断点查看标准库中各种数据比如vector、complex类型的值就行,其内部代码反正一般也不会去调试,可以使劲优化。
:
--
FROM 117.39.199.*
你都打断点了,看一眼也得一秒吧,还有跟不上网络处理速度的问题吗
说的内容,前后照不上。
到底痛点是变量查看不行,还是处理速度不够。
【 在 capriccio 的大作中提到: 】
: 我试过了release不加优化比debug只快一倍,加优化比debug快30倍。
: 只快一倍的话还是不够
:
--
FROM 117.39.199.*
速度有提升吗,参照上一个链接里的设置?
又看到一篇关于,抱怨debug模式下速度慢的,std::move vector<T>::iterator::operator*,都会导致debug变慢,原因是没有inline
https://vittorioromeo.com/index/blog/debug_performance_cpp.html
【 在 capriccio 的大作中提到: 】
: 标准库的vector、complex之类的,在debug模式下性能实在太差,
: 一个程序用release轻松跑,但debug就完蛋,尤其是要处理网络传来的数据,性能跟不上数据就来不及处理,没法调试。
: 我把vector有关的,全都取出其data的指针,然后计算,算是解决了。
: ...................
--
FROM 61.185.194.*