.net - 在 x64 系统上抛出 StackOverflowException;在 x86 上正常工作

标签 .net recursion 64-bit stack-overflow

这只是一个“确定”的问题。 .NET 4 中的 x64 系统的递归/循环是否有任何已知的特殊限制/错误?

我的情况很简单——一个程序在任何 x86 系统上都可以正常运行,但它在 x64 系统上会因 StackOverflowException 而崩溃(该程序包括一些 xml/映射代码,其中包含多个地方的递归等)。

目前解决此问题的唯一方法是调用corflags /32BIT+。在我的程序集上(并且程序开始正确运行)。但我想知道 - 是否有任何已知会导致 x64 上的错误/问题的特殊情况?

谢谢。

最佳答案

指针需要更多的内存才能在 x64 中表示(实际上是两倍)。因此,您将使用更多内存,因此深度递归可能会比 x86 更早地在 x64 上导致堆栈溢出。您可能想尝试 raising the stack limit来缓解这个问题。

关于.net - 在 x64 系统上抛出 StackOverflowException;在 x86 上正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9597037/

相关文章:

c# - 备用网格行颜色?

r - 展平嵌套列表并保留每个底层元素的所有父键

bash - Bash在处理[[

c - 在 Linux 中为 NTFS 执行 ls 命令

c++ - 在c++中使用x64系统和x86应用程序分配大内存

c# - 从内部取消延续链

c# - 有没有直接的方法将 Size 或 Point 乘以一个数字?

c# - 取消选择组合框项目

haskell - 定义与此 Haskell 函数等效的尾递归函数

dll - 同时注册32位和64位DLL