每次创建一个新对象或保留一个

时间:2012-09-02 01:04:12

标签: java c++ design-patterns coding-style temporary

我们使用原始类型而不考虑构造函数和析构函数。也许正因为如此,它们中的大多数都存储在堆栈中。对于基本类型,我们也使用struct之类的float3。我们也可以为课程做同样的事情。在函数的开头,创建一个新实例,使用它并在函数末尾释放内存。

如果我们在类级别声明了一个实例变量,那么该变量将一直存在,直到释放包含它的类为止,而不是使用局部变量。这增加了稳定的内存使用量。此外,应该有一些转发到此实例的更新方法。例如,更改容器大小可能会影响内容,因此应将新大小转发给它们。

如何保持对变量的引用以避免多次创建变量?

我知道它与它的构造函数(或析构函数)被调用的次数有关,但我正在寻找一个通用的解决方案。例如,如果类只包含x,y,z这样的基元,并且它们是不可变的,那么你应该总是构造它们等。

决定选择哪种方式的方法,使float3不可变或使其x,y和z可修改。

2 个答案:

答案 0 :(得分:1)

通常,您希望最小化变量的范围以提高性能。另外,在Java中,总是更喜欢基元到它们的包装类等价物。

答案 1 :(得分:1)

如果使用原始类型,则可能没有区别。

如果您使用某些更“复杂”类型的对象,则可能必须在重新使用之前将其重置为已知状态。这可能至少需要与创建新对象一样多的代码。它也使您的代码复杂化,这绝不是一个优势。

除非您发现代码中存在特定的瓶颈,否则您应该尽量保持简单易读。在你绝对不得不这样做之前不要复杂化。