📜 ⬆️ ⬇️

.NET-hardcore in Moscow

Conference DotNext 2015 Moscow is coming soon! I was fortunate enough to be on the program committee of this wonderful event, so I am now aware of backstage activities: I am watching the overall organization and helping to prepare reports. The organizers have been working for long weeks from morning to evening so that you have the opportunity to immerse yourself in a unique atmosphere for one day: listen to cool reports, communicate with smart people, make useful contacts, eat delicious food, be inspired for great things and have a good time.

However, the most important thing at the conference is not the atmosphere, but the content. This year the program is very rich: 22 speakers (of which 7 are MVPs) will talk to you about .NET all day in 4 threads. Topics will be very different: there are reports about the new .NET-world, about modern approaches and trends in software development, about the use of good libraries / tools and about a lot more. But my favorite topic is .NET internals, runtime giblets and other hardcore. It seems to me that, sooner or later, every senior developer comes to the realization that, in order to develop truly complex products, it obviously will not hurt to understand what is happening under the hood of our programs. Alas, it is often long and difficult to deal with this on your own: too many things have to be studied. Therefore, with each subsequent DotNext conference, we increase the hardcore degree and try to manage to load the maximum amount of interesting and useful information into the developers' RAM in one day about what our applications actually do and how to write them better.

On duty, I already listened to almost all the reports (each speaker undergoes a series of exhausting auditions, trainings and trainings to improve the quality of the material and presentation), so I can well imagine what awaits you in two weeks. And today I would like to talk a bit about the reports with the hardcore tag. If you like to deal with the runtime as well as I love it, then I highly recommend visiting the six reports below.
')




Sasha Goldstein: The Vector in Your CPU: Exploiting SIMD for Superscalar Performance


I am very pleased that this year we were able to get such a speaker. Sasha is the author of a very cool book called “Pro .NET Performance” , the author of steep courses at Pluralsight, a blogger (glances at his posts will be enough to realize what he has, what to say), MVP and just a wonderful person. This year, he will bring us two reports at once, one of which will be about vectorization. The theme in the .NET world is not so well-promoted, because until recently there were no normal possibilities for this very vectorization. But now we have .NET 4.6 and RyuJIT, which can dramatically increase the efficiency of many algorithms. This knowledge is very useful, so if your hands have not yet reached the point of properly dealing with System.Numerics.Vectors , then on this report you will clearly learn many new and useful things.





Karlen Simonyan: Atomic operations and primitives in .NET


In the Java world, people love to discuss the Java Memory Model. On this topic I really like the speeches of Alexei Shipelev and the reports of Alexei Fedorov. I waited for a very long time, when in the .NET-world this topic will start to be popularized. And finally waited! Karlen szKarlen Simonyan will come to us and read a delightful talk on this topic. A week ago, he sent me his slides, since then every night before bed I open them, reread and rejoice.

I can say that there are many words like race condition, acquire / release, volatile, store buffer, data alignment, spurious wakeup, false sharing, lock-free, atomics.net and more. During the report, Karlen will add to the above list of important terms with popular explanations, as well as provide illustrative examples illustrating the complexity of modern processors. The level of detail of the material and the number of fascinating facts going wild, so if you can work more than in one stream, then the report visit is classified as mandatory.





Alexandr Nikitin: .NET Generics under the hood and a JITter bug for dessert


Generic classes are actively used in almost any .NET project. But how many of you think about what lies behind the magical construction <T> ? How many of you appreciate the titanic work that the JIT compiler does for us every day, generating thousands of assembly instructions from readable and concise syntaxes? If not, I recommend to go to the report of Alexander. And I also recommend reading his blog , it immediately becomes clear that this person can clearly tell a lot about the insides of generic classes.





Mikhail Shcherbakov: WinDbg in the hands of a .NET developer


Listening and reading about what is happening inside your programs is certainly useful, but it is even more useful to take your own code and begin to crawl inside yourself, learning assembly listings, method tables and internal structures of the garbage collector. This is a complicated matter, but the nights spent in the debugger give a unique experience that cannot be acquired by other means. If you give this lesson due attention, then you will start to understand much better what is happening and you will be able to catch the hardcore errors of the runtime itself in the sane time. Of course, a good and convenient tool is needed for analyzing .NET internals. Alas, this has not yet been invented, so you have to use WinDbg. I remember how I met this program for the first time. I opened WinDbg, looked at it, WinDbg looked at me, after which everyone went their separate ways. Later I had to return to this wonderful instrument, but the first few days had to suffer a lot. It’s a pity I didn’t have a person who would tell and show me everything.

But you have such a person! Mikhail Shcherbakov will arrive at DotNext and tell us how to cope with WinDbg and how cool things can be done with it. Misha is a regular speaker at various .NET conferences (he likes to talk about application security ), the organizer of .NET meetings in St. Petersburg, the author of the IntelliDebugger project and a cool .NET developer. If during the report you are not aware of all the subtleties of working with WinDbg, you can wait for Misha on the sidelines and make him show the examples.





Igor Yakovlev: Use and device DLR


DLR is a specific topic, not everyone is involved in it. But if you are still able to write the dynamic keyword, it obviously does not hurt to know what it means and what the usual a + b can turn into if you decide to follow the dynamic typing path. In this case, you definitely need to go to the report of Igor: he will tell about the internal cuisine of this approach and how it can be useful to you in life. And if the idea that you can write dynamic code under .NET, you still go: the topic is interesting and informative. Igor not so long ago already talked about the DLR in St. Petersburg, and he would come to Moscow with a significantly improved and improved version of his material.





Andrey Akinshin: We continue to talk about micro-optimizations of .NET applications


I will also make a report, I will talk about how to make your applications super-fast. I happened to speak on this topic on the past DotNext in St. Petersburg, but this time I will continue my favorite topic and for an hour I will slack off various funny stories about performance.

All the plots are based on real events: these are problems that I personally, my colleagues and programmers have come across from the Internet. I will talk about old topics like benchmarks ( here is a fresh video about why benchmarks are complex), and about new ones like blittable types . I have a lot of stories, but for the report I tried to choose the simplest and most illustrative ones, so that in the allotted time I walked on various topics and introduced you to the amazing world of micro-optimizations.





Conclusion


To summarize: the conference is very cool and hardcore. If you have the opportunity, I highly recommend to visit DotNext 2015 Moscow, you will not find other similar conferences!


Source: https://habr.com/ru/post/271915/


All Articles