Вверх ↑
Ответов: 704
Рейтинг: 7
#1: 2011-10-22 15:09:28 ЛС | профиль | цитата
1nd1g0 писал(а):
IRL
с уважением и восторгом присвистнул... Но чувствую и MicroSoft без вас не обошлась
И постить сюда все подряд ошибки мне неудобно - я же деньги за это не плачу. Постараюсь сам разгрести, тем более, Вы подробно рассказали мне способ HiAsm-кунг-фу
Схема моего теста ниже. Топорно, но быстро.


Add(MainForm,2953706,21,105)
{
Width=487
Height=152
}
Add(MultiElementEx,415504,609,210)
{
Mode=2
link(text,6608155:doWork1,[(711,216)])
link(exit,209138:doWork1,[(653,223)(653,249)(508,249)])
}
BEGIN_SDK
Add(EditMultiEx,1041487,21,21)
{
WorkCount=#2:do|
EventCount=#4:text|4:exit|
link(do,16167708:doFor,[(39,27)(39,83)])
}
Add(For,16167708,56,77)
{
End=100
link(onEvent,6167415:doStrCat,[])
link(onStop,1041487:exit,[(204,90)(204,34)])
}
Add(StrCat,6167415,105,77)
{
link(onStrCat,1041487:text,[(229,83)(229,27)])
link(Str2,6167415:Result,[(118,65)(114,65)(114,121)(111,121)])
}
END_SDK
Add(TimeCounter,3294057,357,294)
{
link(onStop,6604442:doOperation,[])
}
Add(Button,8165898,210,196)
{
Left=10
Top=10
Caption="Тест"
link(onClick,8225656:doFor,[])
}
Add(MultiElement,5569931,329,196)
{
@Hint=#29:Новый поток с теми же данными|
@Color=0
link(onEvent1,9380117:doWork2,[])
}
BEGIN_SDK
Add(EditMulti,5876466,21,21)
{
EventCount=1
WorkCount=1
Width=258
Height=179
link(doWork1,5953483:doSafeMode,[(53,27)(53,34)])
}
Add(StackEx,5867886,161,28)
{
StackType=0
Point(Count)
Point(onEmpty)
link(onPop,11913767:doEvent1,[])
}
Add(Thread,4169880,84,154)
{
Delay=25
link(onExec,7077563:doCompare,[])
}
Add(Timer,818394,35,154)
{
Interval=50
AutoStop=1
link(onTimer,4169880:doStart,[])
}
Add(Hub,11913767,203,35)
{
OutCount=3
link(onEvent1,16252863:doData,[(229,41)(229,76)(79,76)(79,111)])
link(onEvent2,5876466:onEvent1,[(234,48)(234,27)])
link(onEvent3,7560382:doClear,[(229,55)(229,87)(128,87)(128,118)])
}
Add(Memory,7560382,140,105)
{
Default=Integer(1)
}
Add(Memory,3987989,182,105)
{
Default=Integer(1)
}
Add(If_else,7077563,175,154)
{
link(onTrue,5867886:doPop,[(219,160)(219,100)(149,100)(149,41)])
link(Op1,7560382:Value,[(181,146)(146,146)])
link(Op2,3987989:Value,[])
}
Add(DoData,16252863,91,105)
{
Data=Integer(2)
link(onEventData,7560382:doValue,[])
}
Add(SafeMode,5953483,105,28)
{
Name="3"
link(onSafeMode,5867886:doPush,[])
}
END_SDK
Add(For,8225656,259,196)
{
End=19
link(onEvent,5569931:doWork1,[])
}
Add(Label,1938024,763,259)
{
Left=15
Top=65
Width=405
}
Add(Hub,9084842,406,196)
{
OutCount=3
link(onEvent1,3294057:doStart,[(432,202)(432,251)(345,251)(345,300)])
link(onEvent2,13416350:doWork,[(434,209)(434,188)])
link(onEvent3,7393862:doWork,[])
}
Add(Math,6604442,406,301)
{
link(onResult,6378205:doText,[])
link(Op2,6604442:Result,[(419,289)(415,289)(415,345)(412,345)])
}
Add(Label,6378205,448,301)
{
Left=165
Top=95
Width=4
Height=4
Caption=""
}
Add(For,9172687,602,259)
{
End=100
link(onEvent,5397307:doStrCat,[])
link(onStop,209138:doWork2,[(646,272)(646,279)])
}
Add(StrCat,5397307,651,259)
{
link(onStrCat,6608155:doWork2,[])
link(Str2,5397307:Result,[(664,247)(660,247)(660,303)(657,303)])
}
Add(HubEx,9380117,383,196)
{
link(onEvent,9084842:doEvent1,[])
}
Add(HubEx,6608155,707,259)
{
link(onEvent,11446444:doEvent1,[(724,265)(724,286)])
}
Add(HubEx,209138,504,273)
{
Angle=2
link(onEvent,3294057:doStop,[(345,279)(345,307)])
}
Add(Check,7393862,448,210)
{
Caption="Через мультик"
link(onEvent,415504:do,[])
}
Add(Check,13416350,448,182)
{
Check=1
Caption="В систменом потоке"
link(onEvent,9172687:doFor,[(587,188)(587,265)])
}
Add(Label,10730459,252,147)
{
Left=85
Top=95
Width=79
Height=17
Caption="Выполнено за:"
}
Add(Label,1609889,602,329)
{
Left=370
Top=15
}
Add(CounterEx,1164901,560,329)
{
Max=1000000
link(onNext,1609889:doText,[])
}
Add(Hub,11446444,735,280)
{
link(onEvent1,1938024:doText,[(756,286)(756,265)])
link(onEvent2,1164901:doNext,[(754,293)(754,304)(548,304)(548,335)])
}



Брал за тест строковую операцию, т.к. с ними чаще работаю и именно они у меня тупят чаще
------------ Дoбавленo в 15.09:
У меня разница по скорости в 2 раза на этой схеме. Если убрать стек - еще быстрее будет, но пока не от всех стеков могу избавиться в основной программе.
карма: 0

0