Icon View Thread

The following is the text of the current message along with any replies.
Messages 11 to 12 of 12 total
Thread Update on EWB 3.x - Feb 2019
Wed, Feb 27 2019 12:01 PMPermanent Link

Huseyin Aliz

myBiss ApS

Avatar

I would say, give people something to play with Smile
Make clear that its not allowed to ask for support for this build, no
warranty, no use for development or production. People with virtualbox
images would not mind to play i think Smile

Den 11-02-2019 kl. 20:48 skrev Tim Young [Elevate Software]:
> My apologies on there not being updates for a while.  Where we're at:
>
> I started testing the server-side applications in anger in late December/ early January, and the performance of the EWB interpreter was just not that great.  It was especially bad at large numbers of small computations like tight loops with millions or 1 billion iterations. So, while the interpreter has worked okay in the EWB IDE for design-time usage, I didn't consider it performant enough for general-purpose usage.  For example, a simple loop like this:
>
> project WhileTest;
>
> var
>     I: Integer;
> begin
>     I:=0;
>     while (I < 1000000000) do
>        I:=I+1;
> end.
>
> would take ~22 secs in PHP (5.6), ~110 secs in Python, and ~740 seconds in EWB (this excludes startup time and only measures the execution time of the main code block).
>
> The current EWB interpreter that is in EWB 2.x is an AST (Abstract Syntax Tree)-walker where it simply iterates over the token nodes and evaluates them.  The execution overhead with such an architecture is/was just too much, resulting in the poor performance.  At the very least, I deemed it necessary for the EWB interpreter to be *at least* as fast as PHP 5.x.
>
> A month ago I started working on a new interpreter for EWB 3, and I'm finishing it up this week.  In comparison to the above figures, the new EWB 3 interpreter takes ~11 secs to execute the 1 billion iteration loop above, so it's around twice as fast as PHP 5.x, right around the same performance as PHP 7.x (estimated), and 10 times faster than Python with simple, raw loops that don't do much, which is a fairly good measure of the overhead of the interpreter.
>
> Another test I ran was populating a 10 million element string array using a user function, in order to get an idea of the function call overhead:
>
> project ForArrayTest;
>
> function UserIntToStr(Value: Integer): String;
> begin
>     Result:=IntToStr(Value);
> end;
>
> var
>     I: Integer;
>     TempStrings: array of String;
> begin
>     SetLength(TempStrings,10000000);
>     for I:=0 to 9999999 do
>        TempStrings[I]:=UserIntToStr(I);
> end.;
>
> This can execute in ~1700 msecs, while native Delphi clocks in at ~570 msecs.
>
> So, once I finish up the new EWB 3 interpreter, I will be then be completing work on the rest of the runtime library and components for server-side applications and can release a beta.
>
> Right now it looks like the end of March for such a beta release.
>
> If you have any questions/comments, please feel free to post them in response.
>
> Tim Young
> Elevate Software
> www.elevatesoft.com
>
Wed, Feb 27 2019 12:08 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Huseyin,

<< I would say, give people something to play with Smile>>

That will be the beta - the compiler's not entirely ready yet, but the rest of the IDE/web server is ready to go.

Tim Young
Elevate Software
www.elevatesoft.com
« Previous PagePage 2 of 2
Jump to Page:  1 2
Image