相关疑难解决方法(0)

哪个更快:堆栈分配或堆分配

这个问题可能听起来相当简单,但这是我与另一位与我合作的开发人员的辩论.

我正在小心处理堆栈分配的东西,而不是堆分配它们.他正在跟我说话,看着我的肩膀并评论说这没有必要,因为他们的表现是明智的.

我一直认为堆栈的增长是恒定的时间,并且堆分配的性能取决于堆的当前复杂性(用于找到合适大小的孔)和解除分配(折叠孔以减少碎片,如如果我没有弄错的话,许多标准库实现在删除期间需要时间来完成此操作.

这让我觉得可能非常依赖于编译器.特别是对于这个项目,我使用Metrowerks编译器来实现PPC架构.对这种组合的洞察力将是最有帮助的,但总的来说,对于GCC和MSVC++,情况如何?堆分配不如堆栈分配高吗?没有区别吗?或者差异是如此微小,它变得毫无意义的微优化.

c++ memory heap performance stack

489
推荐指数
13
解决办法
12万
查看次数

用C检查可用的堆栈大小

我正在使用MinGW和GCC 3.4.5(mingw-special vista r3).

我的C应用程序使用了大量的堆栈,所以我想知道是否有任何方法可以以编程方式告诉剩余多少堆栈,因此如果我发现我即将耗尽,我可以干净地处理这种情况.

如果没有其他方法可以解决可能耗尽堆栈空间的问题?

我不知道我将从哪个堆栈大小开始,因此需要以编程方式识别.

c stack mingw

33
推荐指数
6
解决办法
6万
查看次数

在递归C++函数中捕获"堆栈溢出"异常

是否有可能stack overflow exception在递归C++函数中捕获?如果是这样,怎么样?

那么在这种情况下会发生什么

void doWork()
{

     try() {

     doWork();    
     }


     catch( ... )  {

     doWork();    
     }
}  
Run Code Online (Sandbox Code Playgroud)

我不是在寻找特定操作系统的答案.总的来说

c++ recursion exception-handling exception

10
推荐指数
5
解决办法
9996
查看次数

标签 统计

c++ ×2

stack ×2

c ×1

exception ×1

exception-handling ×1

heap ×1

memory ×1

mingw ×1

performance ×1

recursion ×1