Thanks for purchasing Valentina for REALbasic

Ruslan Zasukhin ruslan at paradigmasoft.com
Tue May 31 10:08:26 CDT 2005


On 5/31/05 3:41 AM, "Damon Pillinger" <daisychain at iinet.net.au> wrote:

Hi Damon,

You provide here interesting information,
So I CC it to Valentina list for share.
Please read my comments below.

> I heard about Valentina from the real guru¹s board.
> I did some tests on Valentina, RB database and SQLite.

> These were the result of a complex SQL search across many tables, as well as
> cross referencing data from one table to another, redrawing information and
> populating a listbox in a rather complex way.
>  
> RB database 38.53 seconds
> SQLite database 9.23 seconds  (417% improvement)
> Valentina2 4.70 seconds       (819% improvement)


  
> I also did tests on using the standard data controls for the three databases.
> These were the controls on a single window.
>  
> 2 edit fields linked to the fields of the database/datacontrol
>  
> 3 pushbuttons PB1 linked to NEW record, PB2 linked to INSERT record, PB3
> linked to update record
>  
> 1 datacontrol
>  
>  
> I ran 6 tests  v=Valentine s=SQLite r=Real basic NEW database the times are
> first pass then second pass
>  
> Test 1
> PB1.push
> Add text to the two edit fields
> PB2.push
> Loop 100 times
> V:1.18-0.82 sec    S:6.52-7.06 sec   R:0.46-0.46 sec     real basic wins

DataControl -- I not recommend to use it.
    I have see that in background REALbasic do stupid things,
    at least for Prev button.

  
> Test 2
> Datacontrol.moveto (Rnd*100)
> Alter text to the two edit fields
> PB3.push
> Loop 100 times
> V:0.54-0.52 sec    S:8.14-7.66 sec   R:32.02-33.50 sec     Valentina wins
>  
> Test 3
> Datacontrol.movenext
> Alter text to the two edit fields
> PB3.push
> Loop 100 times
> V:0.54-0.38 sec    S:6.02-5.48 sec   R:24.76-26.36 sec        Valentina wins
>  
> Test 4
> Datacontrol.sqlquery=²Select * from test where dud LIKE %1%²
> Datacontrol.runquery
> Loop 100 times
> V:37.68-38.18 sec    S:0.18-0.12 sec   R:14.52-13.66 sec        SQlite wins

This is very strange.

Btw, can you send us this test project ?
  
> Test 5
> R=new recordset
> R=Datacontrol.database.sqlSelect(²Select * from test where dud LIKE %1%²)
> Loop 100 times
> V:0.06-0.04 sec    S:0.06-0.04 sec   R:7.10-6.66 sec               Draw

Aha, so the same query but executed in other way ?
 
> Test 6
> R=new recordset
> R=Datacontrol.database.sqlSelect(²Select * from test²)
> Loop 1000 times
> V:0.20-0.22 sec    S:0.30-0.32 sec   R:65.82-66.60 sec       Valentina wins


In fact even bigger difference comes if you will test on BIG dbs,
E.g. Million records.

And if you do kinds of queries that require iteration of records,
Such as DISTICT, GROUP BY, ...

For such queries SQL Lite works minutes while Valentina still seconds

> As you can see the only really bad result for Valentina was when you use a
> data control to sort for records (test 4). Maybe this could be considered for
> work in V2.1

Yes, test4 and test5 do the same query as I see.
So problem somewhere just in RBDB API,
Which IMHO I do not recommend for use.
  
> I must stress that this test did not use any special code for either Valentina
> (except INIT and SHUTDOWN) or SQLite and meant as an example of how a normal
> programmer might find the difference in speed without having to change their
> program
>  
> Hope this is good information.
>  
> Best Regards
>  
> Damon L. Pillinger
> Jensen 2005 by Daisychain
> www.daisychain.no-ip.biz
> Phone : 03 9532 1220
> Fax : 03 9532 1280

-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the Valentina-studio mailing list