
Do you train Kung Fu?
Or know someone who does?
Then check out KungFuPeople.com
Mobile version of this page
Previous:
Python optimization anecdote
Next:
Debian popular in Sweden
Optimized stylesheets
ztar - my wrapper on tar -z
Automatically strip whitespace in Django forms
Gzip and Slimmer optimization anecdote
Private functions in Javascript?
Plone.org calls it Issue Tracker
Smooth anchor scrolling Javascript
Slimmer with --hardcore
slim, a new free web service for white space optimisation
Comparing YUI Compressor and slimmer
The awesomest way possible to serve your static stuff in Django with Nginx
YSlow grade A (96) but not with doubts
Python optimization anecdote
Next:
Debian popular in Sweden
Related blogs
XHTML, HTML and CSS compressorOptimized stylesheets
ztar - my wrapper on tar -z
Automatically strip whitespace in Django forms
Gzip and Slimmer optimization anecdote
Private functions in Javascript?
Plone.org calls it Issue Tracker
Smooth anchor scrolling Javascript
Slimmer with --hardcore
slim, a new free web service for white space optimisation
Comparing YUI Compressor and slimmer
The awesomest way possible to serve your static stuff in Django with Nginx
YSlow grade A (96) but not with doubts
Related by category
Optimize Plone.org with slimmer.py
http://plone.org/15th of February 2005
If you do a speed report on Plone.org you notice that the three biggest files it services are plone.css, plone_javascripts.js and index.html. If you run these through my little slimmer whitespace optimizing program in Python you get the following results:
$ python slimmer.py --test http://plone.org/plone.css Took 0.016 seconds Bytes before: 29355 Bytes after: 20265 Bytes saved: 9090 (69.0% of original size) $ python slimmer.py --test http://plone.org/plone_javascripts.js Took 0.057 seconds Bytes before: 27251 Bytes after: 19974 Bytes saved: 7277 (73.0% of original size) $ python slimmer.py --test http://plone.org/ Took 0.029 seconds Bytes before: 37186 Bytes after: 26466 Bytes saved: 10720 (10K) (71.0% of original size)
Using an on-the-fly whitespace optimizer isn't always the right thing to do but in the case of this particular site you prevent serving: 26Kb in 0.1 seconds (on this computer).
26Kb isn't a lot by looking at their traffic summary you see that they could serve 3.3Gb less per month (before gzip compression). That's a big save.
Tweet
Comment
Ian Bicking -
17th February 2005
[«« Reply to this]
"Or how about both?"
I suspect that you'd save very little space by removing whitespace then gzipping, compared to gzipping alone -- whitespace is very compressable. I suppose that would be of interest to add to --test, to do gzipped bytes before and after. I'd try it, but I can't find a slimmer.py that works like you show...?
"Or how about both?"
I suspect that you'd save very little space by removing whitespace then gzipping, compared to gzipping alone -- whitespace is very compressable. I suppose that would be of interest to add to --test, to do gzipped bytes before and after. I'd try it, but I can't find a slimmer.py that works like you show...?
Peter -
17th February 2005
[«« Reply to this]
That would be cool! gzip on the fly in the slimmer module. However, that's not the point. The point is that slimmer.py removes whitespace from html, css and js. At least it does _that_ well :)
That would be cool! gzip on the fly in the slimmer module. However, that's not the point. The point is that slimmer.py removes whitespace from html, css and js. At least it does _that_ well :)
Andrew Arnott -
2nd August 2005
[«« Reply to this]
I downloaded the CheckoutableTemplates to get slimmer.py, and it doesn't support --test, and doesn't do anything. It looks more like a library. Good design, but I don't know enough Python (0% actually) to utilize it to compress my .css files. Has anyone written a command-line processor frontend for slimmer.py?
I downloaded the CheckoutableTemplates to get slimmer.py, and it doesn't support --test, and doesn't do anything. It looks more like a library. Good design, but I don't know enough Python (0% actually) to utilize it to compress my .css files. Has anyone written a command-line processor frontend for slimmer.py?
Peter Bengtsson -
2nd August 2005
[«« Reply to this]
1. you need python installed
2. you need to run it on the command line
3. there is no front end
If you don't know how to run commands on the command line (windows user?) I suggest you try to catch some ideas from some other website that explains how to do it.
1. you need python installed
2. you need to run it on the command line
3. there is no front end
If you don't know how to run commands on the command line (windows user?) I suggest you try to catch some ideas from some other website that explains how to do it.
Andrew Arnott -
2nd August 2005
[«« Reply to this]
I was trying to run the Python script from the Linux command-line, actually. The command I was using was:
python slimmer.py --test http://www.byu.edu
Upon inspection of the slimmer.py file that I obtained as part of the CheckoutableTemplates, I found that there were only functions defined, and no code to check for parameters. That's why I said it looks like it was written as a library.
However, I found a more recent version (0.1.16) of slimmer.py and that has all the parameter-handling code that makes it work. Thanks for the fast response however.
I was trying to run the Python script from the Linux command-line, actually. The command I was using was:
python slimmer.py --test http://www.byu.edu
Upon inspection of the slimmer.py file that I obtained as part of the CheckoutableTemplates, I found that there were only functions defined, and no code to check for parameters. That's why I said it looks like it was written as a library.
However, I found a more recent version (0.1.16) of slimmer.py and that has all the parameter-handling code that makes it work. Thanks for the fast response however.
Fredrik -
17th February 2005
[«« Reply to this]
Since the slimmer filter doesn't really increase the document entropy, you still get roughly the same percentages for zip(slimmer(text)) vs. zip(text) as you get for slimmer(text) vs. text.
(but all zip() variants are of course a lot smaller than the others, so you save a lot less bytes. in this case, it's just over 4k, if my calculations are correct).
Since the slimmer filter doesn't really increase the document entropy, you still get roughly the same percentages for zip(slimmer(text)) vs. zip(text) as you get for slimmer(text) vs. text.
(but all zip() variants are of course a lot smaller than the others, so you save a lot less bytes. in this case, it's just over 4k, if my calculations are correct).
Torsten Will -
17th February 2005
[«« Reply to this]
Yes, exactly my thought. slimmer.py wont gain much if compression is applied anyway.
But what about translation to uppercase and removing all vowels... ;-)
Yes, exactly my thought. slimmer.py wont gain much if compression is applied anyway.
But what about translation to uppercase and removing all vowels... ;-)
Fredrik -
17th February 2005
[«« Reply to this]
(peter, your preview function seems to lose the "hide my email address" setting. naughty).
(peter, your preview function seems to lose the "hide my email address" setting. naughty).
Alexander Limi -
3rd March 2005
[«« Reply to this]
Plone by default serves up gzipped content, this would not make any noticable difference.
Plone by default serves up gzipped content, this would not make any noticable difference.
Peter -
3rd March 2005
[«« Reply to this]
Cool! I thought it was something configured in apache/squid. Need to learn from that.
Cool! I thought it was something configured in apache/squid. Need to learn from that.


Save this page in del.icio.us
Wouldn't mod_gzip be far more effective? Or if not mod_gzip, then something else to gzip the output (when possible). It doesn't obscure the source at all, can potentially save a greater amount of bandwidth, and is highly orthogonal to other parts of the system and the output that is produced.
Or how about both? Wouldn't that be ideal?
This particular page isn't about HOW plone.org should do their job but what could be done to their output as an alternative that works out of the box.