Oberon space
General Category => Общий раздел => Тема начата: valexey_u от Май 10, 2013, 02:50:51 pm
-
Задача - хотя бы 60 (а лучше 100) раз в секунду что-то там делать. Services.DoLater как оказалось очень слоупочна - максимум получается 16 раз в секунду.
Тестировал так:
MODULE BackgroundAction;
IMPORT StdLog, Services, Kernel;
TYPE
Action = POINTER TO RECORD (Services.Action) END;
VAR
count : INTEGER;
begin : LONGINT;
action : Action;
PROCEDURE (a: Action) Do;
BEGIN
INC(count);
IF count = 1000 THEN
StdLog.Real((Kernel.Time() - begin)/1000);
StdLog.Ln;
StdLog.Real(1000/((Kernel.Time() - begin)/1000));
StdLog.Ln;
ELSE
Services.DoLater(a,Services.now);
END
END Do;
PROCEDURE Start*;
BEGIN
count := 0;
NEW(action);
begin := Kernel.Time();
Services.DoLater(action,Services.now);
END Start;
BEGIN
END BackgroundAction.
-
Зачем отвечать, ведь мы уже знаем итог этого треда.
-
Где же пиздизер, почему он до сих пор не написал правильный ответ?
-
Зачем отвечать, ведь мы уже знаем итог этого треда.
Не знаешь что сказать по делу - лучше промолчи.
-
Зачем отвечать, ведь мы уже знаем итог этого треда.
Не знаешь что сказать по делу - лучше промолчи.
нехорошо, Алексей, зверушка пришла покакать.. а вы ей запрещаете.. негуманно это (разорвать же может).. и противоречит правилам форума...
-
Зачем отвечать, ведь мы уже знаем итог этого треда.
Не знаешь что сказать по делу - лучше промолчи.
нехорошо, Алексей, зверушка пришла покакать.. а вы ей запрещаете.. негуманно это (разорвать же может).. и противоречит правилам форума...
Я запрещаю также как может запретить любой на форуме. Это правилам не противоречит.
-
the "Action" topic has been discussed on oberoncore for a long time,you'd better make a search in it!
-
Зачем отвечать, ведь мы уже знаем итог этого треда.
Не знаешь что сказать по делу - лучше промолчи.
Бгг. Ограничиваешь свободу слова, нехорошо это. Непоследовательно.
Олсо я просто не палю ответ.
-
Зачем отвечать, ведь мы уже знаем итог этого треда.
Не знаешь что сказать по делу - лучше промолчи.
Ай-яй-яй! Это что, цензура? Попытка навести модераторский шухер? o_O Того и гляди до банхаммера дело дойдёт )))
Алексей, ну труЪ-оберонщики они же такие, им бы лишь бы полаять. Так что ничего другого и ожидать от них не приходится )))
-
По количеству многоточий в посте, пиздизер почти догнал девочек с ОБВМ.
-
По количеству многоточий в посте, пиздизер почти догнал девочек с ОБВМ.
а еще ведь не вечер ;)
-
Алексей, ну труЪ-оберонщики они же такие, им бы лишь бы полаять. Так что ничего другого и ожидать от них не приходится )))
Омг, ведь получается, что оберспейс и есть пристанище труЪ-оберонщиков.
А расчеловечивание это их (то есть, ваша) отличительная черта. Слишком мейнстримная, в любом случае.
-
the "Action" topic has been discussed on oberoncore for a long time,you'd better make a search in it!
I have already searched, and found this topic: http://forum.oberoncore.ru/viewtopic.php?f=23&t=1426
But I did not found topic about DoLater max frequency. I need more then 30 Hz (60 or 100) actions Do call.
-
Уже три профессианала фтреди, а до сих пор нет ответа.
Плохо быть оберспейсером.
-
Ай-яй-яй! Это что, цензура? Попытка навести модераторский шухер? o_O Того и гляди до банхаммера дело дойдёт )))
Алексей, ну труЪ-оберонщики они же такие, им бы лишь бы полаять. Так что ничего другого и ожидать от них не приходится )))
да нет же, Евгений, все не так - они все страшно занятые люди... трудятся на благо человечества , но иногда хочется посрать.. (натура у них такая) - а правила конюшни жестоки - прилюдно срать разрешается только избранным.. вот и лезут те кому сильно невтерпеж (гопники вроде акапета и мохнорыла)
-
да нет же, Евгений, все не так - они все страшно занятые люди... трудятся на благо человечества , но иногда хочется посрать.. (натура у них такая) - а правила конюшни жестоки - прилюдно срать разрешается только избранным.. вот и лезут те кому сильно невтерпеж (гопники вроде акапета и мохнорыла)
Что-то я сомневаюсь, что kkk -- это Петруха. Разве Петруха писал программы на Яве? Он же вроде убеждённый оберонщег в отличие от kkk...
-
дети оберспейса сетуют на срач.
больной безумный мир.
-
да нет же, Евгений, все не так - они все страшно занятые люди... трудятся на благо человечества , но иногда хочется посрать.. (натура у них такая) - а правила конюшни жестоки - прилюдно срать разрешается только избранным.. вот и лезут те кому сильно невтерпеж (гопники вроде акапета и мохнорыла)
Что-то я сомневаюсь, что kkk -- это Петруха. Разве Петруха писал программы на Яве? Он же вроде убеждённый оберонщег в отличие от kkk...
Э... нет Петруха... это не имя - это ПРИЗВАНИЕ
-
Может, когда профессионалы закончат друг другу отлизывать, мы узнаем ответ на вопрос веселовского :)
А может, на хабре спросить, там точно ответят.
-
Может, когда профессионалы закончат друг другу отлизывать, мы узнаем ответ на вопрос веселовского :)
А может, на хабре спросить, там точно ответят.
может быть.. а что нетерпеж?
-
Странно -- новолуние же.
Наверное это всё же весна так действует на kkk и Олега (когда тот тут появляется изредка) )))
-
HostMenus.idlePeriod =50 (*ms*),you can change it,compile.. test again ):
-
Странно -- новолуние же.
Наверное это всё же весна так действует на kkk и Олега (когда тот тут появляется изредка) )))
боюсь что и здесь вы ошиблись - биология , Евгений, биология организма.. :D
-
Странно -- новолуние же.
Наверное это всё же весна так действует на kkk и Олега (когда тот тут появляется изредка) )))
Да на оберспейсе психолухи-профессионалы орудуют.
Применяют психологику без лицензии.
-
Странно -- новолуние же.
Наверное это всё же весна так действует на kkk и Олега (когда тот тут появляется изредка) )))
Да на оберспейсе психолухи-профессионалы орудуют.
Применяют психологику без лицензии.
вот видите, Евгений, абсолютно корректный вам ответ, пациента (после консультации у проктолога)- учитесь!!! :)
-
HostMenus.idlePeriod =50 (*ms*),you can change it,compile.. test again ):
Wow! It works! Thanks!
-
HostMenus.idlePeriod =50 (*ms*),you can change it,compile.. test again ):
Wow! It works! Thanks!
Or we can just setup new windows timer, without recompiling HostMenus:
res := WinApi.SetTimer(HostWindows.main, 1, newIdlePeriod, NIL);
This is platform dependent hack, but it works :-)
Or we can add to HostMenus new function for setting new idle period.
-
>Or We can Add to HostMenus New function for setting New Idle period.
for what reason? if you need a quick action, you'd better set a new timer2 with short period(<50),and
handle it in HostMenus.ApplWinHandler, and move Services.actionHook.Step; form HostWindows.Idle to it.
-
Слава китайцам! Слава КПК!! Слава КПСС!!! ))
-
>Or We can Add to HostMenus New function for setting New Idle period.
for what reason? if you need a quick action, you'd better set a new timer2 with short period(<50),and
handle it in HostMenus.ApplWinHandler, and move Services.actionHook.Step; form HostWindows.Idle to it.
And I need to remove Services.actionHook.Step; from HostWindows.Idle? (change and recompile HostWindows module)
-
>Or We can Add to HostMenus New function for setting New Idle period.
for what reason? if you need a quick action, you'd better set a new timer2 with short period(<50),and
handle it in HostMenus.ApplWinHandler, and move Services.actionHook.Step; form HostWindows.Idle to it.
And I need to remove Services.actionHook.Step; from HostWindows.Idle? (change and recompile HostWindows module)
Oh, sorry. Ofcource right answer is "No".
But still need to use directly Win32 API, does it?
-
Профессионалы итт ожидаемо нихуя не предложили.
So pathetic oberspace, leave it, maliya, here is nobody to have conversation with, only trolls and oberon haters.
-
the BB has only a time1 which control caret flip, window update,actions.step ...etc,if you set a short period for it, the whole framework will update quickly...,that is not you wanted, so handling actions.step alone would be suitable. but I dont known your actual work's target , so it is only a suggestion.
-
Профессионалы итт ожидаемо нихуя не предложили.
So pathetic oberspace, leave it, maliya, here is nobody to have conversation with, only trolls and oberon haters.
гыыыы... ;D что меня забавляет в дураках, так это их предсказуемость.
-
the BB has only a time1 which control caret flip, window update,actions.step ...etc,if you set a short period for it, the whole framework will update quickly...,that is not you wanted, so handling actions.step alone would be suitable. but I dont known your actual work's target , so it is only a suggestion.
My target is 30..60 fps for picture animation.
-
Профессионалы итт ожидаемо нихуя не предложили.
Почему же? vlad предложил. И это тоже сработало.
Кстати, а в BB есть полнотекстовый поиск по исходникам? Тот что в доке ищет исключительно по докам.
-
you can send me a demo source, I can change myBB modules and test, and give a result to you
-
you can send me a demo source, I can change myBB modules and test, and give a result to you
ok. May be tomorrow. (I must complete it)
-
valexey, поиск в меню info
-
valexey, поиск в меню info
Нашел, спасибо.
-
valexey,
HostMenus add:
......
VAR newPeroid:INTEGER;
.....
PROCEDURE SetPeriod*(period:INTEGER);
VAR res:INTEGER;
BEGIN
res := WinApi.SetTimer(HostWindows.main, 1, period , NIL);
newPeroid :=period;
END SetPeriod;
PROCEDURE PeroidGuard* (period: INTEGER; VAR par: Dialog.Par);
BEGIN
IF newPeroid = period THEN par.checked:=TRUE
ELSE par.checked:=FALSE;
END;
END PeroidGuard;
PROCEDURE Init;
.......
newPeroid :=idlePeriod;
END Init;
compile it.
add a Test\Rsrc\menus.odc
MENU "TimerPeriod"
"10" "" "HostMenus.SetPeriod(10)" "HostMenus.PeroidGuard(10)"
"20" "" "HostMenus.SetPeriod(20)" "HostMenus.PeroidGuard(20)"
"30" "" "HostMenus.SetPeriod(30)" "HostMenus.PeroidGuard(30)"
"40" "" "HostMenus.SetPeriod(40)" "HostMenus.PeroidGuard(40)"
"50" "" "HostMenus.SetPeriod(50)" "HostMenus.PeroidGuard(50)"
END
and select a peroid from menu, test you code !
PS: no need change other code, I have a panic for the caret flip ):