⬆️ ⬇️

DotNext - Moscow 2016. How it was





I first visited “Dotnext” this summer in St. Petersburg . Then I was attracted by the names of Dino Esposito and Sasha Goldstein in the list of speakers. According to the book of Dino, I once mastered ASP.NET long ago. Pro .NET Performance did not read, but heard only positive feedback. I never considered performance to be my forte, and the need to deal with optimizing performance began to arise quite often. In addition, at that time I had mixed feelings about .NET Core. I wanted to know what others think about this. The decisive factor, of course, was the desire of the girl to go to St. Petersburg for a couple of days. We went and did not regret :)



Everything was more complicated with Moscow - I dislike this city about the same as winter in Russia. This time the scales were moved by C ++ reports through C # , My life with actors , Squeezing the Hardware to Make Performance Juice, and the presence at the conference of the Stack Overflow employee . Each of them was interesting in practical terms, so the trip was not fun, but a working one.

')

Dino Esposito opened the conference and I was late for this report. Firstly, since the summer there was little that fundamentally changed in ASP.NET Core, and even then Dino clearly defined his opinion three years ahead. Secondly, I follow the .NET Core from the fifth beta. The lack of SignalR can be overcome by sticking socket.io for appropriate purposes. But EF7 is still damp.



After reviewing the video recording, I realized that I had not lost anything. It is worth noting that for those who do not follow the development of the .NET Core report could be useful, because in the events of the period RC1-RC2 you could really get lost.







Then I went to the fourth hall , because porting the benefits to C # is a topical task for me. The report of Egor made Mono developers really appreciate the fact that they had done some non-trivial work, despite the fact that Mono is traditionally scolded and blasphemed, because “there are bugs” and, in general, “everything is crooked” and not the “level of quality That in Microsoft. The report touched upon the topic of preventing memory leaks when interacting from C # with a plus code. If slides starting from the 25th do not cause you questions, you know about the internal structure of .NET much more than me. In the discussion area was able to talk about HoloLens.



To order a preliminary version to play around - the toad is choking, and Egor has a device. I asked about the details of working with the "lenses". Not sure whether the commercial application of the device, except in the visualization of interiors. I would love to, because the toy is cool.



After the break, I had to choose between akka.net and Stack Overflow. The desire to share experiences and ask specific facts and figures about akka.net won and I stayed in the fourth hall. As a result, reinforced the view that it is time to learn F #. First, the functional paradigm looks better for event-driven systems. Secondly, lines of code are something that I have been actively struggling with lately, because there is too much code.



Vagif's statistics on slide 83 are not in favor of C #. The good news for me was that persistent-actors work quite well. We since the beta did not risk contact. Already beyond the scope of the discussion, prospects for akka streams were discussed. In Russia, “Akka” is not engaged in so many people, so the exchange of experience was extremely useful. It should be noted separately that this report was by far the most “creative”. About three minutes took the performance of a song dedicated to the actor system. I think it's fresh :)



The next report unfortunately disappointed me. It seemed that the time to cover the multithreading from the processor level to the .NET Framework simply did not suffice. There were a lot of information and figures, but in the end there was a feeling of understatement: what to do with this information, what to look for, what problems can be encountered in the “real world”? Perhaps I just became a hostage to my expectations. Despite the overall feeling, I liked the part dedicated to the keyword lock. The implementation details (slide 37) , voiced by Gael, did not come across to me on the Internet / literature. It always seemed that lock just goes straight to step 3: “Create kernel event and wait”.



But Karlen's report , on the contrary, turned out to be unexpectedly bright. Perhaps this contributed to the special manner of presentation of the speaker. I'm not a fan of looking at assembler listings. It's great that someone can measure the performance of different .NET methods for you and explain why this is how it happens and not otherwise. It is considered that virtual methods are slow. Karlen very lucidly demonstrated that it is not. Look at slide number 37 , we bet surprised! In general, there were many details about the difference between classes and interfaces, the implementation of generics. Karlen's information is extremely helpful to library developers.





The next is better . The story of how Stack Overflow designed the search for tags - just a masterpiece. It was possible to highlight in one report the topics of database optimization, full text search, unexpected details of GC, features of parallelization and work with CUDA. And all this is a real example of a site that we use almost daily. For me, this is definitely the best report at the conference. The slides have links. Information report is available in the blog of Mark Gravella . Anyone who needs a search in large databases is an absolute must read.



By the end of the conference, I began to tire of the abundance of low-level details. The Goldstein report was not easy either. It would seem SIMD is more for gamedev and physics, mathematics. But the experience of Stack Overflow suggested that it could be different. In any case, simply knowing this information can greatly help in making the right technological decisions. One of my friends, is engaged in robotics. Most of the software - on the pros for reasons of performance. When they started, no one seriously considered Java or C # as a platform. I used to share this view. The reports of Marco and Sasha make you wonder if it really is?



I also almost completely missed the final report , because I communicated with representatives of RavenDB. I decided that it was necessary to look at the recording of their speech: apparently, the guys did a great job in the fourth version.



I liked the idea of ​​map / reduce replications in relational storage. RavenDB 4 is still in alpha, of course, and it's too early to use in production. But if everything is really as good as the developers say, then RavenDB is now one of the most attractive databases for refactoring legacy .NET systems on NoSQL storage (where you really need it, of course).



Summary



Describe the stands of sponsors and lunch, I'm not interested. Sponsors - offered to work for them or told about their products. Dinner was without queues and delays - everything is clear.



Since the trip was working, I appreciate it in the value of the information received. Despite the high cost of participation, I think you need to go. First of all, because you can ask questions you are interested in and find out about the newest and most advanced.



By the way, this time a thought occurred to me: there is a problem, not with the conference, but with the public, with the community. Some reports were so specific that there were only a few brave souls with questions. How many programmers in Russia have access to the newest processors and the ability to check, benchmark different architectures? That tupit branch prediction in small cycles on Haswell, but on Ivy Bridge - no. Who really gets to rewrite algorithms to insert SIMDs into them?



If five years ago I thought that there was no broad market for such tasks, now the situation is changing. The annual explosive growth in the frequency of processors and the core build-up is over, nobody canceled the memory bandwidth, which means that soon we will have to optimize the algorithms again and squeeze the maximum out of iron. And to know how to optimize, you need to learn now.

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



All Articles