Why is node.js faster than LC server?
jonathandlynch at gmail.com
jonathandlynch at gmail.com
Tue Dec 5 13:07:45 EST 2017
As always, Mark - thank you for that excellent detailed response. It gave me much to consider.
Sent from my iPhone
> On Dec 5, 2017, at 12:55 PM, Richard Gaskin via use-livecode <use-livecode at lists.runrev.com> wrote:
> Andre Garzia wrote:
> > Some other languages support full threads and some even allow you to
> > fork().
> Can you describe what you mean by fork() here? In a discussion a while back I made reference to an earlier post you'd made about fork(), but the response from the engine team left me with the impression that it's merely the way processes launch other processes. Of course we can launch processes right now in LC, so clearly there's something here I'm missing (forgive the naivete of the question; I'm only halfway into Robert Love's Linux System Programming).
> > ## THE ENGINE POOL ##
> > I believe it was Richard who did this, can't recall, it was definitely
> > not me. Keep a pool of engines running, lets say 20, use a node
> > balancer to round robin them.
> I'm sure there are others, but I can recall three people who've experimented with this sort of multiprocessing: Pierre Zahores, Mark Talluto, and myself.
> My own explorations were very superficial. I spent more time looking into how much could be gained by maxing async behavior with callbacks within a single LC process (because of course there's no point spawning multiple instances of an inefficient process <g>). I used the Raney mchttpd stack as a starting point, updated to send proper modern headers so it can be used with browsers made after 1999 <g>, and revised to use callbacks for all reads/writes.
> The TL/DR (I was testing delivery of static files rather than DB access, so the comparison was with Apache2):
> The bad news is that even a slender HTTPd in LC was only slightly
> more than half as fast as Apache2.
> The good news was that a slender HTTPd thrown together in a couple
> hours in LC scripts was more than half as fast as the highly-
> optimized C written by a team of specialists in Apache2! :)
> My takeaway was that, as nice as it is to get pretty good results from a scripting language like LC, if I actually need scalable multiprocessing it's better handled by teams/apps specializing in that.
> You may find some of Pierre's posts in that thread interesting.
> Richard Gaskin
> Fourth World Systems
> Software Design and Development for the Desktop, Mobile, and the Web
> Ambassador at FourthWorld.com http://www.FourthWorld.com
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
More information about the Use-livecode