13得票4回答
Java中是否可以在线程运行一段时间后获取实际使用的堆栈大小?

这个想法是帮助确定给定Java应用程序的最佳堆栈大小。 可以使用这些信息中的一个来创建堆栈大小范围表,线程在退出时可以修改该表单,可以定期转储以及在应用程序退出时进行转储。 编辑:这是在客户机上运行实际工作负载的情况下,我无法获得分析器访问权限。 编辑2:回答中的一个问题,每个线程大约需...

7得票6回答
如何确定一个对象应该放在堆栈上还是堆上?

我在寻找一个C++中关于在堆栈或堆上分配对象的经验法则。我在SO上找到了很多讨论,很多人说,这取决于对象的生命周期。如果你需要比函数作用域更长的生命周期,就把它放在堆上。这是完全有道理的。 但是让我困惑的是,很多人说,如果对象很小,就将其分配到堆栈上。如果对象很大,就将其放到堆上。但是他们没...

13得票2回答
Ruby的Fiber 4kB堆栈大小的后果

对我来说,纤程是一个相对较新的概念。我知道每个纤程的堆栈大小限制为4kB,我不断地看到“应该小心”这样的提示。这个限制的真实后果是什么? 编辑: 看起来这个4kB的限制并没有那么严重,只有在纤程本身有大量局部变量(4,045个)时才会引发SystemStackError。count = 0...

8得票4回答
在Linux中,堆栈内存是物理上连续的吗?

据我所知,栈内存在虚拟内存地址中是连续的,但物理上的栈内存也是连续的吗?这是否与栈大小限制有关? 编辑:我曾经认为栈内存不必在物理上是连续的,但我们为什么认为栈内存总是比堆内存快呢?如果它在物理上不是连续的,那么栈如何更好地利用缓存?还有一件事情总是让我感到困惑,CPU在数据段中执行指令,而...

32得票4回答
为什么我能达到的最大递归深度是不确定的?

我决定尝试一些实验,以探索堆栈帧的大小和当前执行代码通过堆栈的深度。这里有两个我们可以调查的有趣问题: 当前代码嵌套了多少层? 当前方法可以递归几层,在遇到StackOverflowError之前? 当前执行代码的堆栈深度 以下是我能想到的最好解答:public static int...

20得票1回答
如何在使用Clang编译时增加OS X的堆栈大小?

我可以在使用clang++时指定堆栈大小吗?我找不到任何编译器选项可以让我这样做。我正在使用OS X。 注意:此问题特指Clang编译器,而非GCC编译器。

13得票2回答
当使用大的预编译头文件时,cc1plus.exe崩溃

我在使用MinGW时遇到了一个问题,无法使用预编译头文件。编译器似乎能够找到预编译头文件,但是 cc1plus.exe 在之后立即崩溃(cc1plus.exe 已停止工作)。 我理解这可能与 cc1plus.exe 的堆栈大小较低有关,因此我做了以下操作以增加它:editbin cc1plu...

11得票2回答
与某些输入大小成线性比例的堆栈深度是否可行?

在使用Java(或其他任何过程式编程语言)编程时,我经常要选择递归解决问题和迭代解决问题。递归选项通常比迭代解决方案更优雅,所以我通常会选择递归解决方案。但是有一个例外: 担心堆栈溢出 如果最大堆栈深度与输入大小成线性关系(甚至更糟),我倾向于避免使用递归解决方案。然而,我意识到在许多其他语...

7得票3回答
如何在Linux中确定程序的堆栈大小?

如何确定Linux程序的当前堆栈大小? 据说Linux每个程序的堆栈大小为8 MB,但是当您使用cat /proc//mmap时会显示不同的大小。 另外,如何确定关联线程的堆栈大小?因为据说线程有自己的私有堆栈。

10得票2回答
Windows (Visual C++)中的线程堆栈大小

有没有调用可以确定正在运行的线程的堆栈大小?我已经在MSDN线程函数文档中寻找,但似乎找不到。