Although I'm loving the new direction Microsoft is taking , I can't help but wonder how they will justify the costs of the development. Historically, revenue would be generated from operating system running .Net or Visual Studio. With both those revenue streams taking a hit from .Net running on other platforms and Visual Studio Community Edition being free, aren't they shooting themselves in the foot?
Very informative video! I do have some additional questions however.
- What is the compilation overhead of including an unused header like say <map>? Is there any way to get a warning when a header is included but never used so that I can go and remove it?
- What is the compilation overhead of including a header with class declaration vs simply a forward declaration? What about for inline template classes like stl? Is there any way for the compiler or the analysis tool to let me know when I'm including a class declaration when a forward declaration is all that is needed (like <iosfwd>)?
Great talk overall however I have some questions regarding source code visualization. The concern about PDBs was glossed over in this talk but I'm still not clear how we configure them. I interpret Vance's comments that you don't need any configuration for Microsoft code since it will automatically get it from the web. What I'm not clear is how do we get source code and relevant debug information for our own code. Do we need to have PDBs side by side with dlls on production server? Can we configure a PDB source path? Assuming we have a TFS source server, how do we configure PerfView to use it in order to retrieve right version of source for version deployed in production environment?
Apr 08, 2014 at 7:42PM
Good video. One minor annoyance though is Gabriel's constant acknowledgement of the interviewee. When doing video interviews, it flows better from the viewer's point of view to have the interviewee not interrupted by "ok", "uh-huh", etc.
@Charles:Great, that blog was exactly what I was looking for! Now if only an almighty moderator could add a link to this blog as a "see also" in the video description so that other curious minds that have had their interest piqued can dig deeper, that would be wonderful
I find the title misleading. I was expecting some tips on how to write code in order to increase the likelihood of the compiler vectorizing a loop. Furthermore, I am left with the following questions:
- Does the array size need to be known at compile time?
- Do you need to use the index syntax (array[i]) or can you use pointers? What about iterators?
- Can the compiler vectorize operations on a std::vector<> ?
- Are there any operations that will prevent the compiler from vectorizing? ex. branching, trigonometry functions etc.
- If the compiler detects a cross-iteration dependency on one of the many operations in a loop, will it split the work in one vectorized loop and one scalar loop?