Hi, as other I do see neither JSONiq nor XQuery being able to compete with eg. native C implemenation of matrix multiplication.
Your 200x200 example is interesting as it shows that JSONiq(JSON, PT10.838593S) is now slower than XQuery(XML, PT9.03348S): http://try.zorba.io/queries/xquery/elMs5bmRLr%2FZ0IHY5mr6YNWqgjI%3D http://try.zorba.io/queries/xquery/FhH%2BPs3wjNB2xwTw%2BchwwMes2dw%3D Mit besten Gruessen / Best wishes, Hermann Stamm-Wilbrandt Level 3 support for XML Compiler team and Fixpack team lead WebSphere DataPower SOA Appliances https://www.ibm.com/developerworks/mydeveloperworks/blogs/HermannSW/ https://twitter.com/HermannSW/ http://stamm-wilbrandt.de/GraphvizFiddle/ ---------------------------------------------------------------------- IBM Deutschland Research & Development GmbH Vorsitzende des Aufsichtsrats: Martina Koederitz Geschaeftsfuehrung: Dirk Wittkopp Sitz der Gesellschaft: Boeblingen Registergericht: Amtsgericht Stuttgart, HRB 243294 From: jean-marc Mercier <[email protected]> To: David Carlisle <[email protected]>, Cc: Hermann Stamm-Wilbrandt/Germany/IBM@IBMDE, "[email protected] Talk" <[email protected]> Date: 02/03/2014 12:30 PM Subject: Re: [xquery-talk] Matrix Multiplication (JSONiq) Hi all, I've tried the following JSON query with zorba, mimicking a NxN, with N=200, matrix multiplications. Time is 10 sec on http://try.zorba.io/, behaving with a cubic N^3 complexitity. Do you really want to know what are the performances of standard linear algebra library for such matrix multiplications ? import module namespace datetime = " http://www.zorba-xquery.com/modules/datetime"; declare variable $size := 200; declare variable $A := [ for $i in 1 to $size return [ for $j in 1 to $size return $i*$size+$j ] ]; let $R := ( datetime:current-time(), [ for $i in 1 to count(jn:members($A)) return [ for $k in 1 to count(jn:members($A)) return fn:sum( for $j in 1 to count(jn:members($A)) return $A($i)($j) * $A($j)($k) ) ] ] , datetime:current-time() ) return $R[count($R)] - $R[1] 2014-02-03 David Carlisle <[email protected]>: On 03/02/2014 10:56, Hermann Stamm-Wilbrandt wrote: PT1.713634S (JSONiq) versus PT9.77805S (XQuery) ooh interesting , I wonder where the bottleneck in the xquery is. Probably as Michael commented at some point earlier in the thread, the time to access the ith element of a sequence $a[$i]. But the language doesn't _need_ to change, just if more people did it the xquery compilers would perhaps look out for sequences that are exclusively accessed via numeric filters and implement them in a way that gives constant time access. Having a separate array type does give them a big hint though:-) David ________________________________________________________________________ The Numerical Algorithms Group Ltd is a company registered in England and Wales with company number 1249803. The registered office is: Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom. This e-mail has been scanned for all viruses by Star. The service is powered by MessageLabs. ________________________________________________________________________ _______________________________________________ [email protected] http://x-query.com/mailman/listinfo/talk _______________________________________________ [email protected] http://x-query.com/mailman/listinfo/talk
