not your fathers language c++

Post on 02-Dec-2014

595 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Not your fathers language and visual studio

TRANSCRIPT

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

top related