not your fathers language c++
DESCRIPTION
Not your fathers language and visual studioTRANSCRIPT
Not your fathers Language C++
Microsoft
Senior Technical Evangelist
김명신
Reality Check
언어
관화25%
스페인어13%
영어10%힌디어
9%
아랍어7%
포르투칼어5%
프랑스어5%
러시아어5%
벵골어4%
일본어4%
독일어3%
우어2%
한국어2%
자와어2%
펀자브어2%
Languages
http://www.tiobe.com/index.php/content/paperinfo/tpci/in-dex.html
C++ 개발자 : Old guys?
18
21
24
27
30
33
36
39
42
45
48
51
54
57
60
63
66
69
75
80
84
88
92
0 20 40 60 80 100 120 140 160
COUNT
AG
E
Source: Microsoft
Age of C++ Projects
10+ years
5-9 years
0-4 years
0% 10% 20% 30% 40% 50% 60%
Source: Microsoft
Type of new C++ projects
Source: Microsoft
Gaming; 20%
Engr/Sci-ence; 15%
Frameworks; 12%Business; 10%
Embedded; 8%
Productivity; 8%
Imaging; 7%
Content; 7%
Other; 13%
WHY C++ ?
Where the focus is
EfficiencyBOT-19992009-EOT
Flexibility Abstrac-tion(OO,
Generics)
Produc-tivity
(Automatic Services,
Tools)C = efficient high-level portable codestruct, functions
Non-goal Non-goal
C++ = C+ efficient abstractionclass, templates
Non-goal
Java, C# = produc-tivityMandatory metadata & GC, JIT compilation
At the ex-pense of
At the ex-pense of
Performance Design• Locality is more than ever a first-order per-
formance issue• Keep data that is not used together apart• Keep data that is frequently used together close
together• Keep “hot” and “cold” data that is not used with
the same frequency apart• Size & Traversal Order
• Is it faster to sum an array of ints, an equivalent list of ints or an equivalent set of int? which, how much, so, any why?
• Size matter but Traversal order can matter more
Mobile
옥타코어는 고성능과 저전력코어가 각각 4 개씩 내장되어 있어 분할되어 동작을 하게 되는데
3D 게임과 같이 고성능 작업시 4 개의 코어인 코어텍스 -15 가 작동되고 메모 , 웹서핑같은
가벼운 작업시에는 코어텍스 -7 이 구동되어 효율적으로 사용이 가능하다고 합니다
Version 2Objective-C,
C & C++Incl. C++ wrap-pers over Objec-tive-c
Java,C & C++ NDK
Incl. java-free C++ Apps
.NET.C & C++ WINRTP
Version 1 - Java .NET
Datacenter
James Hamilton
http://perspectives.mvdirona.com/2010/09/18/OverallDataCenter-Costs.aspx
Where the focus is
DEMOC++ new features
ISCA(The ACM/IEEE International Symposium on Computer Archi-tecture)
WHY C++ !
Visual Studio 2012For C++ Developer
C++ focus in Visual Studio 2012
Performance
~
Windows 8
Productivity Conformance
Target PlatformTarget OS Native Code Managed Code
Windows 8 O O
Windows 7 O O
Windows Vista O O
Windows XP 이전 O O
Windows Server 2012 O O
Windows Server 2008 R2 O O
Windows Server 2008 O O
Windows Server 2003 이전 O O
플랫폼 호환성 및 시스템 요구 사항
Compiler Optimization
Auto Vectorization
Use vector registers and in-struction
(Streaming SIMD Extension 4.2)
Auto Parallelization
Conservative in selecting the loop
#pragma loop(hint_parallel(n))
C++AMP(Accelerated Massive Parallel-ism)
Take Advan-tage of data-paral-lel hardware
AMP Specification
ConformanceC++11 Core Language
Features VC10 VC11
Rvalue references v2.0 v2.1*Lambdas v1.0 v1.1decltype v1.0 v1.1**
auto v1.0 v1.0
static_Assert Yes Yes
Trailing return types Yes Yes
nullptr Yes YesStrongly typed enums Partial YesForward declared enums No YesStandard-layout and trivial types No Yes
Atomics No YesStrong compare and ex-change No Yes
Bidirectional fences No Yes
Data-dependency ordering No Yes
Range Based for loops No Yes
Independent “Scary” iterators No Yes
Already in VS2010Lambdas, R-value referencesstatic_assertauto, decltype, nullptr
New in VS2012Range-based for loopsStateless lambdasScoped enumerationsNew STL headers:
<atomic>, <chrono>, <condition_variable>, <filesystem>, <future>, <mutex>, <ratio>, <thread>
Projects & solutionsBackwards compatibilityBrowse from Solution Explorer
Window managementPin & PreviewMulti-mon
Search everywhereSearch across the IDE.Search in tool windows.
Visual Studio 2012 IDE
Modern C++ Code Editor
Improved colorizationImproves code understanding
Reference highlightingUses the compiler to show accurate matchesImproves code understanding.
IntelliSenseAggressive Member listMember list filteringC++/CLI support.Code Snippets
ALM and C++
Across the boardHelp manage projects w/ Sprint Planning, U… Improved developer productivity w/ Code review, E…
Brand new for C++ !!!Improved Code coverageBetter static analysisArchitecture ToolsUnit Testing
Architecture DiagramUnit Testing
Code Coverage Code Analysis
DEMOProfilerConcurrency VisualizerCode Analysis/TFServiceUnit Test / Analysis Code Coverage