为什么linux而不是windows是因为ram?

为什么linux而不是windows是因为ram?,linux,windows,heap,ram,Linux,Windows,Heap,Ram,我正在尝试将一个应用程序从linux迁移到Win,但在堆大小、ram和。。。 大多数人喜欢在linux上工作而不是在Win上工作的Ram是什么?我知道的唯一原因是:您的原始代码中有一个bug 内存管理有两个主要区别: 1线性 在Unix系统下,您可以根据需要增加堆,因此地址是线性分配的,从数据段的末尾开始递增。在大多数情况下,这是透明的。但是,如果您在指针和整数之间重新解释_cast或类似C的cast,例如,如果您从Linux32转到Windows64,您可能也会遇到问题 2清楚 Windows

我正在尝试将一个应用程序从linux迁移到Win,但在堆大小、ram和。。。
大多数人喜欢在linux上工作而不是在Win上工作的Ram是什么?

我知道的唯一原因是:您的原始代码中有一个bug

内存管理有两个主要区别:

1线性

在Unix系统下,您可以根据需要增加堆,因此地址是线性分配的,从数据段的末尾开始递增。在大多数情况下,这是透明的。但是,如果您在指针和整数之间重新解释_cast或类似C的cast,例如,如果您从Linux32转到Windows64,您可能也会遇到问题

2清楚

Windows清除RAM以与Linux不同的方式将其设置为全零。正如你所描述的,在大多数情况下,这就是导致悲伤的原因。这也适用于堆栈数据

在调试模式下,Windows调试库也会故意将RAM设置为不同的值,例如0xCC或0xFE。这对于检测bug很有用,很可能是Linux版本中有bug,只是因为它可以正常工作


同样在堆栈方面,由于cl和gcc编译器的工作方式完全不同,因此堆栈是完全不同的。因此,您看到的唯一一件事是,您的原始代码中有一个bug…

这实际上比您认为的更糟糕:他在使用Java。他的问题都与操作系统无关。我没有看到任何关于实际使用的语言的东西。。。我假设是C和/或C++。如果是Java。。。我不知道。可能Java环境的设置不正确。。。除了我不喜欢Java之外,我对Java不太了解。