C++ 我可以只使用固定数组而不是内存池吗?

C++ 我可以只使用固定数组而不是内存池吗?,c++,memory,memory-management,memory-pool,C++,Memory,Memory Management,Memory Pool,我不能在应用程序开始时为每个对象分配巨大的数组并使用它们,而不是创建一个内存池系统。在极端情况下,某些对象确实需要比其数组更多的实例,数组的大小将增加一倍或四倍,因此它将永远不会再次达到最大大小。我需要的是速度,而不是内存,因此,我认为这是一个公平的权衡?您所描述的内容与内存池之间的唯一区别是,通常,池分配器会在内存不足时分配一个新池,而您的池分配器会在内存不足时重新分配整个阵列。这将大大增加最坏情况下的运行时间,并且您需要一个方案来避免在重新分配时使指针和引用无效,这可能会降低整个程序的性能

我不能在应用程序开始时为每个对象分配巨大的数组并使用它们,而不是创建一个内存池系统。在极端情况下,某些对象确实需要比其数组更多的实例,数组的大小将增加一倍或四倍,因此它将永远不会再次达到最大大小。我需要的是速度,而不是内存,因此,我认为这是一个公平的权衡?

您所描述的内容与内存池之间的唯一区别是,通常,池分配器会在内存不足时分配一个新池,而您的池分配器会在内存不足时重新分配整个阵列。这将大大增加最坏情况下的运行时间,并且您需要一个方案来避免在重新分配时使指针和引用无效,这可能会降低整个程序的性能


池分配器中最糟糕的情况是空间不足,必须分配新阵列。分配器中最糟糕的情况是,它用完了,必须分配一个新的更大的数组,并将所有旧对象复制到新数组中。显然,后者将花费更多的时间。

您所描述的内容与内存池之间的唯一区别在于,通常情况下,池分配器会在内存不足时分配一个新池,而您的池分配器会在内存不足时重新分配整个阵列。这将大大增加最坏情况下的运行时间,并且您需要一个方案来避免在重新分配时使指针和引用无效,这可能会降低整个程序的性能


池分配器中最糟糕的情况是空间不足,必须分配新阵列。分配器中最糟糕的情况是,它用完了,必须分配一个新的更大的数组,并将所有旧对象复制到新数组中。显然后者需要更多的时间。

这与内存池有什么不同?内存池通常就是这样实现的。这会更快吗?这听起来会慢一些,因为你将创建两倍于你需要的对象,而且创建对象需要时间。一个,当然不是,二个,你自己的配置文件来确定你需要这种速度提升,三个,建议您接受问题的答案。这与内存池有何不同?内存池通常就是这样实现的。这样会更快吗?这听起来会慢一些,因为你将创建两倍于你需要的对象,而且创建对象需要时间。第一,当然不是,第二,你自己分析以确定你需要这种速度提高,第三,建议接受你问题的答案。