Hey All

I've run some tests and duckies looks a bit faster.

To test I used two cfcunit tests suites (a manager suite and record
suite) relating to a single object that is fairly typical of how we
are using reactor in our project. The object has multiple hasMany and
hasOne relationships (some of which are NULLable).

The main object is a CN (contract notice) which is effectively a
compound object across two tables; Contract and CN. The reactor.xml
for these is:

<object name="CN">
        <hasOne name="Contract">
                <relate from="contractUUID" to="contractUUID"/>
        </hasOne>
        <hasMany name="CN" alias="CNAmendment">
                <relate from="CNUUID" to="parentCNUUID"/>
        </hasMany>
        <hasOne name="MultiUseList">
                <relate from="MULUUID" to="MULUUID"/>
        </hasOne>
        <hasOne name="Supplier">
                <relate from="supplierUUID" to="supplierUUID"/>
        </hasOne>
        <hasMany name="ConfidentialityProvision">
                <link name="CN_ConfidentialityProvision" />
        </hasMany>
</object>
                        
<object name="Contract">
        <hasOne name="Agency">
                <relate from="AgencyUUID" to="AgencyUUID"/>
        </hasOne>
        <hasOne name="Category">
                <relate from="UNSPSCCode" to="code"/>
        </hasOne>
        <hasOne name="CN">
                <relate from="contractUUID" to="contractUUID"/>
        </hasOne>
        <hasOne name="SON">
                <relate from="contractUUID" to="contractUUID"/>
        </hasOne>
</object>

These tests cover a range of functionality like reading a record off
the DB, testing specific generated and custom validation rules,
pulling record sets and pushing records through various workflow
steps.

The names of the tests will give you an idea of what they are doing:

Manager Tests:
testInit
testList
testListByField
testCreateEditDelete (on 2 different fixtures)
testCreatePublishCancel (on 2 different fixtures)

Record Tests:
testInit
testReadEmpty
testRead
testValidatePass
testValidateFail
testValidateFailConfidentialityProvisions
testValidateFailIncorrectMULNumber
testValidateFailSupplierABN

And the results:

Duckies - Prod mode - all generated files deleted.
1st run: 30661 ms
2nd run: 18948 ms
3rd run: 17244 ms
4th run: 16843 ms
5th run: 16730 ms

Trunk - Prod mode - all generated files deleted.
1st run: 36922 ms
2nd run: 21250 ms
3rd run: 18315 ms
4th run: 18505 ms
5th run: 17074 ms

Approx 10% difference.

The tests aren't 100% reactor though, our coldspring framework is
being reloaded for each run + there is a lot of our own logic being
tested in there too. So the performance increase is probably a fair
bit higher than 10%.

The results of the tests (pass/fail/error) were the same for both the
trunk and duckies versions. I'd love to say all the tests passed, but
I am still struggling with bloody validation case sensitivity issue.

(Doug, someone: please reply to
http://www.mail-archive.com/reactor%40reactorframework.com/msg00967.html
!!! I just need to know if things are going to stay as they are or
http://trac.reactorframework.org/reactor/changeset/331 is going to
make it back into the code base)

Anyway - back to work now.

--
Mark Stanton
Gruden Pty Ltd
http://www.gruden.com


-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Reply via email to