Criteo is the advertising platform for the open Internet, an ecosystem that favors neutrality, transparency and inclusiveness. Close to 2,900 Criteo team members partner with close to 20,000 customers and thousands of publishers around the globe to deliver effective advertising across all channels, by applying advanced machine learning to unparalleled data sets. Criteo empowers companies of all sizes with the technology they need to better know and serve their customers.
.NET provides a nice abstraction over many Windows core mechanisms, such as processes, threads and memory. But how exactly does .NET relate to Windows?
How are threads scheduled for execution?
What is the difference between virtual, physical, private and shared memory?
In this talk we’ll answer these and other questions to strengthen understanding of the .NET and Windows platforms and their intricate connections.
Have you ever stopped to think about all the things that happen when you execute a simple .NET program?
This talk will delve into the internals of the recently open-sourced .NET Core runtime, looking at what happens, when it happens and why.
Making use of freely available tools such as 'PerfView', we'll examine the Execution Engine, Type Loader, Just-in-Time (JIT) Compiler and the CLR Hosting API to see how all these components play a part in making 'Hello World' possible.
You know how to throw and catch exception. But do you know how are they implemented internally?
Do you know what is SEH, VEH and VCH in Windows? Or do you know why C# introduced exceptions filters or how to catch everything, even StackOverflowException?
In this presentation I show internal mechanisms used by Windows for handling exceptions. We will see constructs used by C++ and C# languages, CLR instructions and machine code details of those. There will be some live debugging and low to high level code.
Times have changed. Multi-core CPUs have become the norm and multi-threading has been replaced by asynchronous programming. You think you know everything about async/await... until something goes wrong. While debugging synchronous code can be straightforward, investigating an asynchronous deadlock or race condition proves to be surprisingly tricky.
In this talk, follow us through real-life examples and investigations to cover the main asynchronous code patterns that can go wrong. You will tumble on deadlock and understand the reasons behind ThreadPool thread starvation.
In addition to WinDbg magic to follow async/await chains, Visual Studio goodies won't be forgotten to quickly analyze hundreds of call stacks or tasks status.