|
You are here |
dgraph.io | ||
| | | | |
mechanical-sympathy.blogspot.com
|
|
| | | | | When trying to build a highly scalable system the single biggest limitation on scalability is having multiple writers contend for any item o... | |
| | | | |
stefansf.de
|
|
| | | | | [AI summary] The provided text discusses the misuse of the `volatile` keyword in C programming and its inability to address concurrency and memory ordering issues. It explains that `volatile` ensures that compiler optimizations do not remove accesses to variables, but it does not guarantee memory visibility or prevent hardware reordering. The text highlights that `volatile` is only suitable for specific use cases like memory-mapped I/O, and that for thread-safe operations, atomic types and memory barriers are necessary. It also covers examples of how `volatile` can lead to incorrect behavior in multi-threaded programs and how C11's memory model and atomic operations provide a more robust solution. | |
| | | | |
blog.royalsloth.eu
|
|
| | | | | [AI summary] The article discusses the limitations of compilers in optimizing code and highlights the importance of understanding memory and CPU performance. It argues that modern programming languages are not optimized for current hardware, leading to inefficiencies. The author demonstrates that data-oriented programming can significantly improve performance by reducing memory access and leveraging CPU cache. However, object-oriented approaches are still popular due to their simplicity and historical influence, despite their performance drawbacks. The article also touches on other factors like memory bandwidth, disk I/O, and the importance of data layout for performance. | |
| | | | |
newvick.com
|
|
| | | A practical guide to Python concurrency using a Fibonacci server to demonstrate the strengths and limitations of threads, processes, and asyncio. Learn when to use each approach through hands-on examples | ||