Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26061
Рейтинг: 2120
#91: 2008-02-05 22:40:00 ЛС | профиль | цитата
У меня еще интереснее -- Запускаю 10 спрайтов вижу ~1300мкс. Торможу" с минутку, и... вижу ~1600мкс (выше 1700 в пиках, ну никак), но зато загрузка тормозами достигает ~ 42%. При выключении тормоза, через 5 сек возвратилось на старое значение.
А ось у меня WinXP SP2+.
карма: 22

0
Ответов: 2125
Рейтинг: 159
#92: 2008-02-06 00:10:33 ЛС | профиль | цитата
Galkov писал(а):
Сколько весит вычислительный процесс рисования 10 спрайтов

Очень просто засекается при помощи QueryPerformanceCounter, вплоть до микросекунд.
------------ Дoбавленo:

Вот, типа

Add(InlineCode,9562856,203,154)
{
WorkPoints=#7:doStart|6:doStop|
EventPoints=#6:onStop|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses kol,Share,Debug,Windows;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|16: FTime:int64;|9: public|21: onStop:THI_Event;|51: procedure doStart(var _Data:TData; Index:word);|50: procedure doStop(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|30:procedure THiAsmClass.doStart;|5:begin|33: QueryPerformanceCounter(FTime);|4:end;|0:|29:procedure THiAsmClass.doStop;|30:var curTime:int64; freq:int64;|5:begin|35: QueryPerformanceCounter(curTime);|34: QueryPerformanceFrequency(freq);|29: curTime := curTime - FTime;|39: _hi_OnEvent(onStop,curTime*1E6/freq);|4:end;|0:|4:end.|
}
карма: 1

0
Ответов: 9906
Рейтинг: 351
#93: 2008-02-06 09:24:50 ЛС | профиль | цитата
nesco писал(а):
но зато загрузка тормозами достигает ~ 42%

Ну вот, и тебя заставили посмотреть как одно и то же, показывает разное

tsdima писал(а):
Очень просто засекается при помощи QueryPerformanceCounter, вплоть до микросекунд

Во-первых: обижаешь, начальник! именно так и измеряем (для этого TimeCounter и апдэйтился)
Во-вторых: вопрос-то в том и заключается, что именно так просто и засекаются ДВА РАЗНЫХ времени (и у меня они в два раза и отличаются)

При этом, оснований не верить (кому-то не верить все-таки надо) QueryPerformanceCounter пока - никаких
Ибо он же, засекая ДВА РАЗНЫХ времени для рисования, засекает ОДНО и то же время (~31200) для срабатывания таймера
Измерение сейчас делаю так (только скелет, для понимания происходящего)

#sha
Add(HubEx,2099003,336,147)
{
link(onEvent,7632369:doOperation,[])
}
Add(MultiElementEx,13068662,413,140)
{
@Hint=#33:Мультик рисования одного спрайта:|24:1) Восстановили контекст|17:2) Вызвали onNext|21:3) Запомнили контекст|17:4) Вызвали onDraw|
Mode=1
link(onNext,2099003:doWork1,[(454,146)(454,128)(340,128)])
}
BEGIN_SDK
Add(EditMultiEx,16384433,21,21)
{
WorkCount=#5:##add|9:doRestore|8:##select|
EventCount=#6:onNext|6:onDraw|
VarCount=#12:##eventIndex|
DataCount=#6:Bitmap|
Width=328
Height=235
Point(##add)
Point(##select)
Point(##eventIndex)
}
END_SDK
Add(For,3890925,231,140)
{
Start=1
End=10
link(onEvent,13068662:##add,[])
link(onStop,2228537:doTimer,[])
}
Add(Math,7632369,357,154)
{
Op1=1
ResultType=0
link(onResult,13068662:##select,[])
link(Op2,13068662:##eventIndex,[(370,142)(400,142)(400,185)(419,185)])
}
Add(MultiElementEx,2228537,286,147)
{
@Hint=#31:Здесь находится таймер спрайтов|
link(onTimer,2099003:doWork2,[])
}
BEGIN_SDK
Add(EditMultiEx,3131021,21,21)
{
WorkCount=#7:doTimer|
EventCount=#9:onRefresh|7:onTimer|11:onPrintTime|
Width=461
Height=123
link(doTimer,5917510:doEvent1,[(21,41)])
}
Add(Timer,11843383,98,63)
{
@Hint=#26:Это и есть таймер спрайтов|
Interval=30
Enable=1
Point(onStop)
MakeExt(Interval,,Interval)
link(onTimer,11982423:doEvent1,[])
}
Add(TimeCounter,11788576,329,56)
{
Precision=1
link(onStart,3131021:onTimer,[(373,62)(373,34)])
link(onStop,7366974:doCalc,[])
}
Add(Hub,11982423,147,63)
{
OutCount=3
link(onEvent1,16306869:doStop,[])
link(onEvent2,3131021:onRefresh,[(188,76)(188,27)])
link(onEvent3,11788576:doStop,[(317,83)(317,69)])
}
Add(HubEx,3917276,245,49)
{
link(onEvent,16306869:doStart,[])
}
Add(FormatStr,15279319,427,63)
{
Mask="%1 / %2 "
link(onFString,3131021:onPrintTime,[(482,69)])
link(Str2,12420885:Result,[(440,51)(418,51)(418,104)(209,104)])
}
Add(MathParse,12420885,203,56)
{
DataCount=1
MathStr="(%0*9 + %1)/10"
ResultType=0
@IsLib=True
link(onResult,3917276:doWork2,[])
}
Add(TimeCounter,16306869,266,56)
{
Precision=1
link(onStart,11788576:doStart,[])
link(onStop,12420885:doCalc,[(309,69)(309,49)(194,49)(194,62)])
}
Add(Hub,5917510,42,35)
{
link(onEvent1,3917276:doWork1,[(249,41)])
link(onEvent2,11843383:doTimer,[(85,48)(85,69)])
}
Add(MathParse,7366974,378,63)
{
elink(12420885)
link(onResult,15279319:doString,[])
}
END_SDK
карма: 9

1
Голосовали:Konst
Ответов: 5227
Рейтинг: 586
#94: 2008-02-14 17:58:09 ЛС | профиль | цитата
Вертикальная регулировка с TrackBar - начинающим может пригодиться

code_2134.txt
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
файлы: 1code_2134.txt [600B] [836]
Ответов: 3851
Рейтинг: 159
#95: 2008-02-26 15:22:37 ЛС | профиль | цитата
Преобразование табличных данных в TreeView на примере списка музыкальных композиций
code_8487.txt
карма: 0
начавший
0
файлы: 1code_8487.txt [3.8KB] [535]
Ответов: 5227
Рейтинг: 586
#96: 2008-02-26 15:44:37 ЛС | профиль | цитата
не рабочий пример...
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 3851
Рейтинг: 159
#97: 2008-02-26 18:04:31 ЛС | профиль | цитата
прошу подробности, ибо - у меня работает.
карма: 0
начавший
0
Гость
Ответов: 17029
Рейтинг: 0
#98: 2008-02-26 19:06:51 правка | ЛС | профиль | цитата


Редактировалось 4 раз(а), последний 2021-05-21 05:16:13
карма: 0

0
Ответов: 3851
Рейтинг: 159
#99: 2008-02-26 19:28:26 ЛС | профиль | цитата
Валерий, третий раз скачал её с форума сам - всё работает.
На всякий случай выкладываю ещё раз code_2142.txt
удалить никогда не поздно
карма: 0
начавший
0
файлы: 1code_2142.txt [4KB] [592]
Гость
Ответов: 17029
Рейтинг: 0
#100: 2008-02-26 20:00:50 правка | ЛС | профиль | цитата


Редактировалось 6 раз(а), последний 2022-04-03 07:57:15
карма: 0

0
Ответов: 1305
Рейтинг: 29
#101: 2008-02-26 20:09:10 ЛС | профиль | цитата
Валерий писал(а):
Только не пойму, почему у меня рейтинг и количество вопросов в профиле стало = 0

Залогиниться не забыл?
карма: 0

0
Ответов: 8886
Рейтинг: 823
#102: 2008-02-26 20:19:24 ЛС | профиль | цитата
Андрей., кстати, Вы бы на правах создателя чистили эту ветку от обсуждений (после их окончания), оставляя только ЭТЮДЫ
карма: 19

0
Ответов: 5227
Рейтинг: 586
#103: 2008-02-26 20:25:59 ЛС | профиль | цитата
да уж
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 3851
Рейтинг: 159
#104: 2008-02-26 22:22:27 ЛС | профиль | цитата
Леонид, во первых у меня правов не хватает, а во вторых - голубая моя мечта, чтобы "только ЭТЮДЫ" перекочевали в tutorial дистрибутива, в качестве примеров использования элементов (см. первое сообщение темы), это и будет самой лучшей чисткой (правда на это нужно время)..
карма: 0
начавший
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#105: 2008-02-26 23:31:19 ЛС | профиль | цитата
Андрей. писал(а):
чтобы "только ЭТЮДЫ"
После очень хорошего отсева. У меня тоже для Exampl'ов столько примеров накопилось, да и сам бы Example доделать неплохо бы.
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)