Techniques to Optimise Multi-threaded Data Building During Game Development
1 Dominik Grabiec - Techniques to Optimise Multi-threaded Data Building During Game Development - CppCon 2024Hello My name is Dominik Grabiec This talk isFocusing on optimising the process around Differences from Game Code • Assumptions and Concepts 2. Techniques • Keep Threads Busy • 3D Caching • Optimise Sorting • Avoid Blocking Threads 3. Questions 2Three sections Background What data building is is Differences from normal game code Concepts used in presentation Techniques I've used to optimise the data building system Time for questions at end Numbers at bottom of slides Speaker notesABOUT ME 0 码力 | 99 页 | 2.40 MB | 5 月前3Learning Gulp
Tasks So, we now have A function defined Above to optimise Styles • A function defined Above to optimise scripts • A function defined Above to optimise HTML • A function to generate multiple images per0 码力 | 45 页 | 977.19 KB | 1 年前3File I/O for Game Developers: Past, Present, and Future
do we have files? • What is a filesystem? • Why should we avoid buffered file IO? • How do we optimise unbuffered file IO? • How might the standard help us in future?AGENDA • Sub-megabyte days • More do we have files? • What is a filesystem? • Why should we avoid buffered file IO? • How do we optimise unbuffered file IO? • How might the standard help us in future?SUMMARY • https://wg21.link/p10400 码力 | 64 页 | 2.69 MB | 5 月前3Agda User Manual v2.6.2
ing is False, then the --count-clusters flag triggers an error message. Default: off. optimise-heavily Optimise Agda heavily. (In this case it might make sense to limit GHC’s memory usage.) Default: natural numbers, performing the corresponding operation, and then converting back. The compiler will optimise these to use 64-bit arithmetic. For instance: addWord : Word64 → Word64 → Word64 addWord a b = WithoutKFlagPrimEraseEquality WrongInstanceDeclaration all cpphs debug enable-cluster-counting ignore optimise-heavily warn. D debug command line option DeprecationWarning command line option E EmptyAbstract0 码力 | 348 页 | 414.11 KB | 1 年前3Agda User Manual v2.6.2.2
ing is False, then the --count-clusters flag triggers an error message. Default: off. optimise-heavily Optimise Agda heavily. (In this case it might make sense to limit GHC’s memory usage.) Default: natural numbers, performing the corresponding operation, and then converting back. The compiler will optimise these to use 64-bit arithmetic. For instance: addWord : Word64 → Word64 → Word64 addWord a b = WithoutKFlagPrimEraseEquality WrongInstanceDeclaration all cpphs debug enable-cluster-counting ignore optimise-heavily warn. D debug command line option DeprecationWarning command line option E EmptyAbstract0 码力 | 354 页 | 433.60 KB | 1 年前3Agda User Manual v2.6.2.1
ing is False, then the --count-clusters flag triggers an error message. Default: off. optimise-heavily Optimise Agda heavily. (In this case it might make sense to limit GHC’s memory usage.) Default: natural numbers, performing the corresponding operation, and then converting back. The compiler will optimise these to use 64-bit arithmetic. For instance: addWord : Word64 → Word64 → Word64 addWord a b = WithoutKFlagPrimEraseEquality WrongInstanceDeclaration all cpphs debug enable-cluster-counting ignore optimise-heavily warn. D debug command line option DeprecationWarning command line option E EmptyAbstract0 码力 | 350 页 | 416.80 KB | 1 年前3Contracts for C++
evaluated with one of the following evaluation semantics: • assume: do not check the predicate and optimise on the assumption that it is true (= if it is false, the behaviour is undefined) - not in P2900123 (→ P2461, P3098) post [oldSize = size()] (size() == oldSize + 1); • Optimise based on assumption that predicate evaluates to true; otherwise, the behaviour is undefined (assume0 码力 | 181 页 | 4.44 MB | 5 月前3Agda User Manual v2.6.2
ing is False, then the --count-clusters flag triggers an error message. Default: off. optimise-heavily Optimise Agda heavily. (In this case it might make sense to limit GHC’s memory usage.) Default: natural numbers, performing the correspond- ing operation, and then converting back. The compiler will optimise these to use 64-bit arithmetic. For instance: addWord : Word64 → Word64 → Word64 addWord a b = MissingDefinitions, 195 ModuleDoesntExport, 195 NotAllowedInMutual, 195 NotStrictlyPositive, 195 OldBuiltin, 195 optimise-heavily, 12 OverlappingTokensWarning, 195 PolarityPragmasButNotPostulates, 195 PragmaCompiled, 1950 码力 | 255 页 | 1.13 MB | 1 年前3Agda User Manual v2.6.2.2
ing is False, then the --count-clusters flag triggers an error message. Default: off. optimise-heavily Optimise Agda heavily. (In this case it might make sense to limit GHC’s memory usage.) Default: natural numbers, performing the correspond- ing operation, and then converting back. The compiler will optimise these to use 64-bit arithmetic. For instance: addWord : Word64 → Word64 → Word64 addWord a b = Agda User Manual, Release 2.6.2.2 NotAllowedInMutual, 197 NotStrictlyPositive, 197 OldBuiltin, 197 optimise-heavily, 13 OverlappingTokensWarning, 197 PolarityPragmasButNotPostulates, 197 PragmaCompiled, 1970 码力 | 257 页 | 1.16 MB | 1 年前3Agda User Manual v2.6.2.1
ing is False, then the --count-clusters flag triggers an error message. Default: off. optimise-heavily Optimise Agda heavily. (In this case it might make sense to limit GHC’s memory usage.) Default: natural numbers, performing the correspond- ing operation, and then converting back. The compiler will optimise these to use 64-bit arithmetic. For instance: addWord : Word64 → Word64 → Word64 addWord a b = NotAllowedInMutual, 195 NotStrictlyPositive, 195 OldBuiltin, 195 Index 249 Agda User Manual, Release 2.6.2.1 optimise-heavily, 12 OverlappingTokensWarning, 195 PolarityPragmasButNotPostulates, 195 PragmaCompiled, 1950 码力 | 255 页 | 1.14 MB | 1 年前3
共 50 条
- 1
- 2
- 3
- 4
- 5