Too many fonts in Windows 10 can cause slow application starts
bigdanzblog.wordpress.com
bigdanzblog.wordpress.com
An app should never go over all fonts on a system in a blocking fashion.
The number of fonts on the system should never affect app performance.
But then how would the title clickbait itself to the top of HN?
Implying blame on Windows become of some random third parties making bozo decisions is just bizarre writing.
Back when magazines weren't nearly dead, I did production for a few years. The very first issue I worked on, I screwed up an ad by using a newer version of the font - the leading tables were different and a text block wrapped when it shouldn't have, so the advertiser got a couple free runs.
Always turned off rendering in lists and menus where I could, because it was not useful, slow, and harder to read.
1. Optimize for rendering the on-screen fonts first, then fill in the rest after the user’s starting looking at them.
2. Cache the preview. If it takes longer to render the sample text than to load a png, save the rendering so you can load it again next time.
Which they could do, but it would take forever to see adoption in Windows culture, and Microsoft evidently cannot, just cannot, get their UI shit together.
A better solution for the use-case of selecting fonts by looks is a dedicated font selection dialog that shows both the font name and a customizable example text in the font, and also lets you control the font size and variant (bold, italic). Some applications do exactly that.
Partial preprocessing might be needed, however, in order to extract the proper font names for sorting and autocomplete.
Just putting something like
<?xml version='1.0'?> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> <selectfont> <rejectfont> <glob>/usr/share/fonts/noto/*</glob> </rejectfont> </selectfont>
in any new file under /etc/fonts/conf.d/ will do the trick.
Even if in the wrong folder, every newly started application used the font as if it was installed correctly. Close the preview and the font disappeared again.
Having too many fonts can cause performance regressions in software but it's not Window's fault. Those apps generate a font cache for their UI to make it easier to select a font. Depending on how that's implemented it can be slow to generate.
I don't see anything in this blog post to indicate the offending Apps are using a native Windows UI for displaying fonts that is performing poorly.
This is like complaining that searching is slow when you have too many files on your HDD.
That said I could totally see tangled balls of mud and spaghetti like Photoshop requiring synchronous font caching to function.
Linux for example has fontconfig with a metadata cache "fc-cache" https://man.archlinux.org/man/fc-cache.1.en
My guess is that these are poorly optimized Apps and the blogger is blaming the OS for their offenses.
After a while, I used a font utility to selectively choose which fonts to load up and hide the rest from the OS. I would have thought MS would have fixed this by now.
Windows doesn't tell the app to do this, the app is choosing to do so. And if not fonts, it could be something else. (I've seen a homegrown enterprise app that would go weird if there was too much stuff in C:\Temp because it used it and scanned the WHOLE THING on startup for its stuff. Again, even though C:\Temp is a Windows folder, this is an app issue.)
Windows 7 was great, but after that it felt like someone scraped together bloat, telemetry and spyware and called it "Windows".
Linux, in my personal experience, requires faaaaaaar more debugging and tinkering and configuring. A full order of magnitude more time spent at least. This time is reduced if you’ve been using and configuring Linux boxes for 20 years. YMMV.
Now if you want to configure every little thing maybe that’s a good thing. If you want your computer to work consistently and without tinkering it’s maybe a bad thing.
And Windows + Visual Studio is still the best debugging experience for native code.
While Windows isn't without its flaws and has had its share of problematic updates, it generally feels more stable during routine updates compared to Linux.
Linux does offer better recovery options when things go awry. In contrast, troubleshooting on Windows can be challenging. Nonetheless, I find the recent versions of Windows to be more user-friendly than Linux desktops. Plus, with the addition of WSL, I can run Linux applications — including those with a GUI — when needed.
11 I hated, until it fixed its weird breakages and compatibility issues. And of course after switching everything around to look and function just like 10.
But Windows apps (let's be clear this is more an app problem than an OS problem) are filled with dumb shit like this. I have had many app performance issues where ProcMon shows a high number of IO operations against files, folders, registry, etc. Part of this is due to Windows Installer advertisement, which can inject this behavior into an application!
https://learn.microsoft.com/en-us/windows/win32/msi/platform...
(How does this happen? When an advertised entrypoint is invoked - shortcut, COM interface, file extension association, a few other things), there's 'Darwin Code' injected into the registry which causes an evaluation of *.msi packages installed which have that advertised entrypoint registered. It checks to see if any components are broken by checking the keypaths (keypaths could be files, folders, registry entries).
If you have an application invoking COM Interfaces many times a second, it's going to inject a bunch of IO ops to each time check all the components installed. I've seen apps when repackaged from an *.exe install into an *.msi slow down to a crawl (until you rebuild them with self-registration instead of using the MSI advertised tables).
What are you going to do, install linux? Then you get to enjoy your package manager deleting your windowing environment when you try to install Steam because of some stupid overlooked thing. You can't even click a single button to roll back your install to a previous known good condition, like Windows has had since like 2000.
I haven't had this issue, strangely. These days all my OS's are on SSD's though. But that was not the case when I first moved over to Win10 for my gaming PC and work both.
The shenanigans with windows updates though... I am convinced that there's something in the OS to intentionally cause strange behavior when updates are pending as a way of incentivizing you to reboot. This didn't used to happen. I haven't yet made the time to properly study it, because it's always at a moment where I have more important things to do.
You can, just use an immutable distro like Fedora Silverblue.
Even so, desktop font management tools seem like they've always been these third-party tools; you don't have closer integration in the desktop space of memory-saving features even close to what browser devs work on. Like more clearly managing browser tab (font) resources dynamically when not in use / not likely to be used anytime soon.
It would also solve the problem that half of your applications need to be restarted whenever you install a new font, or they just won't see it appear. And where they have hacks implemented to overcome that, that every bloody application has to query available fonts again, which makes it quite tedious for the system once you have lots of fonts and lots of applications open, even if your machine is beefy enough.
It wouldn't solve a problem of pathetic whiners who desperately cling to the old ways who will come in droves to complain on HN and LWN, but then again, nothing is ever new under the sun.
Thank you for this cue.
I doubt it would be a library, maybe 5 different daemons working together to complicate things.
I’m also talking about a few thousand font types/variants. I did typesetting and required many for compatibility with ingesting content.
This carried into GDI starts but caching made that painful to benchmark. Reliably.
Does make you wonder how much Windows 95 code or even just idioms are still clanging around inside Windows 10.
https://thepcspy.com/read/what-slows-windows-down/#codecs-an...
Windows implements many stupid ideas, don't get me wrong. it is not a perfect OS.
every day at work I help people with problems on Windows and in about 19/20 cases the cause is self-inflicted. the things they used to do in Windows XP or Windows 7 just don't work the same way anymore, and often cause problems.
but they just say "Windows sucks" anyway and no one challenges what they're doing until they come needing help with something.
There are also situations where fonts might be needed while offline, which despite the seemingly ubiquitous nature internet connections today is more common than one might think. It'd also mean forced decommissioning of the various ancient machines still hanging around in places like print shops that handle newly made TrueType fonts just fine.
if you're having a problem with an app, switching to an operating system that doesn't support that app at all is certainly one way to solve it.
pretty good odds, in the discussion for an article about quicken...
As a Linux daily driver it's not hard to see the benefits of Windows over a popular Linux distribution. You may be able to close the gap with a (rather expensive) support contract but at that point you also may have been better off with Windows. Using a Linux distribution is often a time commitment and change of philosophy. I, like you, are willing to make the trade.
I notice this opinion (that Windows is terrible) to be particularly pervasive among the tech literate but inexperienced. There is an entire contingent of the US alone (probably 80%) that is completely and fully served by a simple, easy to manage, easy to use Windows installation. If you've never tried to get your parents to use Linux even Ubuntu is often asking too much (though its getting better). That's not their fault. Once again, switching to the Linux Way (TM) is a lifestyle. Just your example alone (the UI is cleaner) can diverge into something almost worth an entire collegiate degree. It's only recently with snaps that Ubuntu and Co. have approached a degree of usability that might constitute 0.5% or less more uptake.
Perhaps for your use case Windows sucks. But having recently ported off Ubuntu LTS to the latest and greatest I can tell you that it was miserable. There's nothing quite like repeatedly crashing to a tty and having to parse boot logs to figure out what screwed up. It's a suffering I am willing to do both for the philosophy of Linux and the benefits I get. The further away from "consumer" Linux distributions you get the graph of difficulty goes hockey-stick real fast.
Let's not pretend Windows is useless spyware. It is nasty stuff for privacy but it is certainly not pointless.
Windows Server is great if you don't want a second job as a SysAdmin
>The only issue in linux is with proprietary software that microsoft intentionally limits to its own os.
Ah yes, quicken is Windows only because Microsoft is paying them under the table, and has nothing to do with the six users you will have on a linux system bitching and moaning about every product decision you have made because it doesn't work in their extremely niche windowing manager that they swear by because they want to look like a hollywood hacker. Meanwhile the only stable API on linux for enterprise software is Win32, because expecting every user who's just trying to do their damn job learn how to administrate a Linux system that still pretends we live in the 60s and text only terminals are the way of the future is absurd.