Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.02.2009, 17:45
ZZZRF413 ZZZRF413 вне форума
Прохожий
 
Регистрация: 16.10.2008
Сообщения: 38
Репутация: 10
По умолчанию Ограничение в 2 Gb

Хочу начать большой проект и опасаюсь не уложится в отведеные 2 Gb ОЗУ памяти приложению. Каким образом можно обойти это ограничение?

P.S. На С++ переходить крайне не хочется, поскольку незнаю его так как знаю Delphi.
Ответить с цитированием
  #2  
Старый 05.02.2009, 17:53
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

А ты думаешь, что реально займешь столько памяти?
Тогда при проектировании подумай о том, куда можно выгружать ненужные в данный момент данные, что бы в памяти реально были только обрабатываемые в текущий момент данные.

Более точно посоветовать не могу не зная специфики проекта.
Например, если это, например, верстка, то разные верстальные пргограммы хранят в памяти только превью графики, а саму графику грузят только тогда, когда выводят "пленки".
Ответить с цитированием
  #3  
Старый 05.02.2009, 18:12
ZZZRF413 ZZZRF413 вне форума
Прохожий
 
Регистрация: 16.10.2008
Сообщения: 38
Репутация: 10
По умолчанию

Цитата:
А ты думаешь, что реально займешь столько памяти?
да
в том то и дело, что нечего выгружать, все данные требуют текущей обработки.
Ответить с цитированием
  #4  
Старый 05.02.2009, 19:08
ApplicatiOn ApplicatiOn вне форума
Активный
 
Регистрация: 28.02.2008
Сообщения: 388
Репутация: -10
По умолчанию

Цитата:
Сообщение от ZZZRF413
да
в том то и дело, что нечего выгружать, все данные требуют текущей обработки.

есть такое уникальное понятие как файлы... не хочешь забивать оперативную, забивай физическую.. например переменные, массивы, строки, изображения...

да, и вообще краткий смысл программы каков? чего она столько выгружает?
Ответить с цитированием
  #5  
Старый 05.02.2009, 19:54
ZZZRF413 ZZZRF413 вне форума
Прохожий
 
Регистрация: 16.10.2008
Сообщения: 38
Репутация: 10
По умолчанию

Цитата:
не хочешь забивать оперативную

в том то и дело что я хочу оперативную забить (у меня её 8 Gb и операционка 64-битная), но не могу в силу ограничения 32-битной архитектуры. Вот и вопрос соотвествующий как это ограничение обойти?

А прога если совсем в кратце это онлайн сервер для MMOG.
Ответить с цитированием
  #6  
Старый 06.02.2009, 13:13
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Вопрос как обойти 32 битное ограничение? Вопрос снят - невозможно (компилятор 32 битный)

Где - то я читал про ограничение в 2 Gb, но не смог найти сейчас. Поэтому у меня такой вопрос, почему бы не использовать стек? И поясню.
Стек - это некоторая область памяти, которая организована специальным образом. Основной принцип при работе стека - первый пришел - последним ушел. Для работы со стеком нужно знать один адрес - а именно адрес доступного элемента стека (верхнего). Адрес, по которому находится верхний элемент стека, хранится в регистре SP (Stack Pointer). Этот адрес постоянно меняется - когда мы кладем очередной элемент в стек, то этот адрес уменьшается. Для работы стека нужен еще сегментный регистр SS (Stack Segment). В нем хранится граница стека, за которую стек перейти не может. Это значение не меняется - оно всегда одно и то же.
Ответить с цитированием
  #7  
Старый 07.02.2009, 15:47
ZZZRF413 ZZZRF413 вне форума
Прохожий
 
Регистрация: 16.10.2008
Сообщения: 38
Репутация: 10
По умолчанию

Обойти возможно. Ответ нашелся как ни странно тут http://support.microsoft.com/kb/283037
Это уже хоть както обнадеживает, осталось только разобратся как это сделать
Главное теперь можно смело начинать кодить проект на Delphi.

Вот пример сервера MMOG
Ответить с цитированием
  #8  
Старый 07.02.2009, 17:21
Аватар для :S.p.a.m.
:S.p.a.m. :S.p.a.m. вне форума
Активный
 
Регистрация: 04.05.2008
Сообщения: 260
Репутация: 15
По умолчанию

В 32 битной ОС предел не 2 ГБ а 3 с мелочью. Поэтому ничего делать не нужно
И вроде бы еще если поставить SP3 то будет 4.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:14.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025