Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если терминал гарантированно видит, что запущен в среде без контроля прав и у него есть полный доступ к локальной папке(это много условий, а не одно), то он хранит экспертов и настройки локально. Но часть общих данных в виде базы codebase, маркета и хелпов всегда хранится в общей папке UserData.
Т.е. под WinXP можно гарантированно ключом "/portable" не пользоваться? Это поведение сохранится и в будущем? Если да то это уже одна хорошая новость, хотя по-прежнему хотелось бы чтобы этот ключ был в настройках МТ4 и не приходилось беспокоиться о том как был запущен терминал.
Если терминал гарантированно видит, что запущен в среде без контроля прав и у него есть полный доступ к локальной папке(это много условий, а не одно), то он хранит экспертов и настройки локально. Но часть общих данных в виде базы codebase, маркета и хелпов всегда хранится в общей папке UserData.
Всё локально, а в этом всё равно ложка дегтя...
Получается portable недоделанный... Какой в этом смысл?
Так и есть. Проблема в том, что история загружена с 1999г. и обычные графики (не тестерные) показывают все существующие бары правильно. А в тестере независимо от выбранного интервала тестирования (пробовал разные даты и интервалы тестирования и в этом году и в прошлом году)-вылетает всегда после 1000 баров. А иногда бывает необходимо посчитать какую-нибудь МА с большим периодом, например 50-дневную SMA без использования дневного таймфрейма - на часовиках это будет 1200 периодная машка, а в тестере максимум 1000 баров...
При добавлении эксперта у которого используется таймер EventSetTimer() отъедается примерно 8 мегабайт памяти на каждого эксперта, без EventSetTimer() где то 2.
Для чего каждому таймеру 6 мегабайт?
PS: Сравнивал в Process Explorer в подгруженных DLL разницы не заметил.
Продолжение иследования утечки памяти
билд 606 эксперт пустой
Память в Мегабайтах--------------------------------------------------- Private Working Virtual WS PrivateЭКСПЕРЕМЕНТ 1
10 символов ---------------------------------------------------------------56 62 214 39ЭКСПЕРЕМЕНТ 2
10 символов с экспертом без таймера -----------------------------146 70 305 46смена профиля на 10 символов без эксперта ---------------------57 63 215 39
закрываем все 10 окон с символами ------------------------------- 53 59 215 35
ЭКСПЕРЕМЕНТ 3
10 символов с экспертом с таймера ---------------------------------206 130 365 107смена профиля на 10 символов без экспертом -------------------112 116 266 88
закрываем все 10 окон с символами -------------------------------- 107 113 266 88 !!!!!!!!! ПРО 54 МЕГАБАЙТА ЗАБЫЛИ
открываем профиль ТЕ ЖЕ 10 символов с эксп. с таймером --261 185 420 162
закрываем все 10 окон с символами ---------------------------------162 168 322 145 !!!!!!!!! ЕЩЕ ПРО 100 МЕГАБАЙТА ЗАБЫЛИ
Продолжение иследования утечки памяти
билд 606 эксперт пустой
Память в Мегабайтах--------------------------------------------------- Private Working Virtual WS PrivateЭКСПЕРЕМЕНТ 1
10 символов ---------------------------------------------------------------56 62 214 39ЭКСПЕРЕМЕНТ 2
10 символов с экспертом без таймера -----------------------------146 70 305 46смена профиля на 10 символов без эксперта ---------------------57 63 215 39
закрываем все 10 окон с символами ------------------------------- 53 59 215 35
ЭКСПЕРЕМЕНТ 3
10 символов с экспертом с таймера -------------------------------206 130 365 107смена профиля на 10 символов без экспертом -----------------112 116 266 88
закрываем все 10 окон с символами ------------------------------ 107 113 266 88 !!!!!!!!! ПРО 54 МЕГАБАЙТА ЗАБЫЛИ
открываем профиль10 символов с экспертом с таймером --261 185 420 162
закрываем все 10 окон с символами -------------------------------162 168 322 145 !!!!!!!!! ЕЩЕ ПРО 100 МЕГАБАЙТА ЗАБЫЛИ
Когда закрываются графики, история по соответствующему символу-периоду не сразу освобождается. А некоторое время ещё хранится в памяти на тот случай, если график был закрыт по ошибке
EventKillTimer();
но в ЭКСПЕРЕМЕНТ 2 память освободилась вся
после 10 итераций смены профиля с таймером на "закрыты все окна" память стала 372 285 526 267
Сравните ЭКСПЕРЕМЕНТ 2 и ЭКСПЕРЕМЕНТ 3 они различаются только строкой
но в ЭКСПЕРЕМЕНТ 2 память освободилась вся
Вы про кеши понятие имеете?
У терминале нет задачи во главу угла ставить экономию памяти. Во главе угла стоит быстрый доступ к рыночной информации. Поднятый инструмент попадает в кеш, досчитывается и живет там по своим правилам столько, сколько считает нужным терминал. Когда терминал решит, что историческая база явно никому не нужна, то тогда (через N минут) он ее освободит и перестанет достраивать новые бары из тиков.
Любые тесты, оценивающие память, некорректны из-за самой сути механизмов работы кешей. То, что вы вдруг посчитали таймер причиной, похоже на поиск несвязанных закономерностей.
Работу кешей исторических данных утечками памяти называть нельзя. Нет в МТ утечек, иначе бы терминал и суток не продержался, особенно на миллионной аудитории.
Ренат, что насчёт предложения временно прицепить к новому метаэдитору старый компилятор. ?
Есть шансы?
Портирование старого кода пошло бы веселее.