Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];

Вниз

Про точные интервалы времени.....................   Найти похожие ветки 

 
Kettle of delphi   (2002-03-14 03:24) [0]

Здравствуйте.
Такой вопрос: Хоть примерно, сколько времени занимает вот эта команда: Label1.Caption := "!"; ?
Cколько примерно времени занимает вычисление синуса?

И почему в следующем коде:

procedure TForm1.Button4Click(Sender: TObject);
var PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
QueryPerformanceCounter(Preceding64);
QueryPerformanceCounter(Current64);
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);
Label5.Caption := FloatToStr(Preceding64);
Label8.Caption := FloatToStr(Current64);
Label11.Caption := FloatToStr(Current64 - Preceding64);
end;

(Current64 - Preceding64) дает 6 тактов счетчика, что есть, примерно, 5 микросекунд! - ?


 
Johnmen   (2002-03-14 09:49) [1]

>Cколько примерно времени занимает вычисление синуса?

0. если использовать бумагу и карандаш - то ок. 3 мин
1. если использовать счеты - то около 5 минут
2. если ЕС1022 - то около 1 мс
3. если IBM9370 - ок. 400 мкс

Считаю это полным ответом на все 3 вопроса !


 
Kettle of delphi   (2002-03-14 11:14) [2]

А приведенный код под ЕС1022 или IBM9370 тоже будет работать, после того, как установить на эти машины Delphi? :)

Если кто-то еще мыслит на столько же абстрактно, то поставлю вопрос так: сколько примерно времени будет вычисляться синус на компьютере с процессором:

1. Pentium 100,
2. Pentium II 300,
3. Pentium III 500,
4. Pentium III 1000,
5. Pentium IV 2 GGz?

и почему в приведенном коде директивы:
QueryPerformanceCounter(Preceding641);
QueryPerformanceCounter(Current64);

записанные ПОСЛЕДОВАТЕЛЬНО, дают значения счетчика, различающиеся на 5-6 тиков!?


 
Alx2   (2002-03-14 11:17) [3]

Рекомендую Intel VTune для замера скорострельности


 
wicked   (2002-03-14 11:40) [4]

а еще можно использовать RDTSC и делить на тактовую частоту... уж точно не ошибёшся...


 
Johnmen   (2002-03-14 11:50) [5]

>Kettle of delphi : Слава Богу не обиделся и понял правильно !
А на указанные машины можно поставить PASCAL !
Код будет совершенно другим !



 
Kettle of delphi   (2002-03-14 11:55) [6]

ВОТ ГЛАВНЫЙ ВОПРОС:

Почему директивы
QueryPerformanceCounter(Preceding641);
QueryPerformanceCounter(Current64);

записанные, как видно, ПОСЛЕДОВАТЕЛЬНО, дают значения счетчика, различающиеся на 5-6 тиков!?


 
Kettle of delphi   (2002-03-14 14:28) [7]

ааууу...


 
Alx2   (2002-03-14 14:36) [8]

Есть такая вещь, как прерывания... Отчасти это они виноваты


 
Алексей Петров   (2002-03-14 15:26) [9]

Вообще-то на выполнение QueryPerformanceCounter тоже нужно время, хоят и не большое.


 
MBo   (2002-03-14 15:33) [10]

Принцип неопределенности - нельзя произвести сколь угодно точные измерения, поскольку этим вносим возмущение в систему - и для процессорных квантов времени действует!


 
Kettle of delphi   (2002-03-14 16:23) [11]

Но неужели процессор Pentium III выполняет директиву QueryPerformanceCounter 4-6 микросекунд?

Предположим, требуется "выжать" из компьютера реакцию с частотой QueryPerformanceFrequency - т.е. меньше 1 микросекунды. Я понимаю, что ОС Windows для этого не приспособлена, но ведь есть теоретическая возможность! Мыслю так: Сделать программу, загрузить ее вместо Explorer.exe (через system.ini) с максимальным приоритетом. Кто-нибудь может посоветовать, на сколько реально работающим будет такой подход? Требуется обмениваться данными с интерфейсной платой на частоте миллион герц (т.е. ~ 1 микросекунда).

QNX приспособлена как раз для подобных целей. Но я не знаю, есть ли там средство разработки программ, базирующееся на языке Pascal?


 
MBo   (2002-03-14 16:42) [12]

Говорят, что GNU-сный Pascal (в исходниках) можно скомпилировать под QNX


 
wicked   (2002-03-14 17:07) [13]

2 MBo ©
по заявлению разработчиков free pascal можно перенести на любую платформу, где имеет место быть gnu c... правда, можно упереться в rtl...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
1-90816
Ольга
2002-03-13 13:33
2002.03.28
pascal


1-90915
Беляков Алексей
2002-03-18 14:48
2002.03.28
решатель задач математического программирования


1-90874
lipskiy
2002-03-16 16:40
2002.03.28
Как однозначно проверить, существует ли объект (создан ли, не испорчен ли)?


3-90760
Dimonka
2002-03-01 17:38
2002.03.28
Не работает запрос


1-90854
SlavaS
2002-03-16 21:35
2002.03.28
Неудаётся найти файл *.bpl





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский