问题标签 [stack-size]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1151 浏览

c - 当数组大小适中(1000x1000 int)时崩溃 - 更改堆栈大小?

我正在尝试使用一个简单的程序来绘制一个 Mandelbrot 集 - 该程序生成一个整数数组,这些整数对应于图像中的颜色。我正在使用 gcc/MiniGW 在 Windows 上的 Code::Blocks 中工作。它适用于小阵列尺寸(~500x500)。但是,当我在设置为 1000x1000 后尝试运行时,它会崩溃(“已停止响应”)。使用 gcc (CentOS) 在 linux 远程终端下,对于任何数组大小,相同的代码都可以成功编译和执行,而无需特殊的调用指令。

我认为我需要做的是增加 Code::Blocks 下的堆栈大小。为此,我在 Code::Blocks 的链接器选项下尝试了“-Wl,--stack,1024”。但是我不能再构建-“无法识别的命令行选项'--stack,1024”。这个电话有问题吗?

我会将代码放在这里,但由于它可以按预期在 Linux 上运行,我认为这不是问题。

0 投票
1 回答
545 浏览

java - 如何在 Java/Groovy 中声明堆栈大小(验证错误:堆栈太大)

我收到此错误:

在这种方法中:

我找到了这个线程,解决了恕我直言的问题:

VerifyError:堆栈大小太大(这是什么意思?)

但我不太明白如何计算和声明堆栈大小。而且我也不明白,为什么我必须声明它,因为其他方法不需要它。谢谢你的帮助!

0 投票
1 回答
192 浏览

scheme - 在方案球拍中编写有效的功能

我是一名学生,不熟悉计划语言。我正在尝试编写高效的函数。我已经知道如何计算函数的执行时间,但我想知道的是如何计算该函数的堆栈(或内存)利用率。因为据我所知,执行期间在堆栈上等待的指令数量越少,效率就越高。

那么有没有办法计算在堆栈上等待的指令数?

0 投票
0 回答
538 浏览

opencv - 增加用于图像处理的堆栈内存 (C++ OpenCV)

有没有办法使用 C++/OpenCV 接口增加用于图像处理的堆栈内存?....我想将多个图像(可以说大约 100 个,每个图像大小约为 1 MB)加载到内存中并对它们执行并行计算使用 GPU。

0 投票
1 回答
169 浏览

c++ - 如果超出我的堆栈大小,我该如何自动调整它?C++

所以我有一个使用 LIFO(后进先出)方法的类 CStack。使用标准变量bottom/top/size和方法,例如push/pop/full/empty/print. 这是一个char堆栈。

我的问题是,如果我在这个堆栈中添加一些东西,当它已满时,我怎样才能自动调整大小?我已经想到了该 memcpy()方法,但我并不真正了解它是如何工作的(还)。

任何帮助将不胜感激。

这是我的代码:

0 投票
3 回答
2610 浏览

c++ - 当 DLL 需要比主 exe 应用程序更大的堆栈大小时该怎么办?

我有一个用 Visual C++ 2010 编写的模拟引擎,我正在为另一个 3rd 方应用程序实现一个基于它的 DLL 插件。

但是,当我的库被第 3 方应用程序的线程调用时,出现堆栈溢出错误。调试后发现 DLL 需要比线程更大的堆栈大小。是否可以以某种方式扩展当前线程的堆栈大小?

我知道我可能应该查看模拟引擎的代码并将大对象移动到堆中。问题是引擎是由另一个供应商维护的,如果可能的话,我想避免修改他们的代码。

我正在考虑在 DLL 中创建自己的线程,堆栈大小更大,并在计算完成时将结果返回给调用线程。这是正确的方法吗?

谢谢, 迈克尔

0 投票
1 回答
46 浏览

c++ - 多个 vs 项目中的堆栈大小

假设我有一个包含 5 个项目 A、B、C、D 和 E 的 C++ Visual Studio 解决方案。这些项目已将 /STACK 链接器选项设置为:

  • A = 4MB
  • B = 空(默认为 1MB)
  • C = 空(默认为 1MB)
  • D = 16MB
  • E = 25MB

所有这些都构建为具有公开功能的独立 DLL。项目:

  • A 包含一个函数 foo_a,它调用 foo_b(来自 B)和 foo_c(来自 C)
  • B 包含函数 foo_b,它调用 foo_d(来自 D)和 foo_e(来自 E)

如果我调用函数 A.foo_a ,堆栈大小是多少?如果我直接调用 E.foo_e 会一样吗?

0 投票
0 回答
1538 浏览

android - 如何通过 NDK 增加 android 上线程的堆栈大小?

我有一个大问题!我想在我的谷歌眼镜应用程序中实现用于手势识别的神经网络,但我面临 StackOverFlowError。通过 new Thread(group, runnable, threadName, stackSize) 增加堆栈不起作用!我唯一的解决方案是使用 NDK 设置堆栈大小!我在一些论坛上看到人们已经设法做到这一点(使用 pthreads,pthread_attr_setstack()...),但我以前从未使用过 NDK,所以如果有人能告诉我这是否可能(使用 SDK 开发应用程序但是使用 NDK 仅用于设置堆栈大小),如果是,请指导我一些可以帮助我的好教程或示例!

0 投票
2 回答
5170 浏览

delphi - 有没有办法将默认堆栈大小增加到 16777216 字节以上?

这个问题说明了一切。尝试在链接器选项中增加堆栈大小会产生错误:

最大堆栈大小必须是介于 65536 和 16777216 之间的整数。

这个 16MB 限制是 Delphi 编译器的基本限制还是 IDE 强加的任意限制?还有其他方法可以增加这个值吗?

注意(期待评论......):

  • 需要更大的堆栈是由于用作局部变量的大量静态数组类型
  • 我知道需要这样做是糟糕设计的症状
  • 这是一个大型遗留应用程序,我不负责其设计和维护。
  • 重构为动态数组有效,但会导致 50% 的性能损失。
  • 其他重构是可能的——可能需要数周的工作。这很可能最终成为一个副项目。
  • 与此同时,现在需要功能,更大的堆栈将是一个简单的解决方案。
  • 是的,我真的,真的知道这是一件很糟糕的事情。
0 投票
1 回答
1198 浏览

android - Android 运行时 (ART) 中本机和 Java 的统一堆栈

https://developer.android.com/guide/practices/verifying-apps-art.html#Stack_Size

该文档说 ART 有一个用于原生和 Java 的统一堆栈。你能告诉我这是什么意思吗?我知道线程的堆栈大小只能在创建时定义,例如在Java代码中使用Thread类的构造函数或在本机代码中使用pthread API。所以我无法理解统一堆栈如何影响应用程序的行为。请指导我参考一些好的教程或片段抛出 StackOverflowError 由统一堆栈导致。