Вверх ↑
Разработчик
Ответов: 4698
Рейтинг: 426
#1: 2014-06-09 12:01:45 ЛС | профиль | цитата
Galkov писал(а):
Получается, что нам надо сделать (выделить из него нужные шматочки, и заменить на свои) мультиплатформенный FastMathParser...

Ну, не совсем, изначальная идея была все же в увеличении производительности, а это уже как приятный бонус.
Galkov писал(а):
В моем понимании - тупиковое это направление, всякие там байт-коды

По-хорошему, да, надо компилить всегда в код целевого процессора, но по ряду причин, таких как незнание ассемблера на достаточном уровне, сложность реализации мультиплатформенности, сумасшедшая поддержка всего этого дела потом,... Поэтому байт-код показался для меня приемлемым вариантом: и производительность ощутимо возрастет, и реализовывать/поддерживать байт-код проще.
Galkov писал(а):
Мнение - ну быстрее должно быть. Если код грамотно писать, конечно же.
Galkov писал(а):
Нужны будут помощь и консультации - да пожалуйста.

Если найдется свободная минутка, буду признателен за общий осмотр кода. В основе у меня все так же лежит парсер от MathParse и многие части кода просто подстроены под окружение ВМ.
Galkov писал(а):
достаточно здоровья для поддержки такой техники

Да она в принципе не сложная, если вечером посидеть, то времени должно хватить и на просмотр фильма.
------------ Дoбавленo в 12.01:
Интересные результаты однако

Add(Button,2913659,168,462)
{
Left=155
Top=10
Caption="Test2"
link(onClick,12093841:doEvent1,[])
}
Add(Label,8109926,343,511)
{
Left=320
Top=10
Width=10
Height=17
Caption="0"
}
Add(Label,3091122,343,651)
{
Left=320
Top=30
Width=10
Height=17
Caption="0"
}
Add(Label,15258225,343,805)
{
Left=320
Top=50
Width=10
Height=17
Caption="0"
}
Add(MathParseEx,10679677,588,462)
{
DataCount=4
MathStr="%2*%1^2 + %3*%1 + %4"
link(X1,161968:Var3,[(594,450)])
link(X2,5062901:Var3,[(601,443)])
link(X3,5695714:Var3,[(608,436)])
link(X4,5126503:Var3,[(615,429)])
AddHint(1,40,129,13,MathStr)
}
Add(VisualStrings,148062,434,399)
{
Lines=#1:2|
}
Add(VisualStrings,16148217,476,399)
{
Lines=#1:3|
}
Add(VisualStrings,8135429,518,399)
{
Lines=#1:4|
}
Add(VisualStrings,9697363,392,399)
{
Lines=#2:20|
}
Add(For,4276286,343,462)
{
End=100000
link(onEvent,10679677:doCalc,[])
link(onStop,16370378:doStop,[(387,475)(387,456)(274,456)(274,475)])
AddHint(-20,-62,51,13,End)
}
Add(TimeCounter,16370378,287,462)
{
link(onStart,4276286:doFor,[])
link(onStop,8109926:doText,[(331,475)(331,517)])
}
Add(Hub,12093841,217,462)
{
OutCount=3
link(onEvent1,16370378:doStart,[])
link(onEvent2,10850824:doStart,[(259,475)(259,587)])
link(onEvent3,11599641:doStart,[(251,482)(251,741)])
}
Add(MathParse,2704163,588,581)
{
DataCount=4
MathStr="%2*%1^2 + %3*%1 + %4"
link(X1,14668200:Var3,[(594,562)])
link(X2,16503595:Var3,[(601,556)])
link(X3,7233213:Var3,[(608,549)])
link(X4,6143149:Var3,[(615,543)])
AddHint(0,44,129,13,MathStr)
}
Add(GetDataEx,161968,392,445)
{
link(Data,9697363:Text,[])
}
Add(GetDataEx,5062901,434,438)
{
link(Data,148062:Text,[])
}
Add(GetDataEx,5695714,476,431)
{
link(Data,16148217:Text,[])
}
Add(GetDataEx,5126503,518,424)
{
link(Data,8135429:Text,[])
}
Add(For,12290167,343,581)
{
End=100000
link(onEvent,2704163:doCalc,[])
link(onStop,10850824:doStop,[(387,594)(387,575)(274,575)(274,594)])
AddHint(-6,43,51,13,End)
}
Add(TimeCounter,10850824,287,581)
{
link(onStart,12290167:doFor,[])
link(onStop,3091122:doText,[(331,594)(331,657)])
}
Add(FastMathParse,5785906,588,735)
{
DataCount=4
MathStr="%2*%1^2 + %3*%1 + %4"
link(X1,14668200:Var2,[(594,654)(398,654)])
link(X2,16503595:Var2,[(601,651)(440,651)])
link(X3,7233213:Var2,[(608,648)(482,648)])
link(X4,6143149:Var2,[(615,644)(524,644)])
AddHint(2,47,129,13,MathStr)
}
Add(GetDataEx,14668200,392,557)
{
link(Data,161968:Var2,[])
}
Add(GetDataEx,16503595,434,551)
{
link(Data,5062901:Var2,[])
}
Add(GetDataEx,7233213,476,544)
{
link(Data,5695714:Var2,[])
}
Add(GetDataEx,6143149,518,538)
{
link(Data,5126503:Var2,[])
}
Add(For,12719809,343,735)
{
End=100000
link(onEvent,5785906:doCalc,[])
link(onStop,11599641:doStop,[(387,748)(387,729)(274,729)(274,748)])
AddHint(-6,43,51,13,End)
}
Add(TimeCounter,11599641,287,735)
{
link(onStart,12719809:doFor,[])
link(onStop,15258225:doText,[(331,748)(331,811)])
}
карма: 10
0