[Development] Mime database size
David Faure
david.faure at kdab.com
Sun Feb 22 19:20:54 CET 2015
On Thursday 19 February 2015 01:55:01 Kevin Kofler wrote:
> Arnaud Vrac wrote:
> > Commit fbeeaf2 in qtbase adds QT_NO_MIMETYPE:
> >
> > "The mime type stuff generates one of the biggest translation units in
> > QtCore due to the compressed 1.7MB freedesktop.org.xml resource. With
> > QT_NO_MIMETYPE, libQt5Core.so is almost 400Kb smaller (4.8MB->4.4MB gcc
> > 4.9 stripped release build)"
> >
> > It would be nice to be able to find a middle ground between disabling the
> > mime database completely and adding 1.7MB of data to Qt. The
> > update-mime-database binary from the shared-mime-info package can generate
> > a binary file from the XML, which is 100KB large and still allows finding
> > the mimetype of any file. The only difference with the XML is that you
> > don't have the translated pretty string for the mime type. The binary file
> > can also be mmapped and used for every request very efficiently, instead
> > of allocating all mime types data in memory.
>
> This won't help the other platforms, but on GNU/Linux, can't we just use the
> system shared-mime-info database?
We do.
The builtin XML is for the case where it's not available (Windows/Mac) or not
found (reduced Linux system, e.g. some embedded linux systems).
Lars suggested long ago that we put the binary instead in QtCore (like
Giuseppe just did). This would be good for performance too - parsing this XML
is a horrible performance penalty. The reason I didn't do that yet is that on
systems without update-mime-database we still need to be able to parse XML
files (e.g. for additional mimetypes installed by applications), so the
current design (XML *or* binary backend) doesn't work for that, we need a way
to use both.
Being able to skip embedding the DB altogether, in whichever form, as
suggested by Thiago, can help desktop linux distros on top of that.
--
David Faure | david.faure at kdab.com | Managing Director KDAB France
KDAB (France) S.A.S., a KDAB Group company
Tel. France +33 (0)4 90 84 08 53, http://www.kdab.fr
KDAB - Qt Experts - Platform-independent software solutions
More information about the Development
mailing list