首页 > 解决方案 > C++:类的全局实例与命名空间:RAM 使用情况?

问题描述

我在一个非常受 RAM 和程序限制的空间中工作。我有一小部分相关变量和函数,我想以某种有意义的方式将它们组合在一起。该集合将对程序的其余部分可见。

我的第一个冲动(实际上是实现)是创建一个类来将所有这些信息组合在一起,然后创建该类的一个全局实例。我知道这是一个人应该这样做的方式。但是,还有另一种方法可以使用命名空间来执行此操作,它不需要实例化。

我的问题归结为:命名空间方法是否使用更少的 RAM?我想我的意思是,类的实例化是否会导致额外的 RAM 使用或其他类型的开销?或者它是否以不同的方式使用 RAM,例如实例化可能导致所有变量都存在于堆中而不是某个专用地址中?

标签: c++classnamespacesheap-memoryram

解决方案


添加命名空间并不会真正影响程序运行时的任何部分。这只是编译器查找相关名称的一种方式,因此它不应该消耗任何额外的 RAM。每个类实例化都会使用 RAM 来存储其成员变量,但考虑到这些变量仍然存在于命名空间示例中,它不会有任何不同。

如果您愿意,可以编写这两种方法并对其进行概要分析,但我怀疑这两种方法都会对您的程序产生任何重大影响(例如超过几个字节)。


推荐阅读