 Making Games Start Fast: A Story About ConcurrencyMaking Games Start Fast A Story About ConcurrencyOnce upon a time, in the early 2000s...We had a small clock speed cap issue...But the solution was easy! Core 🔥🔥🔥 Core 1 Core 2 Core 3 Core 4The gains could be achieved by refactoring to lock free ◉ But we already reduced from 6.8s to 1.1s 61Making it a problem for the future Going Asynchronous 4 622.7 (Old) Startup CPU UsageSurprise gains ◉0 码力 | 76 页 | 2.22 MB | 6 月前3 Making Games Start Fast: A Story About ConcurrencyMaking Games Start Fast A Story About ConcurrencyOnce upon a time, in the early 2000s...We had a small clock speed cap issue...But the solution was easy! Core 🔥🔥🔥 Core 1 Core 2 Core 3 Core 4The gains could be achieved by refactoring to lock free ◉ But we already reduced from 6.8s to 1.1s 61Making it a problem for the future Going Asynchronous 4 622.7 (Old) Startup CPU UsageSurprise gains ◉0 码力 | 76 页 | 2.22 MB | 6 月前3
 Making Libraries Consumable for Non-C++ DevelopersDoTheThing(in BlubT b); Result: Windows – everything passed. Linux – everything failed. Why?Making Libraries Consumable for Non-C++ Developers Aaron R Robinson arobins@microsoft.com https://github0 码力 | 29 页 | 1.21 MB | 6 月前3 Making Libraries Consumable for Non-C++ DevelopersDoTheThing(in BlubT b); Result: Windows – everything passed. Linux – everything failed. Why?Making Libraries Consumable for Non-C++ Developers Aaron R Robinson arobins@microsoft.com https://github0 码力 | 29 页 | 1.21 MB | 6 月前3
 Testing Compile-time Constructs Within a Runtime Unit Testing Framework0 码力 | 50 页 | 1.37 MB | 6 月前3 Testing Compile-time Constructs Within a Runtime Unit Testing Framework0 码力 | 50 页 | 1.37 MB | 6 月前3
 Exceptions Under the Spotlightscopeof this talk. • This talk aims to include a historical perspective. However, all of the decision making described is alleged, I wasn’t there.  6PART 0: WHAT ARE EXCEPTIONS 7• A fail-handling mechanism well as hosted environments. • The overhead already exists, so adding a customizability to the framework (in the current state of things) can only increase the number of users. 48PART V: WHAT’S NEXT0 码力 | 53 页 | 2.82 MB | 6 月前3 Exceptions Under the Spotlightscopeof this talk. • This talk aims to include a historical perspective. However, all of the decision making described is alleged, I wasn’t there.  6PART 0: WHAT ARE EXCEPTIONS 7• A fail-handling mechanism well as hosted environments. • The overhead already exists, so adding a customizability to the framework (in the current state of things) can only increase the number of users. 48PART V: WHAT’S NEXT0 码力 | 53 页 | 2.82 MB | 6 月前3
 Class Layoutoften stateless.  In the past, we’d have to do a lot of metaprogramming to make a compile-time decision to use an alternative implementation to potentially get this optimization through the empty base by Stephen C. Dewhurst and Daniel Saks 11 What Could Possibly Go Wrong?  Just be careful about making layout assumptions. class Flatland { public: auto operator <=>(const Flatland &rhs) const Dewhurst and Daniel Saks 33 Improper Use of void *  Does this ever happen? Yes.  Consider a “framework” for setting and getting a Widget. typedef void *Widget; // improper use of typedef... void0 码力 | 51 页 | 461.37 KB | 6 月前3 Class Layoutoften stateless.  In the past, we’d have to do a lot of metaprogramming to make a compile-time decision to use an alternative implementation to potentially get this optimization through the empty base by Stephen C. Dewhurst and Daniel Saks 11 What Could Possibly Go Wrong?  Just be careful about making layout assumptions. class Flatland { public: auto operator <=>(const Flatland &rhs) const Dewhurst and Daniel Saks 33 Improper Use of void *  Does this ever happen? Yes.  Consider a “framework” for setting and getting a Widget. typedef void *Widget; // improper use of typedef... void0 码力 | 51 页 | 461.37 KB | 6 月前3
 Applicative: The Forgotten Functional Patternapplicative is all you need. You only need a monad if you need to make a decision on You only need a monad if you need to make a decision on which parser to run based on what was parsed before. which parser applicative is all you need. You only need a monad if you need to make a decision on You only need a monad if you need to make a decision on which parser to run based on what was parsed before. which parser I'm pretty sure the authors of P2300 made a conscious decision to excise any functional I'm pretty sure the authors of P2300 made a conscious decision to excise any functional terms from their vocabulary0 码力 | 141 页 | 11.33 MB | 6 月前3 Applicative: The Forgotten Functional Patternapplicative is all you need. You only need a monad if you need to make a decision on You only need a monad if you need to make a decision on which parser to run based on what was parsed before. which parser applicative is all you need. You only need a monad if you need to make a decision on You only need a monad if you need to make a decision on which parser to run based on what was parsed before. which parser I'm pretty sure the authors of P2300 made a conscious decision to excise any functional I'm pretty sure the authors of P2300 made a conscious decision to excise any functional terms from their vocabulary0 码力 | 141 页 | 11.33 MB | 6 月前3
 CppCon2021 Concurrency TS2 a mostly self-contained unit. ● Don’t use a TS simply to delay; it doesn’t simplify later decision making. Have a concrete and articulated criteria for completion. TS vs IS: question TS should answer design proposals? ● Is the proposal complicated or large that you fear there will be error in design decision ● Is it a research idea? ● Is there substantial invention? ● Can it be staged? ● Is there a subpart cases an SG vs TS vs IS continuum needs to be considered ● Please weigh our opinion as part of your decision process ● direction@lists.isocpp.org. © 2021. 13 What is in Concurrency TS2? • Several synchronization0 码力 | 58 页 | 1.62 MB | 6 月前0.03 CppCon2021 Concurrency TS2 a mostly self-contained unit. ● Don’t use a TS simply to delay; it doesn’t simplify later decision making. Have a concrete and articulated criteria for completion. TS vs IS: question TS should answer design proposals? ● Is the proposal complicated or large that you fear there will be error in design decision ● Is it a research idea? ● Is there substantial invention? ● Can it be staged? ● Is there a subpart cases an SG vs TS vs IS continuum needs to be considered ● Please weigh our opinion as part of your decision process ● direction@lists.isocpp.org. © 2021. 13 What is in Concurrency TS2? • Several synchronization0 码力 | 58 页 | 1.62 MB | 6 月前0.03
 Back to Basics: The Factory Patternbeing created ○ Objects are moving around ○ Artificial intelligence (path finding and other decision making) ○ In-game resource management is taking place 12 Command and Conquer Red AlertReal time being created ○ Objects are moving around ○ Artificial intelligence (path finding and other decision making) ○ In-game resource management is taking place 13 Command and Conquer Red Alert For today’s0 码力 | 93 页 | 3.92 MB | 6 月前3 Back to Basics: The Factory Patternbeing created ○ Objects are moving around ○ Artificial intelligence (path finding and other decision making) ○ In-game resource management is taking place 12 Command and Conquer Red AlertReal time being created ○ Objects are moving around ○ Artificial intelligence (path finding and other decision making) ○ In-game resource management is taking place 13 Command and Conquer Red Alert For today’s0 码力 | 93 页 | 3.92 MB | 6 月前3
 Back To Basics Functionslanguage) was instrumental in my start in getting excited about programming ○ (And later informed my decision to study computer science) ● I can still remember reading the programming manuals that came that begin with an underscore are reserved for something special -- the underscore intentionally making it harder to type.Function Basics - Parts of a Function (3/6) 30 The next part of a function are ‘constexpr’ used on the return type qualifier. 81 https://godbolt.org/z/hhxcWj6Gq ● Note that making something ‘constexpr’ also implies it is inline -- you have the computed value! ● Core Guideline(s):0 码力 | 123 页 | 7.26 MB | 6 月前3 Back To Basics Functionslanguage) was instrumental in my start in getting excited about programming ○ (And later informed my decision to study computer science) ● I can still remember reading the programming manuals that came that begin with an underscore are reserved for something special -- the underscore intentionally making it harder to type.Function Basics - Parts of a Function (3/6) 30 The next part of a function are ‘constexpr’ used on the return type qualifier. 81 https://godbolt.org/z/hhxcWj6Gq ● Note that making something ‘constexpr’ also implies it is inline -- you have the computed value! ● Core Guideline(s):0 码力 | 123 页 | 7.26 MB | 6 月前3
 Regular, Revisitedinitialization Using a common vocabulary type for these cases raises the level of abstraction, making it easier for others to understand what your code is doing.2023 Victor Ciura | @ciura_victor shallow operator== might be really confusing to users (especially because of string_view) final decision was to REMOVE operator== completely wg21.link/p1085 Should Span be Regular?2023 Victor Ciura shallow operator== might be really confusing to users (especially because of string_view) final decision was to REMOVE operator== completely wg21.link/p1085 Should Span be Regular?2023 Victor Ciura0 码力 | 180 页 | 19.96 MB | 6 月前3 Regular, Revisitedinitialization Using a common vocabulary type for these cases raises the level of abstraction, making it easier for others to understand what your code is doing.2023 Victor Ciura | @ciura_victor shallow operator== might be really confusing to users (especially because of string_view) final decision was to REMOVE operator== completely wg21.link/p1085 Should Span be Regular?2023 Victor Ciura shallow operator== might be really confusing to users (especially because of string_view) final decision was to REMOVE operator== completely wg21.link/p1085 Should Span be Regular?2023 Victor Ciura0 码力 | 180 页 | 19.96 MB | 6 月前3
共 202 条
- 1
- 2
- 3
- 4
- 5
- 6
- 21













