【发布时间】:2018-04-02 05:17:16
【问题描述】:
我想知道黑白之间的性能差异
sample *s = new sample();
和
sample s;
其中 sample 是一个类。
【问题讨论】:
-
答案是它取决于编译器、平台、编译器设置、类的大小、你的堆,以及在差异百分比方面,类的构造函数.通常不值得担心。如果是,您必须对其进行测试。
-
如果这两行中的任何一行是您程序中的性能瓶颈,那么您就有问题了。您的示例也不包含静态,如 C++ 关键字中的任何内容。
-
@RetiredNinja 我刚开始学习 c++,如果这个问题没有意义,很抱歉,????。顺便说一句,我说的是静态内存分配,其中内存是在编译时和堆栈内存位置分配的,而在动态内存分配中,内存是在运行时和堆内存位置分配的,所以有任何性能两者的区别?
-
堆栈分配(非静态)几乎总是更快。有时很重要,但您在桌面上谈论的是纳秒(通常)。
-
编写可读的程序,如果动态分配使你的程序更简单、更易读——使用它。然后,如果它太慢运行分析器并优化花费最多时间的部分。
标签: c++