Important: Please read the Qt Code of Conduct -

Size optimizations questions

  • Hi,

    I'm currently working on size reduction for our embedded linux system. Due to hardware constraint, we must copy the application and libraries into RAM before beeing able to run it. As we have a small memory chip (64MB), I need to keep Qt as small as possible.

    We used Qtconfig to select only the usefull things, but I'd like to know if the font called unifont_160_50.qpf is required (we don't use it but maybe it's a "generic" font used by some GUI items) ?. It's a 1.2MB file that represent around 15% of the whole Qt size (we could only reduce it's size down to 8Mb, even with very few GUI items selected).

    Regards, Jerome

  • It's a 16 point font, it's so big because it contains the full unicode Basic Multilingual Plane (about 64K code points).
    If you don't need chinese, japanese, etc. characters, you can try to replace it with a much smaller .qpf font with the same name and glyph size, but with just the ascii/"western"/"central european" code points.
    If i remember correctly, the GNU Unifonts tools include some "font editing" utilities for that.

    But if your application is already (for Qt applications) so small, have you tried looking at what's the memory usage of the rest of the other software loaded in the embedded device?
    Sometimes "generic" embedded OS builds include by default lots of stuff you don't need for specific applications on specific hardware.

  • Hi,

    Thanks for your tip. Our application is quite small already. That's QT libs that are the biggest part of our romfs. I will try what you suggested. But my original question was to know if this font was a kind of "fallback" font for some components ?


  • I guess that's the fallback font if you are using Qt/QWS (embedded), but it depends on both qt's and system's configurations.

    If it is the fallback/system font and you remove it, when you run your application you will see standard dialog boxes missing text or with "boxes"(i.e. missign glyph markers) instead of character glyphs.

Log in to reply