Reading arrays, 3 methods tested, results

Mark Talluto mark at canelasoftware.com
Wed Jul 27 15:10:12 EDT 2016


Thought this might be interesting to those benchmarking reads on arrays. I was working to optimize one small section of code in our database and found that the method I figured would be the slowest ended up being the fastest. Maybe this will be helpful to others doing a lot of array work.

Macbook Pro, macOS 10.11.5
LiveCode 8.1 dp2
Data: 135k records

 (method 1) 1.36 seconds
--GET ALL THE RECORDS FROM THIS TABLE
repeat for each element xRecordClusterA in gCSIdatabaseA[xTableID]
	repeat for each element xElement in xRecordClusterA
		put xElement into tRecordA[xTableID][(the keys of xRecordClusterA)]
	end repeat
end repeat


(method 2) 220 ms
--GET ALL THE RECORDS FROM THIS TABLE 
repeat for each element xRecord in gCSIdatabaseA[xTableID]
	repeat for each key xRecordID in xRecord
		put xRecord [xRecordID] into tRecordA[xTableID][xRecordID]
	end repeat
end repeat


 (method 3) 77 ms
--GET ALL THE RECORDS FROM THIS TABLE
repeat for each key xRecordCluster in gCSIdatabaseA[xTableID]
	put the keys of gCSIdatabaseA[xTableID][xRecordCluster] into tRecordID
	put gCSIdatabaseA[xTableID][xRecordCluster][tRecordID] into tRecordA[xTableID][tRecordID]
end repeat


Best regards,

Mark Talluto
livecloud.io
canelasoftware.com







More information about the use-livecode mailing list