A Simple Rollback System in C++BeyondWe still need to wait for all the player inputs to process the confirm frame…What is a rollback system?Input predictionMispredictionDoing a rollbackRollback Implementation DetailsPhysics vs Graphics game update. This allows to sequence your game frame.A Fixed TickRollback Manager InputsRollbackGame System Architecture Game systems need a function to rollback (revert to a previous state). Typically everywhere Player Character as a gameplay, physics, graphics and audio object…ECS-like architecture System and array of Components (C-struct without functionality, except operators maybe) You want to have0 码力 | 58 页 | 6.61 MB | 6 月前3
Combining Co-Routines and Functions into a Job SystemHlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 1 / 39Helmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 2 / 39 About Myself • Professor for Functions into a Job System - CppCon 2021 3 / 39 Creating Game Engines with C++ • Vienna Game Job System + • Graphics API Abstraction Layer + • Vienna Entity Component System + Vienna Type List Library 2.0 https://github.com/hlavacs 20Helmut Hlavacs – Combining Co-Routines and Functions into a Job System - CppCon 2021 4 / 39 The Game Loop auto prev = high_resolution_clock::now(); while( !finished()0 码力 | 39 页 | 1.23 MB | 6 月前3
Building a Coroutine-Based Job System Without Standard LibraryZhang tankiistanki tankijong COROUTINE JOB SYSTEM WITHOUT STANDARD LIBRARY source code of the system: https://github.com/tankiJong/cpp-coroutine-job-system Hi Everyone, Tanki here. Thanks for coming resources: https://gist.github.com/MattPD/9b55db49537a90545a90447392ad3aeb Before we dive into the system, I want to take 10 mins to have a quick recap about C++ coroutine and share some gotcha moments pretty overwhelmed by all different terms, not to mention to put them up together to form a knowledge system. I hope the following information can be helpful and I attached some links in the slides, or pointers0 码力 | 120 页 | 2.20 MB | 6 月前3
Behavior-driven Tests for Microservices-based Algo Trading Systemfrom Columbia University. Title : Behavior-driven Tests for Microservices-based Algo Trading System Summary : Introduction : This poster will introduce a test framework we use at Bloomberg to to enable behavior-based tests in natural language style for a microservices-based algo trading system that our engineering team is responsible for. Relevance : For our electronic trading business Although microservice components can easily be unit tested, it is often non-trivial to automate the system-level tests with external dependencies. Controlling external dependencies are especially important0 码力 | 1 页 | 65.24 KB | 6 月前3
Delivering safe C++violations of the static type system • No resource leaks • Convince developers to use that safe (or just safer) styles of use • Except where it is not appropriate • Direct use of system and hardware resources All “safe” general-purpose languages have “escape clauses” • To access system and hardware resources • E.g., the operating system • To improve efficiency of key abstractions • E.g., linked data structures earliest aims – Day #1 (1979) • Efficient use of hardware – based on C • Direct access to hardware and system resources • No elaborate run-time support (e.g., no GC) • Manage complexity – based on Simula •0 码力 | 74 页 | 2.72 MB | 6 月前3
The Roles of Symmetry And Orthogonality In Designgmail dot com Symmetry And Orthogonality System Design The Roles of In Designcharley bay charleyb123 at gmail dot com Symmetry And Orthogonality System Design The Roles of In DesignCharley Bay about “Guarantees”) • System/Subsystem Design (Defines API boundaries and behavior) • Implementation details (e.g., “lock-free” and “wait-free” algorithms provide guarantees for system-wide or per-thread The Roles of Symmetry And Orthogonality In Design cppcon 2021 Levels of “Knowing” • Examples: • System-specific adapters may require custom handling • Exceptional events may require special processing0 码力 | 151 页 | 3.20 MB | 6 月前3
Back to Basics: Smart Pointerswww.ModernesCpp.netSmart Pointer A First Overview std::unique_ptr – Exclusive Ownership std::shared_ptr – Shared Ownership std::weak_ptr – Break of Cyclic References Performance Concurrency Function and Return ValuesSmart Pointer A First Overview std::unique_ptr – Exclusive Ownership std::shared_ptr – Shared Ownership std::weak_ptr – Break of Cyclic References Performance Concurrency Function reference counter 5Smart Pointer A First Overview std::unique_ptr – Exclusive Ownership std::shared_ptr – Shared Ownership std::weak_ptr – Break of Cyclic References Performance Concurrency Function0 码力 | 30 页 | 625.43 KB | 6 月前3
Implementing C++ Modules: Lessons Learned, Lessons Abandoned▪ “Every single word about “token comparison” is there to workaround absence of a real module system" ▪ Safety: – A toolchain should try its best to diagnose ODR violations ▪ e.g. linker errors making up a component 7 (C) Dos Reis & DaCamara; CppCon 2021Module Ownership 8 (C) Dos Reis & DaCamara; CppCon 2021Module Ownership ▪ Supporting programming in the large (componentization) – Non-interference Non-interference between module-local entities (module linkage) – Interface provenance: ▪ Weak ownership – good ▪ Strong ownership – better ▪ ODR guarantees – An entity is owned by exactly one module – Reachability0 码力 | 53 页 | 1.33 MB | 6 月前3
ConcurrencyConcurrency STD::THREAD Don’t use std::thread directly Use a threading library or other task management system Similar characteristics to std::thread: A way to start a thread or start work concurrently A way can get shared ownership, or read access sm.lock_shared(); Calls to lock_shared() from other threads will succeed; calls to lock() will block Only one thread can have exclusive ownership, or write access the shared_mutex API is similar to unique_lock For shared ownership (read access) of a shared mutex, use shared_lock For exclusive ownership (write access) of a shared mutex, use scoped_lock https://en0 码力 | 160 页 | 2.91 MB | 6 月前3
Multi Producer, Multi Consumer, Lock Free, Atomic Queuehttps://github.com/erez-strauss/lockfree_mpmc_queue6 Latency Fat Tail - Raw Data Response Time of a System 1. 200 samples 2. us - microseconds 3. %TT - % of the total time7 Latency Fat Tail - Simple Histogram8 pop(front / head) ● Busy polling on full / empty vs. sync using system calls ● Blocking / non blocking / wait-free ● Data ownership or just value propagation 13 CppCon 2024 | Erez Strauss | Lockfree cpu-cores ● Multi consumers threads - on multiple cpu-cores ● C++17 - no need to support C++14 ● No system calls during critical path ● No locking - no interaction with the scheduler ● Non blocking - is0 码力 | 54 页 | 886.12 KB | 6 月前3
共 243 条
- 1
- 2
- 3
- 4
- 5
- 6
- 25
相关搜索词
SimpleRollbackSysteminC++CombiningCoRoutinesandFunctionsintoJobBuildingCoroutineBasedWithoutStandardLibraryBehaviordrivenTestsforMicroservicesbasedAlgoTradingDeliveringsafeTheRolesofSymmetryAndOrthogonalityInDesignBacktoBasicsSmartPointersImplementingModulesLessonsLearnedAbandonedConcurrencyMultiProducerConsumerLockFreeAtomicQueue













