Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай принцип работы Торговых Сигналов для MetaTrader
Forex Trader
114252
Forex Trader 2006.10.08 18:40 
1.Скажите пожалуйста, каким может быть максимальный размер массива? Что-то об этом на форуме кажется было, но найти не могу.
2.Заодно и второй вопрос. Пытаюсь придумать, как динамически менять оба размера двумерного массива. Пока две мысли:
- Писать всё на Си :)
- Работать с одномерным массивом, реальный индекс при этом должен быть функцией двух "виртуальных". В связи с этим вспоминается реализованное для таймсерий перенаправление доступа (типа совместить бы одномерный массив с двумерным). Правильно ли я понимаю, что для пользовательских массивов это невозможно?
3.Ну и если кто уже пытался динамически менять два измерения: может ещё какие варианты возможны?
Forex Trader
114252
Forex Trader 2006.10.08 20:28  
Дополнение: Поманьячив конструкцию типа
     res = ArrayResize(a,const+i);
     Print(res); 


мне удалось добиться цифры 50331650 для массива double . Впечатление такое, будто этот предел обусловлен скорее моей системой, чем терминалом. Терминал же, если не вставить return при отрицательном res, просто исчезает.

MetaQuotes Software Corp.
Модератор
180327
MetaQuotes Software Corp. 2006.10.08 22:04  
мне удалось добиться цифры 50331650 для массива double . Впечатление такое, будто этот предел обусловлен скорее моей системой, чем терминалом.


50 331 650 * 8 байт = 402 Мб
Не всегда можно выделить такой большой кусок непрерывной(именно непрерывной) памяти. Специально никаких лимитов в терминале нет - все упирается в доступную память компьютера и ограничения 32-битной архитектуры.

Win32 процесс не может выделить под себя более 2Gb памяти вне зависимости от фактического наличия памяти у компьютера. Если программа собрана в режиме расширенной поддержки адресации, то лимит раздвигается до 3Gb.
Forex Trader
114252
Forex Trader 2006.10.08 22:39  
Спасибо.
И ещё момент: когда при превышении размера в 50 331 650 элементов у ArrayResize возникали проблемы, она возвращала -1, а не 0, как формально должно быть по описанию. Хотя возможно это говорит о том, что проблемы были совсем уж нештатными.
Forex Trader
114252
Forex Trader 2006.10.08 23:39  
мне удалось добиться цифры 50331650 для массива double . Впечатление такое, будто этот предел обусловлен скорее моей системой, чем терминалом.


50 331 650 * 8 байт = 402 Мб
Не всегда можно выделить такой большой кусок непрерывной(именно непрерывной) памяти. Специально никаких лимитов в терминале нет - все упирается в доступную память компьютера и ограничения 32-битной архитектуры.

Win32 процесс не может выделить под себя более 2Gb памяти вне зависимости от фактического наличия памяти у компьютера. Если программа собрана в режиме расширенной поддержки адресации, то лимит раздвигается до 3Gb.


может можно как-нибудь сделать "нарезание" массивов 2-ого, и более измерения?
мой вопрос тут "MQL4: Размерность массивов 2-ого,3-ого и 4-ого измерения?"
Forex Trader
114252
Forex Trader 2006.10.09 17:54  
мне удалось добиться цифры 50331650 для массива double . Впечатление такое, будто этот предел обусловлен скорее моей системой, чем терминалом.


50 331 650 * 8 байт = 402 Мб
Не всегда можно выделить такой большой кусок непрерывной(именно непрерывной) памяти. Специально никаких лимитов в терминале нет - все упирается в доступную память компьютера и ограничения 32-битной архитектуры.

Win32 процесс не может выделить под себя более 2Gb памяти вне зависимости от фактического наличия памяти у компьютера. Если программа собрана в режиме расширенной поддержки адресации, то лимит раздвигается до 3Gb.


Ne sovsem ponial, mogno oboyti eto ograni4enie:
1. prosto 64-bit processorom (32-bit OS)?
ili
2. 64-bit processor + 64-bit OS?

(te dostato4no li prosto 64-bit processora? ili OS dolgna toge bity 64?)

Ili nugna 64-bit versiya MT? Esli da, to planiruetsia li takovaya?
Forex Trader
114252
Forex Trader 2006.10.09 18:09  
diam0nd, толку от 64-битного процессора никакого, если стоит 32-битная ОС. Так как за всю адресацию отвечает ОС и программы не знают, что процессор 64-битнй. Отсюда делай выводы.
Да и сам МТ тоже должен быть 64-битным, чтобы использовать всю "мощь" 64-битной ОС.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий