On Sat, Jan 28, 2012 at 12:21 PM, Jeffrey Van Voorst
<[email protected]> wrote:
>
> What happened to slow it down? Support of more browsers? or a lot more
> items get put in the js files to support more of the python language?
> Note I am assuming it is the download time, but I suppose it could
> also be initializing the javascript on the page itself.  Is there much
> that could be done without breaking the "compatibility" between GWT
> and pyjamas?  In other words, if radical changes are made, one might
> not be able to convert the Java GWT code to Python as easily as is
> currently done.

the modules we actually split into a gwt namespace in the belief it
would be easier to stay in sync with upstream in the future.  pyjamas
modules then import and extend/from these classes.  this means more
files in --multi-file mode, or bigger download in single file mode.

tbh i don't notice it all that much ... the server uses gzip encoding
and a ~1.4MiB cache file become ~250KiB on the wire (the mail app).

> If it is the download time, one can do things like remove all white
> space from the js files on their production webservers, etc.  On the
> other hand, if it is really true that current versions of chrome and
> firefox have much faster javascript engines than a year or two ago, I
> would have expected a decent jump (with respect to the same version)
> in pyjamas loading performance.

yes minification is a good way to achieve less, but ultimately caching
is the silver bullet.  take the mail app for example, once loaded
once, the cache file returns a 304 Unmodified and the page loads near
instantly for me.  the problem is many people do not use --multi-file
builds, and this means *every* single time you change *anything*, you
force users to download the full cache file *again*.  --multi-file
prevents this by only invalidating the cache of the module you
actually modified.

you can take this a step further, and put the modules on a common
domain ... then *all* of your apps get free cache hits, cross-domain.
of of my goals is to setup an on-demand build + minify service proxied
thru Coral Cache, then you can pull modules from, say:

http://modules.pyjs.org.nyud.net/{module-hash}/
(with fallback to your server)

... and if we *all* use this service, then we get free caching if a
user visits more than one pyjs-based site (and the sites are using the
same module versions).

i guess i think most of the perceived perf issues are due to
deployment, not the engine itself, but there are certainly areas that
could be improved (for example, eliminated the HTTP gets of virtually
empty __init__.py files, among others)

-- 

C Anthony

Reply via email to