Скачать MetaTrader 5

Обмен информацией между терминалами с помощью файлов и синхронизация. - страница 5

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Vladimir
388
Vladimir  
FAQ:
  эта информация устарела, сейчас данные сразу же сбрасываются на диск

Вот это новость. Ладно, документации давно уже доверять не приходится. Но столь важные вопросы...

Очень прошу, поясните, пожалуйста, речь идет о новшествах в MQL4, они не относятся к MQL5? Действительно не используется накопление данных в файловом буфере операционной системы? Если писать 500 раз порциями по 10-100 байт, эти мелкие куски так и пойдут по отдельности через шлейф от материнки к диску?

Рустам
3598
Рустам  

пардоньте, попутал вот дословно :

 FileFlush() теперь записанные данные сбрасывает на диск немедленно

В старом скрипте излишне часто используется функция FileFlush(). Совершенно не обязательно при первоначальном создании файла вызывать ее после каждой записи данных бара. Достаточно это сделать в самом конце, когда будут записаны все подготовленные данные нестандартного символа и/или таймфрейма. Дело в том, что в новой версии языка MQL4 реализация функции FileFlush() была изменена с целью моментального сброса данных на физический диск. В старой версии использовалась отложенная запись данных, и многократные вызовы не приводили к замедлению работы скрипта.

https://www.mql5.com/ru/articles/1387

Vladimir
388
Vladimir  
FAQ:

пардоньте, попутал вот дословно :

https://www.mql5.com/ru/articles/1387

 

Сходил по ссылке, статья от 4 февраля 2014. Относится к билду 580. Сведения, которые сообщил Ренат Фаткуллин https://www.mql5.com/ru/forum/151351/page11 07.05.2014 20:46 в мае 2014 (сказал о том, что FileFlush обычно вовсе не делает принудительную запись на диск, а что же он делает, не сказал), уже новее.

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

Alexey Viktorov
10456
Alexey Viktorov  
FAQ:
  эта информация устарела, сейчас данные сразу же сбрасываются на диск
Я уж чуть не поверил. Повторил старинный тест. Вам надо было уточнить, "данные сбрасываются на диск сразу после закрытия файла функцией FileClose(file_handle);". Именно об этом я и говорил.
12345
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий