Maybe the BaseX developers didn't implement proper short-cutting for
the "every" expression.
Or maybe they expand 2 to 100000 into an actual list of 99999 numbers
prematurely.
I think BaseX is open source and we will find the answer in the code.
Even before that, here is another guess:
Maybe they are implementing the "every" expression using parallelism,
so they cannot stop the other three threads immediately when the
current thread finds that the condition is violated.
Just one example where parallel execution is outperformed by
sequential execution. The exact data may make parallel execution on it
significantly slower than simple sequential execution.
Speaking about BaseX: Congratulations for their just announced 8.1
version. Among other things they implemented "efficient Finger Tree
algorithm for arrays" -- this is enormous -- really made my day.
I have been playing around with BaseX today. Nicely done. Unfortunately the do
not support schema validation yet ;-(
I have also been playing with Saxon in Oxygen. I wanted to measure execution
time for different code. However, I have no idea how to measure time in a
declarative language. Can anyone help?
Thanks in advance
Leo
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--