Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под *nix > Общие вопросы программирования
Перезагрузить страницу Виртуальная память
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 29.11.2006, 07:45

Есть программа, обрабатывающая огромадный массив данных. Написана, имхо, довольно тупо, если не сказать резче, и, как следствие, жрёт очень много памяти.

Гонял её на Windows XP. Уже не помню подробностей, потому что давно это было. Кажется, она съела мегабайт 800 оперативной памяти, после чего выполнила недопустимую операцию и была закрыта. Это запустил я ее вечером, ушел с работы, и всю ночь она считала, загнулась где-то рано утром.

На днях перекомпилировал на Линуксе (технически это очень просто, потому что вся функциональность сводится к правильной последовательности вызовов кроссплатформенной библиотеки). Точно так же запустил вечером, утром пришел - она все еще работала, и весь рабочий день работала, и памяти забрала где-то почти два гигабайта. Т. е., это всё вместе, наверное - и оперативную, и своп-файл. Уже на следующее утро увидел, что она тоже скончалась, в консоли, откуда я ее запускал, было одно сообщение: "Killed". Когда такое выдается?

Так вот, я читал, что под Windows процессу доступно 2 Гб, что ли, памяти всего. А что под Линуксом? Может, там это вообще можно настраивать, и если я поставлю размер свап-файла на сто гигабайт, и все эти сто гигабайт отдам этой программе - может, она неделю пошебуршит и таки-доработает до победного конца.
Ответить с цитированием
  (#2 (permalink)) Старый
Olesya Olesya вне форума
Member
 
Сообщений: 1,485
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.06.2002
По умолчанию 06.12.2006, 01:00

2 ГБ это огрничение архитектури х86-32. Больше никак. Попросто процессор не может больше адресовать. (самый старший бит под знак). Судя по всему когда она зпросила уже больше, сказало досвидания.
Еще есть забавный момент:
а сколько МБ/ГБ свапа и реальной памяти вообще в системе?

Также не исклюичена ли така ситация что в этот момент в системе был запрошен new на новый объем, которого уже не осталось? Но тогда все должно лететь по Segmentation fault.

По поводу свапа размером 100ГБ, то это все дело имеет смысл только на 64-разрядных системах. И то опять таки вопрос в том, а не заложено ли в ОС, ограничение на объем памяти для процесса.
Ответить с цитированием
  (#3 (permalink)) Старый
Vladimir the Red Sunny Vladimir the Red Sunny вне форума
Member
 
Сообщений: 4,232
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 15.05.2003
По умолчанию 06.12.2006, 14:07

Под Windows проверяли на компах с 1, 2 и 4 гигабайтами оперативной памяти. Под Linux я пробовал только на одном, где 1 гигабайт. Настройки свапа автоматические/по умолчанию, места свободного на дисках со свап-файлами дофига.
Вообще, программа нигде, кажется, не выбрала все доступные 2 ГБ (если верить процесс менеджеру), так что, может, это какая-то внутренняя проблема этой программы на больших данных. По-хорошему, конечно, надо переписывать программу, чтобы сама кэшировалась на диск, сохраняла промежуточные результаты и пр., и пр....
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Виртуальная химическая лаборатория Exmap Некоммерческие проекты 26 16.12.2013 15:46
виртуальная машина не видит USB флэшку Terroristka Любые вопросы от новичков 8 29.03.2012 05:43
Виртуальная машина Taws Любые вопросы от новичков 1 22.01.2012 16:17
Виртуальная память Monogamy Память 10 11.03.2011 00:14
Низкая виртуальная память dimmslider Память 2 27.03.2008 05:25
Виртуальная функция в деструкторе Odin_KG С/С++ 1 11.03.2008 11:22
Шаблон или виртуальная функция D_K С/С++ 33 19.09.2007 12:12
ВИРТУАЛЬНАЯ ПАМЯТЬ. SENERO777 Память 8 09.09.2007 00:49
Виртуальная машина с функцией отладки кода Developer Assembler 1 28.05.2004 00:19
Не работает виртуальная PreTranslateMessage Чугайнов Н.Г. Visual C++ 0 14.07.2003 08:37



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов