CS 310:00:47.822 MemoryException 64 Mb not available
CS 310:00:47.904 MemoryException 64 Mb not available
CS 010:00:47.986 Tester EURUSD,M1: 0 ticks, 0 bars generated. Environment synchronized in0:00:00.133. Test passed in0:00:19.075 (including ticks preprocessing 0:00:18.891).
CS 010:00:47.986 Tester EURUSD,M1: total time from login to stop testing 0:00:19.208 (including 0:00:00.133for history data synchronization)
CS 310:00:47.986 Tester not enough available memory, 2211 Mb used, 6233 Mb available, maximal available block is30 Mb
CS 010:00:47.986 Tester log file "C:\Terminals\MT5\Tester\Agent-127.0.0.1-3016\logs\20250124.log" written
CS 010:00:47.988 Tester test Experts\Tester.ex5 on EURUSD,M1 thread finished
Не может выделить 64 Мб, при этом говорит, что есть 6 гигов.
Всего свободное место в памяти есть, но видимо сильно фрагментировано. Почему менеджер памяти не занимается упаковкой - не знаю.
Всего свободное место в памяти есть, но видимо сильно фрагментировано. Почему менеджер памяти не занимается упаковкой - не знаю.
Наверное огромными матрицами работает. Хорошо, что для себя от них отказался. Продолжаю по старинке (как и в С++ кстати) Динамическими массивами структур с динамическими массивами.
struct far{float c[];};
struct dar{double c[];};
dar data_d[];//вариант матриц на массивах структур, до 100 раз быстрее при Resize, чем matrix - https://www.mql5.com/ru/forum/462148
far data_f[];
Подмассивы с новыми строками во все свободные места памяти легко распределит (от нескольких байт до нескольких килобайт в зависимости от числа столбцов).
Странно, что МQ выбрали такой вариант - брать под матрицу сразу огромный кусок памяти, который для изменения размера может часто искать новое место в памяти. Может и забывает (не успевает) удалять, потому и осталось 30мб максимального свободного блока.
Странно, что МQ выбрали такой вариант - брать под матрицу сразу огромный кусок памяти, который для изменения размера может часто искать новое место в памяти. Может и забывает (не успевает) удалять, потому и осталось 30мб максимального свободного блока.
Склоняюсь к тому, что где-то утечка памяти происходит.
Вроде переназначение заданий между агентами в локальной сети есть, но как то не до конца сделано (( На одном из агентов 35 заданий осталось, при этом 6 агентов бездействуют. А если тест по реальным тикам и за большой период, то это очень долго 35 заданий одним агентом вычислять. Исправьте пожалуйста.
Еще предложение. Если машина, которая запускает тестирование с агентами из локальной сети тоже имеет добавленные агенты, то может не нужно при поиске предлагать свои же агенты и в списке локальной сети? Можно не заметить (и не удалить вручную) и перегрузить ведущий компьютер удвоенным числом вычислений и потребления памяти..
Ставлю на фрагментацию и запаздывание со сборкой мусора. Правда, непонятно, это win api, или алгоритмы терминала...
Из за этого инцидента я у себя решил ставить ArrayFree(); в конце функций, если они создавали массивы. Тут https://www.mql5.com/ru/docs/array/arrayfree ничего не сказано, что программа при выходе и функции освобождает память дин. массивов, а только при завершении программы.
Вроде переназначение заданий между агентами в локальной сети есть, но как то не до конца сделано (( На одном из агентов 35 заданий осталось, при этом 6 агентов бездействуют. А если тест по реальным тикам и за большой период, то это очень долго 35 заданий одним агентом вычислять. Исправьте пожалуйста.
Сбалансировали раздачу заданий, после вчерашних 3-х обновлений, сегодня - идеально! Спасибо)
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Не может выделить 64 Мб, при этом говорит, что есть 6 гигов.
Выделил красным, в чем причина:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 4755: общие улучшения
fxsaber, 2025.01.24 08:23
Не может выделить 64 Мб, при этом говорит, что есть 6 гигов.
Всего свободное место в памяти есть, но видимо сильно фрагментировано. Почему менеджер памяти не занимается упаковкой - не знаю.
Всего свободное место в памяти есть, но видимо сильно фрагментировано. Почему менеджер памяти не занимается упаковкой - не знаю.
Спасибо. Хорошее замечание.
Выделил красным, в чем причина:
Всего свободное место в памяти есть, но видимо сильно фрагментировано. Почему менеджер памяти не занимается упаковкой - не знаю.
Хорошо, что для себя от них отказался.
Продолжаю по старинке (как и в С++ кстати)
Динамическими массивами структур с динамическими массивами.
Подмассивы с новыми строками во все свободные места памяти легко распределит (от нескольких байт до нескольких килобайт в зависимости от числа столбцов).
Странно, что МQ выбрали такой вариант - брать под матрицу сразу огромный кусок памяти, который для изменения размера может часто искать новое место в памяти. Может и забывает (не успевает) удалять, потому и осталось 30мб максимального свободного блока.
Forester #:
Наверное огромными матрицами работает.
Нет матриц и огромных массивов.
Странно, что МQ выбрали такой вариант - брать под матрицу сразу огромный кусок памяти, который для изменения размера может часто искать новое место в памяти. Может и забывает (не успевает) удалять, потому и осталось 30мб максимального свободного блока.
Склоняюсь к тому, что где-то утечка памяти происходит.
Склоняюсь к тому, что где-то утечка памяти происходит.
Ставлю на фрагментацию и запаздывание со сборкой мусора. Правда, непонятно, это win api, или алгоритмы терминала...
Вроде переназначение заданий между агентами в локальной сети есть, но как то не до конца сделано ((
На одном из агентов 35 заданий осталось, при этом 6 агентов бездействуют. А если тест по реальным тикам и за большой период, то это очень долго 35 заданий одним агентом вычислять.
Исправьте пожалуйста.
Если машина, которая запускает тестирование с агентами из локальной сети тоже имеет добавленные агенты, то может не нужно при поиске предлагать свои же агенты и в списке локальной сети?
Можно не заметить (и не удалить вручную) и перегрузить ведущий компьютер удвоенным числом вычислений и потребления памяти..
Ставлю на фрагментацию и запаздывание со сборкой мусора. Правда, непонятно, это win api, или алгоритмы терминала...
Из за этого инцидента я у себя решил ставить ArrayFree(); в конце функций, если они создавали массивы.
Тут https://www.mql5.com/ru/docs/array/arrayfree ничего не сказано, что программа при выходе и функции освобождает память дин. массивов, а только при завершении программы.
Склоняюсь к тому, что где-то утечка памяти происходит.
Вроде переназначение заданий между агентами в локальной сети есть, но как то не до конца сделано ((
На одном из агентов 35 заданий осталось, при этом 6 агентов бездействуют. А если тест по реальным тикам и за большой период, то это очень долго 35 заданий одним агентом вычислять.
Исправьте пожалуйста.
Сбалансировали раздачу заданий, после вчерашних 3-х обновлений, сегодня - идеально! Спасибо)