gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:10:12 24 4
gpt4 key购买 nike

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

Maximum Stack Size must be an integer between 65536 and 16777216.

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

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

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

最佳答案

您可以使用 {$MAXSTACKSIZE} (或 {$M minstacksize maxstacksize} 编译器指令)将其增加至 2147483647。请注意,这是不同的用途{$M}{$M+/-} 用于指示类的 RTTI 生成。

来自XE6 docwiki (它也适用于以前的版本):

The $M directive specifies an application's stack allocation parameters. minstacksize must be an integer number between 1024 and 2147483647 that specifies the minimum size of an application's stack, and maxstacksize must be an integer number between minstacksize and 2147483647 that specifies the maximum size of an application's stack.

If there is not enough memory available to satisfy an application's minimum stack requirement, Windows will report an error upon attempting to start the application.

关于delphi - 有没有办法将默认堆栈大小增加到超过 16777216 字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24865191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com