On 22/03/2016 14:24, Richard Gaskin wrote:
Given that the engine is probably already doing pretty much the same thing, would it make sense to consider a readBufferSize global property which would govern the size of the buffer the engine uses when executing "read...until <char>"?

In my experiments I was surprised to find that larger buffers (>10MB) were slower than "read...until <char>", but the sweet spot seemed to be around 128k. Presumably this has to do with the overhead of allocating contiguous memory, and if you have any insights on that it would be interesting to learn more.

Rather than a settable global property, it may be better to have a readable global property which suggests an optimal (or near optimal) size for reading.

Also, I'd point out that it is NOT "read ... until <char>", it is "read ... until <string>" (according to the dictionary - haven't tried it yet).

This means that for reading MBOX format, you could do something like (untested)

put CR & "From " into tTerminator -- note the space at the end of the string

repeat forever -- !!
  read from file tFilePath until tTerminator
  if it is empty then exit repeat
  put it into tOneMailMessage
  -- and process that whatever way you want
end repeat

-- Alex.

_______________________________________________
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