24得票11回答
8得票2回答
内存区和内存池有什么区别?

我见过这两个术语用于内存分配器的包装器,它们有什么区别吗?(如果有的话)

7得票7回答
Malloc vs new in C++

我正在从C语言过渡到C++。在C++中,是否还有使用malloc函数的必要,或者我可以直接使用new关键字?例如: class Node { /* ... */ }; /* ... */ Node *node = malloc(sizeof(Node)); // vs Node ...

53得票3回答
如何使用Instruments来分析内存使用和性能?

在所有的工具中,我最喜欢使用以下工具追踪模板: Zombies 工具用于检测何处存在对象过度释放的问题,非常适合调试 EXEC_BAD_ACCESS 错误。 Leaks 工具用于检测内存泄漏。 Core Animation w Color Blended Layers 工具用于检测帧率和半...

17得票3回答
为什么需要堆和栈?

为什么汇编语言同时使用堆栈和堆?它们似乎是重复的。

11得票2回答
本地可分配数组和自动数组的区别

我对以下代码片段中的alloc_array和automatic_array之间的差异感兴趣:subroutine mysub(n) integer, intent(in) :: n integer :: automatic_array(n) integer, all...

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

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

17得票2回答
为什么C标准中没有"recalloc"函数?

大家都知道: realloc 重新分配一个已经存在的内存块或者将它复制到更大的内存块。 calloc 确保内存被清零,避免算术溢出,并且通常用于大型数组。 C标准为什么不提供一个像下面这样同时结合了这两者的函数呢?void *recalloc(void *ptr, size_t num...

58得票6回答
结构体是否总是分配在栈上,还是有时会分配在堆上?

我认为在C#中,结构元素被分配在堆栈上,因此当从创建它们的方法返回时就会消失。但是如果我将结构值放入列表中并返回它们,那会发生什么?这些元素会幸存下来。 结构实例有时候会分配到堆上吗? internal struct Stru { public int i; } internal cl...

39得票3回答
Java中的逃逸分析

据我所知,JVM使用逃逸分析来进行某些性能优化,例如锁粗化和锁消除。我想知道JVM是否有可能使用逃逸分析决定将任何特定对象分配到堆栈上。 一些资源让我认为我的看法是正确的。是否有JVM实际上在这样做?