4 ms·
> In my experience it seems a good deal of bloat has to do with resiliency. Most desktop applications don't completely crash the entire system when they contain
by gizmo 3y ago
> In my experience it seems a good deal of bloat has to do with resiliency. Most desktop applications don't completely crash the entire system when they contain a memory access bug. They just crash. That doesn't come for free.
This is provided by hardware and basically free. Besides, computers aren't slow because of kernel bloat. Linux, OSX and Windows have serious issues but all major software problems are in user space.
- agentultra 3y ago> The other source of bloat is the kitchen-sink effect. This is the "user space" bloat. Resiliency is one of those things that's baked into every layer of the stack seems to be cumulative. Research into lock-free algorithms in order to improve efficiency requires correctness and there are still places in the OS level and user space that would benefit from it.
- gizmo 3y agoI'm sorry but that is also wrong. Lock-free algorithms don't help much with performance. Locks are very cheap and your PC spends very little time spin-locking. Even interrupts and thread-switching (which is much more expensive) aren't that big of a deal nowadays.
- agentultra 3y agoDon't be sorry, I'm not the expert! I only found the idea somewhat convincing after watching Conal's talk and have been curious. Is there performance left on the table from adding resilience to systems in your view?
- gizmo 3y agoI don't think performance is at odds with resiliency. You can have one, both, or neither. Resiliency you get by eliminating entire categories of problems with strong conceptual abstractions. As you pointed out, virtual memory that protects applications from interfering with one another is one such example. Other examples are transactional databases (ACID), and perhaps software transactional memory. Statelessness also has fantastic resilience properties and is a big driver behind the success of web applications. Take sqlite for instance. sqlite is very resilient, gives you transactions that you can roll back, and on top of that, storing small files in a sqlite database can be faster than using the filesystem directly. You get resilience AND performance AND a boost in productivity. https://www.sqlite.org/fasterthanfs.html https://www.sqlite.org/fasterthanfs.html