9得票1回答
为什么在ArrayPool上分配内存比在Stack上更快?

我有一个基准测试,使用堆栈分配、堆分配和ArrayPool分配从文件中读取字符串。我原本期望堆栈分配是最快的,因为它只是增加堆栈指针,但根据基准测试,ArrayPool略微更快。这是怎么可能的呢? static void Main(string[] args) { ...

9得票1回答
如何在Linux中分配大的连续内存区域

是的,最终我将用它来进行DMA,但让我们暂时不考虑一致性。我有64位BAR寄存器,因此据我所知,所有RAM(例如高于4G)都可用于DMA。 我正在寻找约64MB的连续RAM。是的,这很多。 Ubuntu 16和18有CONFIG_CMA=y,但在内核编译时没有设置 CONFIG_DMA_C...

9得票1回答
这个设备目前不在线。

我想使用版本为7.1(7B91b)的Instruments来分析我的应用程序。但当我启动Allocations Instruments时,“记录”按钮是禁用的。我已连接我的iPhone设备(iOS 9.1系统的iPhone 6 Plus),并且该设备可以在Xcode中进行调试,没有任何问题。这...

9得票4回答
C语言中的内存池实现

我正在寻找一种优秀的C语言内存池实现。 它应该包括以下几个方面: 抗碎片化 非常快速 :) 能够将来自不同大小的多个分配捆绑在某个标识符下,并删除具有给定标识符的所有分配。 线程安全的

9得票2回答
std::allocator构造/销毁与放置new/p->~T()的区别

为了我的一个项目,我正在从头开始编写一些STL容器(我有我的理由)。由于我非常接近模仿STL的功能和接口,因此我尽力遵循“如果它与标准构造具有相同的名称,则尽可能符合标准”的策略。 当然,我的容器将allocators作为模板参数,这非常好,因为它允许一些自定义分配方案。下面是我的问题。 ...

9得票1回答
C++分配速度变慢的奇怪现象

请问为什么以下情况会发生: 我有两台电脑: 我的工作电脑 服务器 我维护一个C++程序(使用msvc 2005 c++编译),在服务器上运行速度过慢,但在我的电脑上却没有问题。 我进行了测量(使用GetThreadTimes等方法),可以明确地说瓶颈就在于内存分配(new/mall...

8得票4回答
为什么我的新运算符没有被调用?

我希望确认一下动态加载库(使用dlopen等方式加载)是否真正使用了它自己定义的new和delete运算符,而不是调用程序中定义的这些运算符。因此,我编写了以下library.cpp文件。 #include <exception> #include <new> #in...

8得票3回答
限制std::string的分配数量

我有一个函数,它可以从一个 const char* 构造出一个 std::string,并在末尾添加传递的两个数字参数。 std::string makeName(const char* name, uint16_t num1, uint16_t num2) { std::stri...

8得票1回答
如何在C语言中将字符串添加到字符串数组中

我正在重新学习C语言,并且有一个概念让我特别困惑。 目标是创建一个动态分配的字符串数组。我已经完成了这个过程,首先创建一个空数组并为每个输入的字符串分配适当的空间。唯一的问题是,当我尝试添加字符串时,会出现段错误!我无法弄清楚为什么,我猜测可能是由于错误的分配导致的,因为我在我的strcpy...

8得票1回答
编译器优化掉的内存分配

在他的演讲中“Efficiency with algorithms, Performance with data structures”,Chandler Carruth谈到了C++需要更好的分配器模型。当前的分配器模型侵入了类型系统,这使得在许多项目中几乎不可能工作。另一方面,Bloombe...