Сборка 600+ и использование процессора - страница 8

 
xaphod:

Build 628. Никаких входящих тиков. >500 раз/секунду. Замечательно!

Пожалуйста, проверьте на билде 645 (последний официальный релиз), и сообщите об этом в ServiceDesk Metaquotes, если ничего не изменилось. Спасибо.
 
xaphod:

Build 628. Никаких входящих тиков. >500 раз/секунду. Замечательно!


Значит, в билде 509 такого не происходит? А как насчет 625?
 
mikeyap9:
Исправлено, и это было связано с моим кодом. Я добавил переменные, которые не были инициализированы должным образом, поэтому вычисления зацикливались бесконечно.


Я заговорил слишком рано, дело было не в этом. На самом деле это была проблема чтения файла, у меня 28 ботов читали один и тот же файл настроек. Все, что я сделал, это переключился на FILE_SHARE_READ вместо FILE_READ. Теперь все в норме.
 

У меня все еще высокое использование процессора на одном терминале. Использую сборки 745 и 765. Я тестировал терминал без загруженных графиков, новости отключены, оповещения отключены. Все еще получаю 40-60% использования процессора. двухъядерный 3.1Ghz vps win2008, R2 64 bit. 1.5GB ram, 400-800MB ram free. Работает около 7 терминалов. Некоторые терминалы, загруженные графиками, показывают 1-3% использования процессора. Почему такое высокое использование на случайных терминалах, даже если ничего не запущено?

edit: Вот скриншот страницы свойств процесса Process Explorer:

Я пытаюсь убить поток с высоким использованием. Когда я это делаю, другой поток, использующий такое же использование процессора, занимает его место.

edit: затем я пытаюсь "приостановить" поток (не убивать его).

Это снижает cpu, но мне нужно посмотреть, влияет ли это на терминал каким-либо другим образом. Предыдущие сообщения предполагают, что котировки перестали приходить на терминал (когда они убиты). Поэтому, когда рынок возобновится сегодня, мне нужно будет посмотреть. Я попытался возобновить его сейчас, и поток просто прыгает обратно к высокому использованию процессора. Нет открытых графиков, и в просмотре рынка нет символов (скрыть все). Плюс рынки закрыты, поэтому нет входящих тиков.

Когда я приостанавливаю поток, терминал работает нормально в течение 5-10 минут, затем он внезапно замирает (не отвечает), и тогда вы должны либо отменить приостановку (возобновить) потока, чтобы заставить программу работать, либо перезапустить программу.

Я заметил, что другой терминал, который я запустил примерно в то же время после перезагрузки, также имел высокий уровень использования памяти, но больше не имеет его (вернулся к 0,2-1,5% использования процессора). И в этом терминале открыты графики с советниками и индикаторами. Кажется, что здесь нет рациональной причины для необъяснимого высокого использования процессора, если я ничего не упускаю.

 

Я только что провел тестирование на совершенно новом тестовом сервере, на этот раз используя windows 2012 64 bit с 4 процессорами и 2gb ram. У меня были запущены терминалы с низким использованием процессора (между 0.1 и 1%) даже с несколькими загруженными графиками и индикаторами.

Затем я запустил свежеустановленный терминал, и примерно через 2 минуты после запуска он стал использовать 25% (без открытых графиков). Другие существующие терминалы использовали меньше.

Затем другие терминалы, которые вели себя без происшествий. Когда они перезапускаются, терминалы сразу же переходят к использованию высокого использования процессора. Hmmmmmm....

Я думаю, это какая-то ошибка в mt4, которая заставляет поток использовать так много cpu. Но почему?

-------

edit: Разблокировав файл mql4.codebase.en.dat, использование процессора возобновилось до 0.2-3%. Он больше не использует максимум процессора на терминал, и файл пишет нормально.

Файл mql4.codebase.en.dat находится здесь: Users\[user]\AppData\Roaming\MetaQuotes\Terminal\Community

Ранее для некоторых файлов mt4 были назначены разрешения только на чтение, чтобы уменьшить раздутость.

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