Talks / Let's Talk about Memory

2017-05-19..2017-05-20%!(EXTRA string=2017-05-19) Andrey Akinshin
DotNext 2017 Piter St. Petersburg, Russia In Russian

The bottleneck of many modern applications is the main memory. In this case, it’s very hard to measure the performance and write correct benchmarks: there are too many things which affect the execution time. In this session, we will talk about how it happens. We will discuss low-level hardware stuff (CPU cache and its associativity, alignment, store forwarding, 4K aliasing, prefetching, cache/page splits, cache bank conflicts, and so on) and .NET specific problems (pinned objects, the large object heap, how does the heap works in the full .NET Framework and Mono).