OK, I see what you mean.

I set a custom property of the card to the array I used earlier. It takes 
almost no time at all to put the contents of that property into a variable. It 
is not relevant whether it is a script local variable or not.

Bottom line, I do not think it makes any difference whether one uses a custom 
property or a variable to hold data in terms of the speed in which that data is 
retrieved.

Craig

> On Dec 14, 2023, at 7:33 PM, Bob Sneidar via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> That is not exactly the test he was looking for. He wants to compare 
> retrieving an array from a script local variable vs. getting a property of an 
> object like a stack, that contains the same array. At least I think that is 
> the question. 
> 
> Now I’d like to discuss virtual properties. It takes the form: 
> 
> Local lValueA
> 
> setProp myVirtualProperty, pValueA
>   Put pValueA into lValueA
> End setProp
> 
> The reason this is really handy is because if pValueA is an array, you can 
> then use the form: 
> 
> getProp myVirtualProperty [pKey]
>   If pKey is not empty then 
>      Return lValueA [pKey]
>   Else
>      Return tValueA
> End getProp
> 
> In other words, you can get elements of the array without getting the entire 
> array itself i.e.:
> 
> Put the myVirtualProperty [“companyname”] of myLivecodeObject into 
> tCompanyName
> 
> I use this quite extensively. I have a single card which contains all the 
> currently queried database data for caching purposes, along with the 
> currently selected indexes for each datagrid, and the currently selected 
> primary keys. I call the getProp and setProp handlers maingriddata. So I can:
> 
> Get the maingriddata [“hilitedkeys”] of tMainCard
> Get the maingriddata [“hilitedindexes”] of tMainCard
> Get the maingriddata [“customers”]
> Put the queriedCustomersA into tMainGridDataA
> Set the maingriddata to tMainGridDataA
> 
> And so forth. Any kind of logic can be used in the getProp and setProp 
> handlers. 
> 
> Bob S
> 
>> On Dec 14, 2023, at 2:25 PM, Craig Newman via use-livecode 
>> <use-livecode@lists.runrev.com> wrote:
>> 
>> Anything to distract me from my day job.
>> 
>> An array with 100,000 elements and a variable with 100,00 lines take the 
>> same time to place into a field.
>> 
>> The only time that took a while was building them. Each took 10 milliseconds.
>> 
>> Craig
>> 
>>> On Dec 14, 2023, at 4:55 PM, Paul Dupuis via use-livecode 
>>> <use-livecode@lists.runrev.com> wrote:
>>> 
>>> Bob,
>>> 
>>> Thank you. I could script a timing test but sometime just asking the list 
>>> or forums is easier. You asnwered well before I would have had the time to 
>>> write a basic test script. Thanks!
>>> 
>>> 
>>> On 12/14/2023 4:45 PM, Bob Sneidar via use-livecode wrote:
>>>> I think the confusion comes from thinking so much of a stack as an object 
>>>> that has substance, when really all the properties are places in memory 
>>>> just like a memory variable is. I asked this some years back and the 
>>>> answer I got was that there is no appreciable difference.
>>>> 
>>>> One could always devise a test though…
>>>> 
>>>> Bob S
>>>> 
>>>> 
>>>> On Dec 14, 2023, at 1:22 PM, Paul Dupuis via use-livecode 
>>>> <use-livecode@lists.runrev.com> wrote:
>>>> 
>>>> Which is faster or more efficient (from an engine performance perspective)?
>>>> 
>>>> To retrieve an array from a property?
>>>> As in:
>>>> command someHandler -- in an objects script
>>>> get the cMyArray from me -- cMyArray is some multi-dimensional array
>>>> ...
>>>> end someHandler
>>>> 
>>>> OR
>>>> 
>>>> To retrieve an array from a script local variable?
>>>> As in:
>>>> local sMyArray -- script local variable in some objects script
>>>> 
>>>> command someHandler -- in an objects script
>>>> get sMyArray
>>>> ...
>>>> end someHandler
>>>> 
>>>> Anyone know?
>>>> 
>>>> _______________________________________________
>>>> use-livecode mailing list
>>>> use-livecode@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@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@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@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@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to