Garbage collection (crashing on Windows)

Mark Talluto mark at canelasoftware.com
Fri Aug 19 19:07:09 EDT 2016


I do not remember how much of a performance boost we got from manipulating long lists this way, but if memory serves, it was quite beneficial.
This code sample is just something I made up on the fly. Hopefully it demonstrates the value of this method.

command createArray
     local tListOfRecordIDs, tTableID
     
     put fld "recordID data" into tListOfRecordIDs
     put uuid() into tTableID
     
     --FOUND IT FASTER TO WALK THROUGH LONG LISTS
     --WHEN WE PUT THEM IN AN ARRAY LIKE THIS
     --ONCE THE ARRAY IS MADE, IT WILL BE USED MANY TIMES OVER
     --NEGATING THE COST OF MAKING THIS ARRAY
     repeat for each line xRecordID in tListOfRecordIDs
          put empty into tArrayA[tTableID][xRecordID]
     end repeat
     
     processArray tArrayA
end createArray


command processArray @rArrayA
     put the keys of rArrayA into tTableID
     
     --WALK THROUGH ARRAY LIST
     repeat for each key xRecordID in rArrayA[tTableID]
          --do something with xRecordID here
          --we might modify something in this list
     end repeat
     
     --WALK THROUGH ARRAY LIST
     repeat for each key xRecordID in rArrayA[tTableID]
          --do something with this modified list from previous repeat
     end repeat
end processArray


-Mark



> On Aug 19, 2016, at 12:22 PM, Mark Waddingham <mark at livecode.com> wrote:
> 
> With the current implementation of the engine, the only reason using empty is faster than using pValue is because the latter requires a variable lookup, the former is a constant.
> 
> What are you using sValueCache for?
> 
> Sent from my iPhone
> 
>> On 19 Aug 2016, at 19:37, Mark Talluto <mark at canelasoftware.com> wrote:
>> 
>> 
>>> On Aug 19, 2016, at 10:42 AM, Mark Waddingham <mark at livecode.com> wrote:
>>> 
>>> command shareAndStoreKey @xArray, pKey, pValue
>>>   set the caseSensitive to true -- this is assuming your values are sensitive to case
>>>   if pValue is not among the keys of sValueCache then
>>>       put pValue into sValueCache[pValue]
>>>   end if
>>>   put sValueCache[pValue] into xArray[pKey]
>>> end command
>> 
>> 
>> Hi Mark,
>> 
>> We have been doing:
>> put empty into sValueCache[pValue]    --as an optimization. 
>> 
>> How does this compare to:
>> put pValue into sValueCache[pValue]    --in terms of performance?
>> 
>> 
>> Best regards,
>> 
>> Mark Talluto
>> livecloud.io
>> canelasoftware.com
>> 
>> 
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode





More information about the use-livecode mailing list