Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
...
ЗЫ. Хотя, возможно, что процессор нагружает перерисовка. То есть рисование внутри массива пикселей. Иначе говоря, постоянная инициализация массива значениями, происходящая на высокой (16 мс) частоте таймера.
Нет, перерисовка процессор никак не нагружает, для него послать команду графическому драйверу - дело нескольких нано- или максимум микросекунд. Само рисование в видеопамяти, попиксельное, выполняют процессоры видеокарты, а их в ней обычно сотни и они работают одновременно с процессором, параллельно. Те есть процессор отдает команду графическому драйверу: выведи на экран в режиме CopyPut окружность с центром в экранных координатах Xc, Yc радиусом R. Для процессора это всего лишь вызов функции с передачей параметров. Дальше этого он не идет. Такие вызовы он делает не чаще, например, 2 раз в секунду, иначе пользователь просто ничего не разберет на экране, его нельзя дергать так часто. Для списка открытых сделок - сами представляете, может пройти и час, и сутки, и больше.
А уж алгоритм (гугл "Алгоритм Брезенхэма", например) попиксельной раскраски исполняет видеокарта, процессор на этом не задерживается. Исполняет также очень быстро. И.. один раз на вызов. Никакой переинициализации с частотой 16 мс не требуется, в видеопамяти образ экрана хранится постоянным до нового изменения по команде процессора. Мало того, для ускорения видимой реакции экрана видеопамять еще держат в двух экземплярах, изменения вносят на невидимом, после чего сразу переключают видеостраницу.
Если же в Вашем подходе к выводу на экран все же имеет место описываемая Вами "постоянная инициализация массива" пикселей - надо от нее избавляться, это не дело.
Нажмите, чтобы посмотреть.
На картинке что-то не так с данными в колонке Opening Time.
Нет, перерисовка процессор никак не нагружает, для него послать команду графическому драйверу - дело нескольких нано- или максимум микросекунд. Само рисование в видеопамяти, попиксельное, выполняют процессоры видеокарты, а их в ней обычно сотни и они работают одновременно с процессором, параллельно. Те есть процессор отдает команду графическому драйверу: выведи на экран в режиме CopyPut окружность с центром в экранных координатах Xc, Yc радиусом R. Для процессора это всего лишь вызов функции с передачей параметров. Дальше этого он не идет. Такие вызовы он делает не чаще, например, 2 раз в секунду, иначе пользователь просто ничего не разберет на экране, его нельзя дергать так часто. Для списка открытых сделок - сами представляете, может пройти и час, и сутки, и больше.
А уж алгоритм (гугл "Алгоритм Брезенхэма", например) попиксельной раскраски исполняет видеокарта, процессор на этом не задерживается. Исполняет также очень быстро. И.. один раз на вызов. Никакой переинициализации с частотой 16 мс не требуется, в видеопамяти образ экрана хранится постоянным до нового изменения по команде процессора. Мало того, для ускорения видимой реакции экрана видеопамять еще держат в двух экземплярах, изменения вносят на невидимом, после чего сразу переключают видеостраницу.
Если же в Вашем подходе к выводу на экран все же имеет место описываемая Вами "постоянная инициализация массива" пикселей - надо от нее избавляться, это не дело.
Ну нагородили...
Какая-то мешанина отрывочных знаний...
В итоге все не так...
Нет, перерисовка процессор никак не нагружает, для него послать команду графическому драйверу - дело нескольких нано- или максимум микросекунд. Само рисование в видеопамяти, попиксельное, выполняют процессоры видеокарты, а их в ней обычно сотни и они работают одновременно с процессором, параллельно. Те есть процессор отдает команду графическому драйверу: выведи на экран в режиме CopyPut окружность с центром в экранных координатах Xc, Yc радиусом R. Для процессора это всего лишь вызов функции с передачей параметров. Дальше этого он не идет. Такие вызовы он делает не чаще, например, 2 раз в секунду, иначе пользователь просто ничего не разберет на экране, его нельзя дергать так часто. Для списка открытых сделок - сами представляете, может пройти и час, и сутки, и больше.
А уж алгоритм (гугл "Алгоритм Брезенхэма", например) попиксельной раскраски исполняет видеокарта, процессор на этом не задерживается. Исполняет также очень быстро. И.. один раз на вызов. Никакой переинициализации с частотой 16 мс не требуется, в видеопамяти образ экрана хранится постоянным до нового изменения по команде процессора. Мало того, для ускорения видимой реакции экрана видеопамять еще держат в двух экземплярах, изменения вносят на невидимом, после чего сразу переключают видеостраницу.
Если же в Вашем подходе к выводу на экран все же имеет место описываемая Вами "постоянная инициализация массива" пикселей - надо от нее избавляться, это не дело.
У вас интересная теория, хотя она не совсем соответствуем результатам моих опытов, которые я сейчас выложу ниже.
Как показала проверка, именно инициализация массива пикселей нагружает процессор больше всего.
Проверьте тестовый советник ниже.
Должен признать, что результаты теста меня немного удивили.
И так, речь идет о постоянных вызовах функций на частоте 16 мс.
Оказывается, сильнее всего процессор нагружает именно инициализация массива пикселей при рисовании.
Но самым странным, оказалось, что переодический вызов функции
нагружает процессор на 10 - 15%.
Также, вызовы
нагружают на эти же 10 - 15%.
При этом, одновременные вызовы всех трех функций
Не приводят к складыванию нагрузки. Нагрузка по прежнему остается 10-15%.
Однако, если присовокупить к этим вызовам постоянный цикл переинициализации массива в миллион ячеек
то, нагрузка на процессор вырастает до 50%.
//-----------------------------------------------------------------------------------------------------------------------------------------------------
Сама функция
не нагружает процессор.
А функция
нагружает от 0 до 5 процентов, в зависимости от размера массива Arr[].
Вот тестовый советник. Нужно по-переменно комментировать строки и проверять нагрузку процессора в диспетчере задач.
Вот его код:
На картинке что-то не так с данными в колонке Opening Time.
Да. Я использовал TimeToStr(OrderOpenPrice(),TIME_MINUTES|TIME_SECONDS);
Не знаю, почему так.
Должен признать, что результаты теста меня немного удивили.
И так, речь идет о постоянных вызовах функций на частоте 16 мс.
Оказывается, сильнее всего процессор нагружает именно инициализация массива пикселей при рисовании.
Но самым странным, оказалось, что переодический вызов функции
нагружает процессор на 10 - 15%.
Также, вызовы
нагружают на эти же 10 - 15%.
При этом, одновременные вызовы всех трех функций
Не приводят к складыванию нагрузки. Нагрузка по прежнему остается 10-15%.
Однако, если присовокупить к этим вызовам постоянный цикл переинициализации массива в миллион ячеек
то, нагрузка на процессор вырастает до 50%.
//-----------------------------------------------------------------------------------------------------------------------------------------------------
Сама функция
не нагружает процессор.
А функция
нагружает от 0 до 5 процентов, в зависимости от размера массива Arr[].
Должен признать, что результаты теста меня немного удивили.
И так, речь идет о постоянных вызовах функций на частоте 16 мс.
Оказывается, сильнее всего процессор нагружает именно инициализация массива пикселей при рисовании.
Но самым странным, оказалось, что переодический вызов функции
нагружает процессор на 10 - 15%.
Также, вызовы
нагружают на эти же 10 - 15%.
При этом, одновременные вызовы всех трех функций
Не приводят к складыванию нагрузки. Нагрузка по прежнему остается 10-15%.
Однако, если присовокупить к этим вызовам постоянный цикл переинициализации массива в миллион ячеек
то, нагрузка на процессор вырастает до 50%.
//-----------------------------------------------------------------------------------------------------------------------------------------------------
Сама функция
не нагружает процессор.
А функция
нагружает от 0 до 5 процентов, в зависимости от размера массива Arr[].
Пётр, такое стойкое ощущение, что вы не слушаете ничего что вам отвечают на протяжении сотен страниц.
Перечитайте тему - там есть ответы на вопрос "почему так"
Да. Я использовал TimeToStr(OrderOpenPrice(),TIME_MINUTES|TIME_SECONDS);
Не знаю, почему так.
Потому что надо вместо OrderOpenPrice поставить OrderOpenTime()