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