Hi Paul,

> I'm curious what functions you ran to obtain it.

A modified version of time-it:

TPS: function [note block /count ct][tot time][
        recycle
        wait 1
        if not count [ct: 1]
        tot: ct
        time: now/time/precise
        forever [
                loop ct [do block]
                if 0:00:01 < (now/time/precise - time) [break]
                tot: tot + ct
        ]
        time: now/time/precise - time
        print reform [note to-integer tot / to-decimal time]
]

followed by:

foreach type [#[datatype! block!] #[datatype! list!] #[datatype! hash!]][
        print reform ["Benchmarking" type]
        series: none
        TPS       "make type! "         [series: make type 1000000]
        insert series load %test.dat
        series: head series     ;       handles list
        TPS/count "first/last     "     [first series]                          1000
        TPS/count "pick/poke/at   "     [pick series 500000]            1000
        TPS/count "find/select    "     [find series 1]                         1000
        TPS/count "find/select end"     [find series 1000000]           100
        TPS/count "foreach        "     [foreach i series []]           100
        TPS/count "insert         "     [insert head series none]       100
        TPS/count "insert tail    "     [insert tail series none]       1000
        TPS/count "change         "     [change series none]            1000
        TPS/count "head/tail/next "     [head series]                           1000
        series: make type 1000000               ;       avoids hash! clear bug
        insert series load %test.dat
        series: head series                             ;       handles list!
        TPS/count "remove         "     [remove head series]            100
        series: make type 1000000               ;       avoids hash! clear bug
        insert series load %test.dat
        series: head series                             ;       handles list!
        TPS/count "remove tail    "     [remove back tail series]       1000
]

QAD, but each test completes in about a second [on my hardware] with the 
results out by a couple of percent for loop/time management (I'm working 
on a more robust version that removes the loop/time component from the 
final result and runs each test for 10 seconds).

The multi-line tests (eg. first / last) were originally separate but the 
results were within a couple of percent of each other that I just merged 
them for clarity. Not super accurate, but given the difference between 
something like block! insert and first, what's a few percent among 
friends? ;)


Regards,

        Ashley
-- 
To unsubscribe from this list, just send an email to
[EMAIL PROTECTED] with unsubscribe as the subject.

Reply via email to