4 ms·
For a program to freeze, it must do i/o, usually. E.g. my image viewer has a convenient thumbnail cache which speeds up things. But when I start it in a folder
by wruza 3y ago
For a program to freeze, it must do i/o, usually. E.g. my image viewer has a convenient thumbnail cache which speeds up things. But when I start it in a folder of many folders of many images, it freezes for several seconds in i/o. Sadly it has features that stop me from migrating away.
Another vector is uncontrolled synchronicity. E.g. I knew programs that could install an Explorer context menu item that could delay presenting it for two seconds when you right-click. I don’t remember the names, but remember hunting them down and removing from my context menu.
So I think that mostly all of this is because of (1) problematic implementations of caches and (2) plugins that break assumptions on how long something should take.
- PaulHoule 3y agoRight, I'm strongly skeptical about plugins of any kind for GUI applications. I've met people who claim they can install 30 plugins into Eclipse and still get things done but when I try it, Eclipse seems to get "pluginitis" and become unreliable. I've found distros of tools like Eclipse and the JetBrain IDEs that have a curated collection of plugins that seem to work but I find installing anything, even something little like a Plugin for bash files because it saw I was editing a ".sh" file, is like playing Russian Roulette. I feel the same way about web browser extensions. I think it's OK to install something like uBlock Origin and certain other anti-tracking tools, but you can make the case that those improve system performance whereas performance can only go in one way installing other browser extensions. The "problematic cache" rings true for me. Any developer has had the experience of making something that performs 100x or more better with a very simple cache. However it is by no mean a given that adding a cache layer really improves performance in a system, particularly when you can have problems with locks being held, invalidation, etc. Particularly if worst-case latency is your concern, for instance (and I think it is the concern when your computer is "freezing up") the cache will sometimes waste time doing its cache thing and still have to go to the source. Those games might do better because of a different performance culture... People are very concerned about worse-case latency for games but seem to be completely unconcerned when it is a spreadsheet or a graphics editor or the GUI shell of your desktop.
- bzzzt 3y agoEclipse is using an effectively 'cooperating multitasking' scheme where it just hooks lots of events from the main application. If you just install 1 single bad plugin that tries to do synchronous network access it will undoubtedly kill your responsiveness. Lots of plugin based systems have evolved a more resilient way of hosting those modules. DAW applications host hundreds of audio plugins and even browser plugins are sandboxed nowadays.