【发布时间】:2011-07-21 10:55:48
【问题描述】:
在 C++ 程序中启用 RTTI 的内存/性能开销是多少?
任何人都可以在 RTTI 机制的内部实现和相关开销之间进行一些说明吗?
我确实了解如何通过typeid 和dynamic_cast 使用RTTI,我想知道的是运行时如何跟踪这些信息以及它是如何产生开销的内部实现细节?
【问题讨论】:
-
如果你需要dynamic_cast的功能,那不是开销。否则你会怎么做“更便宜”?
-
@Bo Persson:问题不是因为我知道或者有/将会有一种“更便宜”的方式,而是问题是要了解内部 RTTI 的实现方式并了解明显的间接费用是多少。我认为当我们使用编程语言的某些方面时,对幕后发生的事情产生好奇是很自然的。
-
我只是反对你称之为开销。如果它是您需要的功能,那么它不是开销。 :-) 如果您不需要它,请不要使用它。
-
@Bo Persson:同意开销点!也许我应该说“成本”而不是“开销”:)