MAV писал(а):
Итог быстродействие IC равно FTCG.Только, если и входной тип привести к рабочему типу
------------ Дoбавленo в 14.55:
Tad писал(а):
Всё бы было ничего если бы FTCG не мудрил с val6 := int2str(1);Я показал, как это убрать
------------ Дoбавленo в 15.00:
Tad, вот FTCG, который работает со скоростью IC
Add(FTCG_Tools,1744119,511,476)
{
}
BEGIN_SDK
Add(EditMultiEx,1754439,21,21)
{
WorkCount=#9:doCompare|
EventCount=#11:onEventData|
VarCount=#5:Value|
Width=622
Height=375
link(doCompare,1251345:doFor,[(63,27)(63,139)])
link(Value,6936366:Value,[(27,263)(503,263)])
}
Add(FT_If_else,7947835,294,140)
{
Type=4
Op2=Integer(11)
link(onTrue,336565:doCompare,[])
}
Add(FT_If_else,336565,350,140)
{
Type=3
Op2=Integer(16)
link(onTrue,16236819:doData,[])
}
Add(FT_If_else,10995659,224,133)
{
Op2=Integer(17)
link(onTrue,16006813:doData,[(282,139)(282,97)])
link(onFalse,7947835:doCompare,[])
}
Add(FT_DoData,16236819,413,140)
{
Data=Integer(0)
link(onEventData,13868993:doWork2,[])
}
Add(FT_DoData,16006813,413,91)
{
Data=Integer(1)
link(onEventData,13868993:doWork1,[(467,97)])
}
Add(HubEx,13868993,463,140)
{
link(onEvent,6936366:doValue,[])
}
Add(FT_Memory,6936366,497,140)
{
Default=Integer(0)
}
Add(FT_For,1251345,105,133)
{
End=100000
Start=1
link(onEvent,3272968:doFor,[])
link(onStop,1754439:onEventData,[(154,146)(154,27)])
}
Add(FT_For,3272968,168,133)
{
End=18
Start=1
link(onEvent,10995659:doCompare,[])
}
END_SDK
И вот его код
procedure TClassFTCG_Tools_1A893F0.event_doCompare(var Data:TData; index:word);
var
i1:integer;
i2:integer;
begin
for i1 := 1 to 100000 do
begin
for i2 := 1 to 18 do
begin
if i2 = 17 then
begin
val5 := 1;
end
else if((i2 >= 11) and (i2 <= 16) )then
begin
val5 := 0;
end;
end;
end;
_hi_onEvent(THIFTCG_Tools(FParent).Events[0]);
end;
Вывод: login-y срочно работать над оптимизацией своего кода
PS Заключение -- FTCG может делать хороший код, но надо знать, как это делать