[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Call for testers: LedgerSMB running as a persistent service using Plack
- Subject: Re: Call for testers: LedgerSMB running as a persistent service using Plack
- From: Ed W <..hidden..>
- Date: Fri, 31 Aug 2012 17:05:51 +0100
On 16/08/2012 05:45, Chris Travers wrote:
I have had a few customers asking for significant speedups and after
some profiling have determined that a lot of the cost is with loading
modules many of which have costly dependencies. In a CGI environment
these are reducing performance. The good news is that this is a
constant cost so as your database grows it will not get worse. The
bad news is that as long as we are in a CGI environment, the
performance will not get better.
Right now I am completing a port of LedgerSMB trunk (to be 1.4) to
Starlet/Plack. I expect to have this finished up today. I am having
a few issues I need to get fixed. After that I will backport to 1.3
and make it available as an add-on. Aside from the problems, I have
seen a very large performance increase with LedgerSMB running in this
environment. After this is stable, I will tackle Starman (which
strangely is giving me different errors) and maybe an FCGI wrapper.
How interested are people in this?
Hi folks, I have spoken to Chris about this a little offlist, so I just
want to stress that this is meant to be a positive sounding question!
What kind of speeds are you currently seeing page render requests with
Plack/Starlet? I just want to jump in with an abstract benchmark, but
we should be aiming to get all screens which do trivial backend
processing to be performing in the sub 100ms response time frame. In
fact for trivial screens on a sensible sized box we really should be
seeing sub 50ms response times.
As a data point I am currently working on a mojolicious (perl) web
configuration interface for an embedded (ish) box which runs on a 500Mhz
Geode (Alix). This generates real web pages in around 80-120ms despite
the rather wimpy processor (those are "to the browser" speeds, not just
rendering speed). I haven't benchmarked on a proper machine, but
roughly this machine benchmarks at around 10% of my Q6600 2.4Ghz machine
I'm not sure if you have looked at Mojolicious, but it's now a very
mature and flexible toolkit for building all kinds of web services. The
code is fantastically clear and concise and well worth a look for
inspiration. Basically all of its features are simple packages and have
been implemented in a remarkable simple fashion. It does seem to steer
a decent line between "opinionated" and "flexible"
I would recommend it as an interesting option for LSMB, not least
because it's more of a "VC" than an "MVC" system, you are left to
implement the "M" yourself. It also provides a lot of the plumbing for
templating systems, ajax, pjax, webservices, etc. It's such an easy
architecture to work with it's likely a potential "drop in" change...