Canvas vs Labels - страница 17

 
Mihail Matkovskij:

На счёт г-кода, то я могу найти и у вас г-код, аргументируя каждое своё слово! А не так как вы, голословно обвиняя... Найти?

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

 
Artyom Trishkin:
Зафлудили интетесную тему... Ну что за люд пошёл...

Тема могла быть интересной. Но увы такой ей никогда не стать.

 
Alexey Viktorov:

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

Зато коды других участников сообщества для вас г... Ну видно, что самоучка. Поэтому неписанные правила вам ни к чему, которые говорят, что своих коллег нельзя поливать грязью.

А теперь вопросы по коду https://www.mql5.com/ru/code/24076. Я конечно не буду уподобляться вам и говорить что это г..код... Но свои замечания сделаю всё же.

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   calculate();
   ArrayFill(extImg1, 0, IMG_WIDTH1*IMG_HEIGHT, 0);
   textComment(dts(lots[0])+" ", IMG_WIDTH1, 1, extImg1);
   textComment(dts(lots[1])+" ", IMG_WIDTH1, 2, extImg1);
   textComment(dts(lots[2])+" ", IMG_WIDTH1, 3, extImg1);
   textComment(dts(lots[3])+" ", IMG_WIDTH1, 4, extImg1);
   textComment(dts(lots[4])+" ", IMG_WIDTH1, 5, extImg1);
   textComment(dts(lots[5])+" ", IMG_WIDTH1, 6, extImg1);
   textComment(dts(lots[6])+" ", IMG_WIDTH1, 7, extImg1);
   textComment(dts(lots[7])+" ", IMG_WIDTH1, 8, extImg1);
   ResourceCreate("::bbb", extImg1, IMG_WIDTH1, IMG_HEIGHT, 0, 0, IMG_WIDTH1, clr_format);
  //ChartRedraw();
//--- return value of prev_calculated for next call
   return(rates_total);
}

Почему нет никаких ограничений по частоте обновлений БитмапЛейбла, если он будет работать в тестере, на модели "все тики"? Надеетесь, что современное железо всё переварит?  :) А где же оптимизация? И это вы предлагали мне, когда я искал способ вывода текста из высоконагруженных процессов (вывод в тестере, на модели все тики, и на чарте в цикле)?

А когда я сказал, что это мне не подходит https://www.mql5.com/ru/forum/1111/page2975#comment_21167825, вы начали высказывать мне свои недовольства... Якобы, я ничего не понимаю и должен был беспощадно вызывать TextOut - ResourseCreate - ChartRedraw . Правда, ChartRedraw у вас почему-то закомментирован...

Цитата:

Alexey Viktorov:

... Да и кому это надо, чего-то вам доказывать и разжёвывать? Вместо того чтобы посмотреть мой код, на каждом тике обновляющий информацию ...

https://www.mql5.com/ru/forum/1111/page2979#comment_21212761

Почему бы не использовать специально разработанный для этого CCanvas??? Правда, смотрел, вы писали где-то, что он якобы вызывает лишние функции и т.д. Значит, ограничение частоты обновлений для тестера не сделали, но в то же время, функции CCanvas вам каким-то образом помешали... :)

Странно...


А теперь ваша очередь, рассказать, точно также, почему вы считаете мой код "г-кодом". Только, с аргументами, а не пустопорожний трёп!

 
Artyom Trishkin:
Зафлудили интетесную тему... Ну что за люд пошёл...

Я всего лишь принял предложение поучаствовать в тестировании, что привело к необходимости задать пригласившему пару вопросов...

 
Mihail Matkovskij:

...

Почему нет никаких ограничений по частоте обновлений БитмапЛейбла, если он будет работать в тестере, на модели "все тики"? Надеетесь, что современное железо всё переварит?  :) А где же оптимизация? И это вы предлагали мне, когда я искал способ вывода текста из высоконагруженных процессов (вывод в тестере, на модели все тики, и на чарте в цикле)?

...

А зачем, ведь вы же сами утверждаете, что битмап лэйбл работает быстрее обычного лэйбла. А один обычный лэйбдл в данном случае был бы почти не заметен по быстродействию.

 
Dmitry Fedoseev:

Я всего лишь принял предложение поучаствовать в тестировании, что привело к необходимости задать пригласившему пару вопросов...

"На воре и шапка горит" ?... Любой скачает исходники и повторит замеры, которые я представил выше! У вас же, одни претензии и недовольства. Придуманные, "битые ссылки" и тому подобное...
Dmitry Fedoseev:

А зачем, ведь вы же сами утверждаете, что битмап лэйбл работает быстрее обычного лэйбла.

Я этого не говорил. И речь шла о выводе информации не в одну строку. Поэтому, для замеров я сделал дисплей для вывода большого количества строк.

Вывод в Лейблы оптимизирует чарт. В то время как в БитмапЛейбл нужно передавать массив пикселей, предварительно обновив его. В данном случае это заполнение массива пикселей и вывод текста в него. Все эти операции, при слишком частом их вызове, оказывают нагрузку на приложение. В то время, как для лейбла нужно передать всего лишь строку. Об этом уже говорилось выше.

Более подробно о скорости можно узнать с помощью сравнения замеров скорости работы CCanvas и лейблов в разных режимах: https://www.mql5.com/ru/forum/364640/page13#comment_21314045

 
Mihail Matkovskij:

Зато коды других участников сообщества для вас г... Ну видно, что самоучка. Поэтому неписанные правила вам ни к чему, которые говорят, что своих коллег нельзя поливать грязью.

А теперь вопросы по коду. Я конечно не буду уподобляться вам и говорить что это г..код... Но свои замечания сделаю всё же.

Почему нет никаких ограничений по частоте обновлений БитмапЛейбла, если он будет работать в тестере, на модели "все тики"? Надеетесь, что современное железо всё переварит?  :) А где же оптимизация? И это вы предлагали мне, когда я искал способ вывода текста из высоконагруженных процессов (вывод в тестере, на модели все тики, и на чарте в цикле)?

А когда я сказал, что это мне не подходит, вы начали высказывать мне свои недовольства... Якобы, я ничего не понимаю и должен был беспощадно вызывать TextOut - ResourseCreate - ChartRedraw . Правда, ChartRedraw у вас почему-то закомментирован...


Почему бы не использовать специально разработанный для этого CCanvas??? Правда, смотрю, вы писали где-то, что он якобы вызывает лишние функции и т.д. Значит, ограничение частоты обновлений для тестера не сделали, но в то же время, функции CCanvas вам каким-то образом помешали... :)

Странно...


А теперь ваша очередь, рассказать, точно также, почему вы считаете мой код "г-кодом". Только, с аргументами, а не пустопорожний трёп!

  1. Вы на какой планете живёте? Где вы нашли такие правила? Приезжайте в любой автосервис и услышите всё, о том кто ремонтировал ваш автомобиль в прошлый раз. Даже если это был тот с кем вы сейчас разговариваете. И такое не только с автомобилями. Просто это самый наглядный пример.
  2. Я предложил вам этот код в качестве примера, а не для слепого копирования его.
  3. Все проверки и задержки загромождают код и такой код сложнее использовать в качестве примера.
  4. О какой оптимизации может идти речь, если советник не торговый? Какие параметры в нём оптимизировать?
  5. После отказа от моего предложения вам начал объяснять все тонкости Николай. Я всего лишь посоветовал посмотреть его тему о канвасе. На что вы солгали сказав что всё читали. Как вы хотите чтобы относились к лгунам(мягко выражаясь)?

В вашем коде пусть копаются мухи и навозные жуки. У меня достаточно других интересных и полезных занятий.

 
Mihail Matkovskij:
"На воре и шапка горит" ?... Любой скачает исходники и повторит замеры, которые я представил выше! У вас же, одни претензии и недовольства. Придуманные, "битые ссылки" и тому подобное...

Я этого не говорил. И речь шла о выводе информации не в одну строку. Поэтому, для замеров я сделал дисплей для вывода большого количества строк.

Вывод в Лейблы оптимизирует чарт. В то время как в БитмапЛейбл нужно передавать массив пикселей, предварительно обновив его. В данном случае это заполнение массива пикселей и вывод текста в него. Все эти операции, при слишком частом их вызове, оказывают нагрузку на приложение. В то время, как для лейбла нужно передать всего лишь строку. Об этом уже говорилось выше.

Более подробно о скорости можно узнать с помощью сравнения замеров скорости работы CCanvas и лейблов в разных режимах: https://www.mql5.com/ru/forum/364640/page13#comment_21314045

Ну вообще, несгибаемая бессовестность и наглость.

 
В этом комменте цитата со ссылками. По этим ссылкам до сих пор можно скачать файл с классом, в котором нет поля limitFps, но к нему есть обращение. Еще скажи, что я сам "нарисовал" такие ссылки.
 
Alexey Viktorov:
  1. Вы на какой планете живёте? Где вы нашли такие правила? Приезжайте в любой автосервис и услышите всё, о том кто ремонтировал ваш автомобиль в прошлый раз. Даже если это был тот с кем вы сейчас разговариваете. И такое не только с автомобилями. Просто это самый наглядный пример.

Очевидно, мы на разных планетах, если следовать такой парадигме!...

Автомастерскую мне в пример приводит... :) Ну хоть настроение подняли с утра. :)

Alexey Viktorov:

Я предложил вам этот код в качестве примера...

Тогда, еще раз, спрашиваю, Канвас чем отличается? Он работает аналогично. Только нужные функции не выброшены, как у вас. Отличается, разве только тем, что это ООП, совсем другой уровень, а не ваше процедурное программирование. :)

Alexey Viktorov:

Все проверки и задержки загромождают код и такой код сложнее использовать в качестве примера.

Конечно, конечно... Загромождают... Вы и кодом как следует не владеете! На что, вероятно, последует отговорка: ну я же не программист... :) Только, беретесь других учить!... :)

Alexey Viktorov:

О какой оптимизации может идти речь, если советник не торговый? Какие параметры в нём оптимизировать?

Еще и в терминах запутался :) Я говорил об оптимизации частоты обновлений БитмапЛейбла. Которую вы не сделали и предлагали мне свой пример для использования в высоконагруженных процессах.

Alexey Viktorov:
  1. После отказа от моего предложения вам начал объяснять все тонкости Николай. Я всего лишь посоветовал посмотреть его тему о канвасе. На что вы солгали сказав что всё читали. Как вы хотите чтобы относились к лгунам(мягко выражаясь)?

В данном случае лгун это вы! Поскольку, я такого не говорил. Я сказал всего лишь, зачем мне ещё одна библиотека на основе Канваса. По сути, еще один Канвас. Вы предлагали мне тот же Канвас и он точно также работает. Объяснять что нужно делать, чтобы Канвас работал быстро в моей задаче у Николая не было желания. А у вас, очевидно, не было соответствующих знаний. Вы сказали Николаю "не тратьте время на него". Он сказал "согласен". Вот и всё объяснение ваше с Николаем. Программисты...

Alexey Viktorov:

В вашем коде пусть копаются мухи и навозные жуки. У меня достаточно других интересных и полезных занятий.

Не скажу, что ваша правда... Но в одном соглашусь. И вправду, не нужно. Зачем мне выводы дилетанта?... Лучше идите в автомастерскую...

Всё. Больше не буду давать вам столь развернутые ответы. Поскольку, это пустая трата времени. Лучше займусь чем-нибудь полезным!

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