Re: Server side text layout (was Re: some XFree86 5.0 questions...)

Alexander Gelfenbain <[email protected]>
Newsgroups gmane.comp.xfree86.forum
Message-ID <[email protected]>
We have just posted a paper "Xft2 and STSF: A Side By Side 
Comparison" on our web site: 

http://stsf.sourceforge.net/docs.html

Before we continue with this discussion please take a look 
at it since it addresses a lot of issues we've been talking
about. 


Regards,
AG


On Thu, Mar 27, 2003 at 01:54:21AM -0500, Havoc Pennington wrote:
> On Wed, Mar 26, 2003 at 09:29:43PM -0800, Alexander Gelfenbain wrote: 
> > I believe in abstraction and encapsulation. STSF implements 
> > a text layout object. It abstracts out its implementation 
> > that can be either server-side or client-side.
> 
> You can't categorically believe in abstraction and encapsulation -
> both of those things have a cost. You have to use them when
> appropriate, when the abstraction penalty (in performance and
> complexity) is going to get you somewhere. This is the principle of
> KISS.
> 
> In our practical experience deploying solutions in this area over the
> last couple years, Pango is already over the performance and
> complexity threshold (both internally and externally) and is one of
> the larger application developer complaints about GTK+ 2.x in those
> respects. It's more complex and slower than just mapping 1 char to 1
> glyph and writing the glyphs to the screen, which is what people are
> used to.
> 
> It's not *good* to add extra complexity when the code you have is
> already functional enough, and the main complaint people have is that
> its abstraction penalty is already too high. To justify that you need
> to have a better reason than conceivably saving 100K-200K per app when
> I'm currently using 1500K or more to run a trivial app such as
> gnome-calculator or kcalc and OpenOffice uses 37 megabytes.  You have
> to have a better reason than slightly prettier API.
> 
> I'm sure if you spent all the effort going into STSF on fontconfig,
> you could find a way to save the 200K that was a heck of a lot
> simpler. If you want to trade performance for memory, what about just
> compressing data? Shared memory? A trivial little per-user daemon that
> caches font data and does nothing else? Clever data structures?  There
> are lots of options.
> 
> Heck, for that matter, why not optimize something else that's probably 
> much more easily optimizable. If the fontmap is 200K there's 1300K of
> other stuff just in gnome-calculator.
> 
> There isn't even any reason to believe that STSF will use less memory,
> once you count all the extra code in the client lib, the server, and
> the caches you will need to make it perform sanely.
> 
> Look at Gnumeric. Pango's performance has already led Gnumeric to
> cache hundreds of PangoLayout objects. Given this fact, does it save
> more memory to a) optimize the code so you can avoid the cache or b)
> make PangoLayout even slower. The cache isn't even a good solution,
> because initial layout is still too slow.
> 
> > You are missing one point. Glyph vectors and client-side layout is
> > not the only way to extend STSF layout processing. STSF layout is 
> > implemented as a layout engine drop-in object (shared library.)
> > The interface between STSF and layout engine objects is documented
> > and custom layout engines can be written and dynamically installed,
> > potentially without restarting the application or the ST Font Server.
> 
> So instead of calling a few client-side functions, apps have to write
> a dynamically loadable module and install it on the server side, where
> they don't even necessarily have filesystem access and the client and
> server may be running different versions of the OS or different OS's
> entirely.
> 
> I doubt having a couple dozen third-party DSOs loaded into my font
> server is going to be conducive to stability.
> 
> We've just finished spending two years moving millions of lines of
> code *that Sun has just shipped* over to fontconfig/Xft/Pango. Do we
> want to do that again?
> 
> Will 200K per app even matter after 1-2 years to finish STSF, 2 years
> to move GNOME over to it, and 1-2 years for OS vendors to deploy the
> result?
> 
> The Xft compat layer doesn't count, as it doesn't get you the benefits
> of STSF, it's just a reimplementation of Xft. STSF is only useful once
> we move to it natively.
> 
> Havoc
> _______________________________________________
> Forum mailing list
> [email protected]
> http://XFree86.Org/mailman/listinfo/forum

-- 
Alexander Gelfenbain, Sun Microsystems, Inc.
+1 (408) 635-0612
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.