Помогите решить проблему - Зависание компьютера от Метатрейдер 5

 

Добрый день, господа программисты! 

Открыто много графиков >50, столько же в обзоре рынка. На каждый наброшен не торгующий советник. Сделана рассинхронизация расчетов советника во времени в зависимости от символа. 

Всё работает отлично, но до поры до времени. В один прекрасный момент один из терминалов (сейчас 3) зависает и не закрыть его уже, сразу виснет компьютер, при попытке закрыть терминал намертво.

Бывает что-то считает в полузависшем состоянии, но процесс идёт к полному зависанию, несмотря на то,  что времени по любому должно хватить на все расчеты.

Загрузка памяти и процессора низкая порядка 30% максимум на все процессы.

Если символов мало (штук 10) такой проблемы нет.

Бывает сразу при запуске виснет - особенно при перезапуске, но обычно поработает какое-то время без тормозов, а потом просто виснет терминал, подвешивая компьютер.

Как будто какой-то буфер переполняется в самом терминале и на этом всё, так происходит 1-3 раза в день, иногда неделями работает всё без проблем. Если переустановить терминал будет некоторое время работать без проблем. Проблема старая от билда не зависит. Железо тоже менялось - ничего не изменилось.

Баров стоит 50000 истории, расчет на меньшем количестве. 

Вопросы:

1. Почему терминал подвешивает весь компьютер?

2. Как найти причину подвисания?

3. Что можно прописать в коде, чтобы избежать этого зависания?

 
у меня бывало зависал терминал когда RAM заканчивался, и грузился медленный HDD, у вас там нет такой загрузки его?
 
lynxntech #:
у меня бывало зависал терминал когда RAM заканчивался, и грузился медленный HDD, у вас там нет такой загрузки его?
Написал, что ресурсы по минимуму в загрузке. Да и ладно бы просто терминал, у меня комп от него виснет. Крутит колесо именно на терминале, а зависает в итоге весь комп. 
 
Vasiliy Smirnov #:
Написал, что ресурсы по минимуму в загрузке. Да и ладно бы просто терминал, у меня комп от него виснет. Крутит колесо именно на терминале, а зависает в итоге весь комп. 
Память не течёт? Что в журнале при удалении советника с чарта?
 
Vasiliy Smirnov #:
Написал, что ресурсы по минимуму в загрузке. Да и ладно бы просто терминал, у меня комп от него виснет. Крутит колесо именно на терминале, а зависает в итоге весь комп. 

а там весь комп и виснет, ресурсы это не только RAM и процессор, в моем случае HDD грузился 100% и вешал систему всю

системный журнал приложения и самого windows смотрели?
 
Artyom Trishkin прав. Самая реальная причина зависания (не сразу, а через какое-то время) - утечка памяти в одной из ваших программ.
Artyom Trishkin
Artyom Trishkin
  • 2023.08.03
  • www.mql5.com
Профиль трейдера
 
lynxntech #:

а там весь комп и виснет, ресурсы это не только RAM и процессор, в моем случае HDD грузился 100% и вешал систему всю

системный журнал приложения и самого windows смотрели?

В логе терминала ничего нет. В виндоус, что мне искать?

Система перезагрузилась, завершив работу с ошибками. Возможные причины ошибки: система перестала отвечать на запросы, произошел критический сбой или неожиданно отключилось питание.

- System
- Provider
[ Name] Microsoft-Windows-Kernel-Power
[ Guid] {331c3b3a-2005-44c2-ac5e-77220c37d6b4}
EventID 41
Version 8
Level 1
Task 63



Opcode 0
Keywords 0x8000400000000002
- TimeCreated
[ SystemTime] 2023-08-21T12:04:36.6290362Z
EventRecordID 101870
Correlation
- Execution
[ ProcessID] 4
[ ThreadID] 8
Channel System
Computer ZFS
- Security
[ UserID] S-1-5-18
- EventData
BugcheckCode 0
BugcheckParameter1 0x0
BugcheckParameter2 0x0
BugcheckParameter3 0x0
BugcheckParameter4 0x0
SleepInProgress 0
PowerButtonTimestamp 0
BootAppStatus 0
Checkpoint 0
ConnectedStandbyInProgress false
SystemSleepTransitionsToOn 0
CsEntryScenarioInstanceId 0
BugcheckInfoFromEFI false
CheckpointStatus 0
CsEntryScenarioInstanceIdV2 0
LongPowerButtonPressDetected false


По факту при зависании нажата кнопка перезагрузки.

 
Artyom Trishkin #:
Память не течёт? Что в журнале при удалении советника с чарта?

Все успешно и удачно, нет критических сообщений.

 
Vasiliy Smirnov #:

В логе терминала ничего нет. В виндоус, что мне искать?

Система перезагрузилась, завершив работу с ошибками. Возможные причины ошибки: система перестала отвечать на запросы, произошел критический сбой или неожиданно отключилось питание.

- System
- Provider
[ Name] Microsoft-Windows-Kernel-Power
[ Guid] {331c3b3a-2005-44c2-ac5e-77220c37d6b4}
EventID 41
Version 8
Level 1
Task 63



Opcode 0
Keywords 0x8000400000000002
- TimeCreated
[ SystemTime] 2023-08-21T12:04:36.6290362Z
EventRecordID 101870
Correlation
- Execution
[ ProcessID] 4
[ ThreadID] 8
Channel System
Computer ZFS
- Security
[ UserID] S-1-5-18
- EventData
BugcheckCode 0
BugcheckParameter1 0x0
BugcheckParameter2 0x0
BugcheckParameter3 0x0
BugcheckParameter4 0x0
SleepInProgress 0
PowerButtonTimestamp 0
BootAppStatus 0
Checkpoint 0
ConnectedStandbyInProgress false
SystemSleepTransitionsToOn 0
CsEntryScenarioInstanceId 0
BugcheckInfoFromEFI false
CheckpointStatus 0
CsEntryScenarioInstanceIdV2 0
LongPowerButtonPressDetected false


По факту при зависании нажата кнопка перезагрузки.

Запустите советник на графике. Затем удалите его с графика и поглядите журналы. Что в них? Есть ли записи об утечке памяти? 
 
Vladimir Toropov #:
утечка памяти

Мысль интересная, смысл понятен. Но не использую я сложных переменных и указателей. Использую переменные, массивы нединамические, которые каждый такт перезаписываются, и память по идее не должна утекать. Но чувство, что "буфер" переполнен всё-таки есть. 

 
Artyom Trishkin #:
Запустите советник на графике. Затем удалите его с графика и поглядите журналы. Что в них? Есть ли записи об утечке памяти? 

На данный момент нет, а в момент зависания такая операция не будет доступна.

Причина обращения: