On Dec 18, 2014, at 9:56 AM, Stephan Beal <sgb...@googlemail.com> wrote:

> On Thu, Dec 18, 2014 at 5:47 PM, Richard Hipp <d...@sqlite.org> wrote:
> much time was required to generate the page on the server.  I'm interested to 
> know how much time was used to generate some of your multi-megabyte /tree 
> pages.
> 
> i'd be interested to know what those megs are - maybe we can consolidate 
> symbols, optimize HTML, shorten CSS names, or some such to cut that down.

YSlow and PageSpeed give the current tree view pretty high marks.

The biggest thing I expected to find missing — and was surprised to find that 
it is not — is gzip compression on the HTTP layer.  That alone will help 
tremendously with multi-MB pages.  I wonder if the person reporting that is 
counting the on-the-wire size or the uncompressed size.

PageSpeed reports that Fossil isn’t minifying the skin CSS.  Little wonder, 
since it offers an inline editor for the raw CSS.  Nevertheless, it would be 
good if Fossil created a minified shadow copy of it and served that instead.

YSlow gives a confusing report about favicon.ico not having an Expires header, 
but what it really means is that Fossil doesn’t provide a favicon.ico, so the 
browser wastes time trying to fetch it on every page load.  If Fossil were to 
serve such a file along with a far-future Expires header, it would prevent the 
browser from repeatedly trying, speeding page loads.  (Yes, you must serve more 
content to make things faster.  Welcome to the modern Internet.)  It should be 
part of the skinning mechanism, of course.

Other than that, Fossil’s generated tree-view HTML looks pretty good to me.  (I 
speak as a professional web app developer.)  It has little unnecessary 
whitespace, and I found no inline styling; Fossil is delegating all styling to 
CSS, as far as I can see.

The generated HTML is highly redundant in its form, but gzip takes care of 
that.  I see roughly 3:1 compression on the largest single directory under 
Fossil’s control here.

The only thing that could be a bit better is that the inline JS could be 
minified, but that is notoriously difficult to do in an automated fashion.  
I’ve used JSMin and YUI Compressor for this in my own web apps; it is not 
something you want to try and roll by hand.

…says he to the one who rolled his own RDBMS, parser generator, and DVCS. :)

Annnnyway, if you do add JS minification to Fossil, it should be part of the 
build process for Fossil, rather than something it does on the fly.

JSMin has a very “Fossil” sort of feel to it: single C source file, with no 
external dependencies other than a C compiler.  It doesn’t even ship with a 
Makefile!  It’s under a BSDish license, so it could be put into the Fossil 
source tree and used during the build process.

    http://www.crockford.com/javascript/jsmin.html

I used JSMin successfully for years.  I only switched to YUI Compressor 
recently because I wanted CSS minification.  Also, JSMin would occasionally do 
the wrong thing with certain very large 3rd party JS libraries, particularly 
when concatenated with *other* very large 3rd party JS libraries, in order to 
reduce the number of HTTP round trips.  Fossil doesn’t have either of these 
problems.

Besides that, YUI Compressor isn’t suited to the nature of Fossil: it ships as 
a ¾ MB JAR file.
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to