Поток событий. Как контролировать и сделать событие idle ? (+ решено) - страница 4

 
Yedelkin:

Спасибо, у меня и так всё уже заоптимизировано там :) В том числе и с учётом данной статьи, насколько помню. Придётся ждать следующей степени просветления :)

А вот можно ли как-то определить, сколько потребляет отдельно эксперт,  и отдельно индикатор, если они работают в связке через пользовательские события?

Плохо читали. В той статье как раз дана методика, можете ее развить.
 
Rosh:
Плохо читали. В той статье как раз дана методика, можете ее развить.
Ну что ж, проверить Ваше утверждение нетрудно.
 
sergeev:

вот мой конкретный случай, с которого начал демонстрацию  неотбрасывания идентичных событий

https://www.mql5.com/ru/forum/5091#comment_112780

там же написал почему возникает переполнение.

Тему прочитаю попозже

sergeev:

Да-да, EventChartCustom не внутри OnChartEvent, а, типа, снаружи. Теперь смотрим Ваш же код:

void OnChartEvent(int iview, int id, long lparam, double dparam, string sparam)
{
    if (id==CHARTEVENT_CUSTOM+VM_IDLE)
    {
      ... 
    }
    EventChartCustom(m_chart, VM_IDLE, (long)event_idle, 0, ""); // отправили событие с указанием последнего счетчика 

Зри в корень! Я показал демонстрацию проблемы и её решения.   Этот вызов EventChart может быть где угодно в коде.

 Ну я же говорю, "что в данном коде EventChartCustom не внутри OnChartEvent, и я очень ошибся" :)

 
Rosh:
Плохо читали.

Перечитал. Утверждение необоснованное. Ответ на вопрос "можно ли как-то определить, сколько потребляет отдельно эксперт,  и отдельно индикатор, если они работают в связке через пользовательские события" в статье отсутствует.

Rosh:
В той статье как раз дана методика, можете ее развить.

 Методика изложена в начале статьи. В середине статьи ссылаются именно на неё. Методика состоит в сравнивании времени прогона экспертов-пустышек, обращающихся к тому или иному индикатору. (К слову сказать, вспомнил, что статьей не руководствовался - пересечений с описанными проблемами удалось избежать на этапе разработки)

Я же спрашиваю не о том, как определить скорость тестирования эксперта/индикатора, а о том, как определить, сколько (какой объём оперативной памяти) потребляют эксперт и индикатор по отдельности, если они (1) одновременно работают в связке и (2) одновременно работают посредством передачи-приёма пользовательских событий. Т.е. речь идёт о ситуации, когда одновременно эксперт проявляет торговую активность, а индикатор - расчётную. В Диспетчере задач вижу только общий объём оперативной памяти, потребляемый терминалом с работающим на нём экспертом. А вот как узнать распределение этого объёма между экспертом и индикатором, и можно ли узнать?

 

Yedelkin:

как определить, сколько (какой объём оперативной памяти) потребляют эксперт и индикатор по отдельности.

как узнать распределение этого объёма между экспертом и индикатором, и можно ли узнать?

даже стесняюсь спросить - а зачем это знать? (вопрос не риторический а конкретно прикладной)
 
Yedelkin:

Мде... С таким отношением к отвечающим...

Сам. Вперед и с песнями.

 
sergeev:
даже стесняюсь спросить - а зачем это знать? (вопрос не риторический а конкретно прикладной)
Да и ответ прикладной :) Если указанная выше схема работы эксперт+индикатор начинает потреблять непомерно оперативной памяти, а поток пользовательских событий вроде как бы и ни причём, хотелось бы понять, где искать проблему - в эксперте  или в индикаторе. Т.е. желательно определить, какая именно программа способствует расходу памяти.
 
TheXpert:

Мде... С таким отношением к отвечающим...

Сам. Вперед и с песнями.

Конкретно Вас чем-то задел? - Извините. Отношение ко всем отвечающим - самое позитивное. Это Вы что-то напридумывали, наверное... Каждый чужой довод проверяю и оцениваю. До Ваших периодических резкостей мне в любом случае далеко. Поэтому предлагаю не переводить тему на личные отношения.

 
Yedelkin:
Конкретно Вас чем-то задел? - Извините. Отношение ко всем отвечающим - самое позитивное. Каждый довод проверяю и оцениваю. До Ваших периодических резкостей мне в любом случае далеко.

Просто ваше поведение напоминает анекдот про лодку и вертолет :)

Праведный Мойша всю жизнь молился Богу и уповал на него. И вот, однажды в городе, где он жил началось наводнение.
Мойша погрузился в молитвы о спасении, а вода тем временем поднялась до середины первого этажа.
Мимо проплывали его друзья на лодке:
-Садись, Мойша, мы спасем тебя.
- Нет, отвечал Мойша, меня Бог спасет.
Тем временем вода дошла о середины второго этажа.
Мимо проплывало бревно - на нем знакомые Мойши:
- Садись, Мойша, мы спасем тебя.
- Нет, отвечал Мойша,- меня Бог спасет, и продолжал молитвы.
Тем временем вода поднялась до самой крыши, на которой сидел Мойша,
тут подлетел вертолет и его товарищи спустили вниз веревочную лестницу:
- Залезай, Мойша, мы спасем тебя,
- Нет, - отвечал Мойша , меня Бог спасет - и продолжал молиться. Тут вода поднялась выше крыши и Мойша утонул.
И вот Мойша предстал перед Господом:
- Почему ты не помог мне? - с упреком спросил Мойша Господа,
- Я ведь так верил в тебя и молился тебе, я так ждал от тебя помощи!
- А кто, спрашивается,- отвечает Господь, - посылал тебе лодку, бревно и вертолет?

 
Rosh:

Просто ваше поведение напоминает анекдот про лодку и вертолет :)

ОК, понятно. TheXpert поднял волну, и понеслась.

Прихожу к выводу, что ответ на второй блок вопросов (о  раздельной оценке потребления памяти совместно работающими программами) отсутствует. Спасибо за ответы на первый  блок вопросов!

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