On 2018-08-04 21:00, Brian Milby via use-livecode wrote:
Plugins should probably be de-scriptified for distribution for this
reason. A similar argument could be made for some IDE library code too. I have to wonder if there is any performance impact to the number of stacks
the IDE has to deal with now that so much is scriptified.  (The list of
stacks is a linked list and finding a stack by name goes through the list
at least in one spot.).  I've been thinking of how to test this sort of
thing to measure it

Indeed that would be interesting - I think @Monte proposed a patch to make stack-by-filename lookups hash-table based recently (it was attempt to fix an unrelated thing which was more important - and I'm not sure the speed improvement necessarily justified the extra code complexity - until we can abstract the whole caching things logic to a common pattern). Certainly making the stack list hash-by-name (like control id's per stack) would probably help. Although there are a few salient details which make them quite a bit more complex than the id case - e.g. substacks can have the same name as a mainstack.

It would be similar to how copy-on-write does incur a small amount of
overhead when compared to pass-by-reference that was demonstrated in an
earlier discussion. The result there was that if you need to optimize for
speed, reference is still helpful.  If you are purely concerned about
memory usage, then it isn't needed.

Again - interesting - can you pull out that exact case, it is a little surprising (which makes me wonder whether there are some specific details it which are actually exceptionally important). For example:

on foo @xValue
  return xValue[5]
end foo

on bar pValue
  return pValue[5]
end bar

on testFoo pArray
  put "baz" into pArray[1][2][3][4]
  repeat 10000 times
    foo pArray[1][2][3][4]
  end repeat
end testFoo

on testBar pArray
  put "baz" into pArray[1][2][3][4]
  repeat 10000 times
    bar pArray[1][2][3][4]
  end repeat
end testBar

You should find that whilst these two things do exactly the same thing that testFoo will be a lot slower than testBar.

Warmest Regards,

Mark.

--
Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps

_______________________________________________
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