Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2021, 17:39   #1
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 622
По умолчанию Немного о таймерах - ДЕйствительно ли это зависит от операционки?

Как-то проводил эксперимент. Ставил в программе два таймера:
Один каждые 10 единиц времени добавляет 10 к переменной А
Другой каждые 1000 единиц времени прибавляет 1000 к переменной В и сравнивает значения А и В

И получил любопытный итог:
На компьютере с "десяткой" переменная В росла быстрее переменной А где-то на 20-30%
А вот на компьютере с ХР переменные А и В в моменты замера имели равное значение (или почти равные, с одинаковой погрешностью)

Версия Делфи - Делфи 7

Вопросы:
1. ДЕйствительно ли это зависит от операционки?
2. На что еще влияет операционка в программах на Делфи 7
Kronos913 вне форума Ответить с цитированием
Старый 01.09.2021, 18:24   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

эээ... ну как бы винда это система нереального времени. Так по умолчанию не гарантируется синхронность с часами вселенной.

Тут вопрос в другом. К чему вам такая точность??
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 01.09.2021, 19:25   #3
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Как-то проводил эксперимент. Ставил в программе два таймера:
Наука не терпит сослагательных наклонений. Нудны четкие данные.

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
Вопросы:
1. ДЕйствительно ли это зависит от операционки?
Я ставил эксперименты при других условиях. Но мы видим что связь с опперационкой есть.
Сделано это с целью энергосбережения притормозить основной поток.

Это не только от ОС зависит.
1) Это зависит от загруженности процессора если много потоков, то ОС начинает терять пропускать сообщения таймера.
2) Это зависит от количество ядер процессора. Если 1 ядро то используются одни алгоритмы планирования исполнения программ. Если 2 и более ядра то другие алгоритмы планирования.
3)Счетчик тактов TSC может идти в 2 раза медленее под виртуальной машиной. Плюс еще гипер-визор Hen. Вернее счетчик TSC идет неравномерно вначале медленно потом скачками нагоняет. Потом снова медленно.

Цитата:
Сообщение от Kronos913 Посмотреть сообщение
2. На что еще влияет операционка в программах на Делфи 7
На размеры формы. Там под DPI идет масштабирование. Правда это настраивается манифестами.
Еще на TRichEdit и TMemo они основаны на виндовых контралах там меняется от ОС к ОС версия.
Там глубинные свойства меняются. На Win98 у них 65536 строк максимум а далее уже лимит снят.

В семействе ОС виндоусе 3 версии юникода. Там различия в наборе символов и смены кодирования UCS2 -> UTF16
.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 02.09.2021, 12:02   #4
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 622
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Тут вопрос в другом. К чему вам такая точность??
Тут вопрос в механизме реализации реал-тайм игры: каждые 20 единиц времени программа совершает какие-то действия

И ощутимая разница выходит, когда 20 единиц времени - это 20 мс, или когда это получается 27-28 мс - все становится ощутимо медленнее

Как я понял, на ХР таймер новых 20 единиц времени запускатеся сразу. А на 10ке сначала программа выполнит код описанный в процедуре таймера, это займет какое-то время, а потом запускает отсчет
Kronos913 вне форума Ответить с цитированием
Старый 02.09.2021, 12:04   #5
Kronos913
Форумчанин
 
Регистрация: 10.02.2021
Сообщений: 622
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
3)Счетчик тактов TSC может идти в 2 раза медленее под виртуальной машиной..
Это делалось без виртуалки, на разных ноутах - на Космио 2014го года и на Сателите 2002го года
Kronos913 вне форума Ответить с цитированием
Старый 02.09.2021, 15:15   #6
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,814
По умолчанию

а для пущего интереса на той же XP и 10 попробуй запустить не стандартный компонент TTimer, а WinAPI:
Код:
wm_Create://при создании формы
   begin
      SetTimer(wnd,1,100,nil);//установка таймера
   end;
   wm_Timer://что таймер делает
   begin
  //вот тут твои математические действия 
  end;
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
командный процессор для операционки papus5 Фриланс 25 21.05.2015 07:47
2 Операционки не видит. Wodes Операционные системы общие вопросы 4 25.05.2010 20:04
Конфликт операционки и антивируса firelove77 Операционные системы общие вопросы 22 15.10.2009 09:36
Выбор операционки для веб сервера iankov Операционные системы общие вопросы 6 25.09.2009 14:00
Как поставить две операционки Windows и Mac oc X veter_s_morya Свободное общение 15 07.09.2009 12:20