2013-05-26 2 views
-5

Я пытаюсь перенести приложение из linux в Win и уже у меня много трудностей с размером кучи, ram и ... Что это такое о Ram, что большинство людей предпочитает работать на linux вместо Win ?Почему linux вместо окон из-за бара?

ответ

1

Единственная причина, по которой я знаю: у вас есть ошибка в исходном коде.

Есть два основных отличие в управлении памятью:

1) Линейного

В системах Unix, вы растете вашу кучу по мере необходимости и адрес, таким образом, выделяется линейно, увеличиваясь от конца вашего сегмента данных вверх. В большинстве случаев это прозрачно. Однако, если вы делаете reinterpret_cast <>() (или C-like casting) между указателями и целыми числами, у вас могут возникнуть проблемы (например, если вы перешли с Linux 32 на Windows 64).

2) Clear

Windows очищает ОЗУ (устанавливает его на все ноль) по-другому, чем Linux. В большинстве случаев это вызывает горести, когда вы описываете. Это также относится к данным стека.

В режиме отладки, также, библиотеки отладки Windows, с целью установить ОЗУ в разные значения (например, 0xCC или 0xFE). Это полезно для обнаружения ошибок, и вполне возможно, что у вас есть ошибки в вашей версии Linux, только она «работает» только потому, что.

Также в отношении стека, поскольку компиляторы cl и gcc делают это совершенно по-другому, стек полностью отличается. Так что единственное, что вы видите, это то, что у вас есть ошибка в вашем исходном коде ...

+0

Это на самом деле хуже, чем вы ему за это пользуетесь: он использует Java. Ни одна из его проблем даже не связана с ОС. – Cairnarvon

+0

Я ничего не видел о используемом языке ... Я предположил, что это C и/или C++. Если это Java ... я понятия не имею. Возможно, среда Java неправильно настроена ... не так много о Java, кроме как мне это не нравится 8-). –

Смежные вопросы