 NativeScript 101new OS features ? Fast to market ? Best experience Intro to NativeScript What is it? How does it work? 2013 2014 2015 2016 2017 Early prototype s “Core” engineerin g Public launch Adoption Nathan Walker, {N} community member Reuse existing native libraries 4 How does NativeScript work? Under the covers Generated at build time for OS & 3rd party native libraries NativeScript Android NativeScript Core Concepts Let’s look at the and Defining Views Pages/Views o XML markup structure o Elements (e.g. NativeScript 101new OS features ? Fast to market ? Best experience Intro to NativeScript What is it? How does it work? 2013 2014 2015 2016 2017 Early prototype s “Core” engineerin g Public launch Adoption Nathan Walker, {N} community member Reuse existing native libraries 4 How does NativeScript work? Under the covers Generated at build time for OS & 3rd party native libraries NativeScript Android NativeScript Core Concepts Let’s look at the and Defining Views Pages/Views o XML markup structure o Elements (e.g.- , 0 码力 | 90 页 | 40.11 MB | 1 年前3
 hazard pointer synchronous reclamationinvoked every 2 seconds. • Steps: • Extract retired objects from lists in the (global) domain structure. • Read hazard pointer values • Match addresses of retired objects with values read from hazard ConcurrentHashMap destruction. • Global cleanup as needed AFTER ConcurrentHashMap destruction doesn’t always work. Sometimes it is too late. • 2018: Sharded cohorts (1st try). Almost all users happy. One user: deadlock0 码力 | 31 页 | 856.38 KB | 6 月前3 hazard pointer synchronous reclamationinvoked every 2 seconds. • Steps: • Extract retired objects from lists in the (global) domain structure. • Read hazard pointer values • Match addresses of retired objects with values read from hazard ConcurrentHashMap destruction. • Global cleanup as needed AFTER ConcurrentHashMap destruction doesn’t always work. Sometimes it is too late. • 2018: Sharded cohorts (1st try). Almost all users happy. One user: deadlock0 码力 | 31 页 | 856.38 KB | 6 月前3
 基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺https://crates.io/crates/tonic • Authentication: https://crates.io/crates/jsonwebtoken • Data structure: • Arrow: https://crates.io/crates/arrow • Parquet: https://crates.io/crates/parquet • CSV: https://crates0 码力 | 29 页 | 2.26 MB | 1 年前3 基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺https://crates.io/crates/tonic • Authentication: https://crates.io/crates/jsonwebtoken • Data structure: • Arrow: https://crates.io/crates/arrow • Parquet: https://crates.io/crates/parquet • CSV: https://crates0 码力 | 29 页 | 2.26 MB | 1 年前3
 Working with Asynchrony Generically: A Tour of C++ Executorsspecify where, how, and when work should happen … including some standard ones: an event loop, portable access to the system execution context, nursery for spawned work4 P2300: STD::EXECUTION Proposes: concepts that represent: • A handle to a compute resource (aka, scheduler) • A unit of lazy async work (aka, sender) • A completion handler (aka, receiver) • A small, initial set of generic async algorithms: Utilities for integration with C++20 coroutines5 Example 1: Launching concurrent work6 EXAMPLE: LAUNCHING CONCURRENT WORK namespace ex = std::execution; int compute_intensive(int); int main() { un0 码力 | 121 页 | 7.73 MB | 6 月前3 Working with Asynchrony Generically: A Tour of C++ Executorsspecify where, how, and when work should happen … including some standard ones: an event loop, portable access to the system execution context, nursery for spawned work4 P2300: STD::EXECUTION Proposes: concepts that represent: • A handle to a compute resource (aka, scheduler) • A unit of lazy async work (aka, sender) • A completion handler (aka, receiver) • A small, initial set of generic async algorithms: Utilities for integration with C++20 coroutines5 Example 1: Launching concurrent work6 EXAMPLE: LAUNCHING CONCURRENT WORK namespace ex = std::execution; int compute_intensive(int); int main() { un0 码力 | 121 页 | 7.73 MB | 6 月前3
 Lock-Free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done!support for 16-byte atomics. • Generally ubiquitous and widely available. • std::atomic might not work… • Can use boost::atomic instead!  • Used by Anthony Williams’ implementation • Pack the Williams Folly Mine U=1% U=10% U=50%42 Daniel Anderson -- danielanderson.net Conclusion & Future work • My implementation is here: https://github.com/DanielLiamAnderson/atomic_shared_ptr • Still a proof-of-concept avenues for further work • Hybrid algorithm? Can we do a mixture of split reference count and deferred reclamation to get performance that is always competitive with both? • More work on optimizing for0 码力 | 45 页 | 5.12 MB | 6 月前3 Lock-Free Atomic Shared Pointers Without a Split Reference Count? It Can Be Done!support for 16-byte atomics. • Generally ubiquitous and widely available. • std::atomic might not work… • Can use boost::atomic instead!  • Used by Anthony Williams’ implementation • Pack the Williams Folly Mine U=1% U=10% U=50%42 Daniel Anderson -- danielanderson.net Conclusion & Future work • My implementation is here: https://github.com/DanielLiamAnderson/atomic_shared_ptr • Still a proof-of-concept avenues for further work • Hybrid algorithm? Can we do a mixture of split reference count and deferred reclamation to get performance that is always competitive with both? • More work on optimizing for0 码力 | 45 页 | 5.12 MB | 6 月前3
 Bringing Existing Code to CUDA Using constexpr and std::pmr• Memory • Host vs Device Functions • Return on Investment • Concluding remarks Outline 2 |• I work the RiskLab team at CSIRO on applied mathematics for Financial Risk. • The aim of this talk is constexpr Opens Up Third Party Libraries 44 |• Your existing code should be tested and known to work. • The fewer lines of code you add the less you need to debug. • You do need to test that your code of your constexpr function matches your runtime behaviour (they can diverge). No Work is Less Work Than Some Work 45 |Questions About constexpr/Execution Space Specifiers? 46 |Return on Investmentstd::pmr0 码力 | 51 页 | 3.68 MB | 6 月前3 Bringing Existing Code to CUDA Using constexpr and std::pmr• Memory • Host vs Device Functions • Return on Investment • Concluding remarks Outline 2 |• I work the RiskLab team at CSIRO on applied mathematics for Financial Risk. • The aim of this talk is constexpr Opens Up Third Party Libraries 44 |• Your existing code should be tested and known to work. • The fewer lines of code you add the less you need to debug. • You do need to test that your code of your constexpr function matches your runtime behaviour (they can diverge). No Work is Less Work Than Some Work 45 |Questions About constexpr/Execution Space Specifiers? 46 |Return on Investmentstd::pmr0 码力 | 51 页 | 3.68 MB | 6 月前3
 C++23: An Overview of Almost All New and Updated FeaturesGarbage Collection Support64 Stacktrace Library  Defined in C++23: An Overview of Almost All New and Updated FeaturesGarbage Collection Support64 Stacktrace Library  Defined in-  Allows you to get and work with stacktraces  E.g.: auto trace { std::stacktrace::current() }; std::println("{}", trace); ConsoleApplication2!main+0x63 1> D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(79): ConsoleApplication2! invoke_main+0x39 2> D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common __scrt_common_main_seh+0x12E 3> D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(331): ConsoleApplication2! __scrt_common_main+0xE 4> D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_main 0 码力 | 105 页 | 759.96 KB | 6 月前3
 KubeCon2020/大型Kubernetes集群的资源编排优化100 Scale down to 3 How do CronHPA work with HPA 07-28 10:00 07-28 11:00 CronHPA takes over the work HPA takes over the work HPA takes over the work If workload still high load and HPA maxReplicas0 码力 | 27 页 | 3.91 MB | 1 年前3 KubeCon2020/大型Kubernetes集群的资源编排优化100 Scale down to 3 How do CronHPA work with HPA 07-28 10:00 07-28 11:00 CronHPA takes over the work HPA takes over the work HPA takes over the work If workload still high load and HPA maxReplicas0 码力 | 27 页 | 3.91 MB | 1 年前3
 Performance Lets dive into Performance issuesinto Performance issues. • Everything in JavaScript defaults to being on the same thread. Too much work on main thread • Android nested layouts • Functions and objects defined in loops • Statements like both pro’s and cons • Pros: Easy access to anything dealing with GUI • Bad: Jank when doing lengthy work • Potential Solutions: Worker thread Nested Layouts • Primarily a Android issue; but does impact i=0;i<100000;i++) { doSomething(fun); } } Data Processing • Anything that does any amount of work; if possible move to your worker thread. • Gathering and saving data from/to your database is0 码力 | 15 页 | 1.71 MB | 1 年前3 Performance Lets dive into Performance issuesinto Performance issues. • Everything in JavaScript defaults to being on the same thread. Too much work on main thread • Android nested layouts • Functions and objects defined in loops • Statements like both pro’s and cons • Pros: Easy access to anything dealing with GUI • Bad: Jank when doing lengthy work • Potential Solutions: Worker thread Nested Layouts • Primarily a Android issue; but does impact i=0;i<100000;i++) { doSomething(fun); } } Data Processing • Anything that does any amount of work; if possible move to your worker thread. • Gathering and saving data from/to your database is0 码力 | 15 页 | 1.71 MB | 1 年前3
 Making Libraries Consumable for Non-C++ Developershttps://github.com/dotnet/runtimeWhat is interoperability? Enabling two or more disparate entities to work together. Don’t touch it! Glue code? Boiler plate? A nightmare?What is interoperability? Don’t supposed to free that? Was I not supposed to free that? Enabling two or more disparate entities to work together.Why interoperability? No language or platform is good for everything. Fast inner loop that force memory to have thread affinity at interop boundaries. • Consider how the consumer’s tools work with your library’s memory model.Conclusion • Document what you want and assume. • Understand assumptions0 码力 | 29 页 | 1.21 MB | 6 月前3 Making Libraries Consumable for Non-C++ Developershttps://github.com/dotnet/runtimeWhat is interoperability? Enabling two or more disparate entities to work together. Don’t touch it! Glue code? Boiler plate? A nightmare?What is interoperability? Don’t supposed to free that? Was I not supposed to free that? Enabling two or more disparate entities to work together.Why interoperability? No language or platform is good for everything. Fast inner loop that force memory to have thread affinity at interop boundaries. • Consider how the consumer’s tools work with your library’s memory model.Conclusion • Document what you want and assume. • Understand assumptions0 码力 | 29 页 | 1.21 MB | 6 月前3
共 23 条
- 1
- 2
- 3
相关搜索词
 NativeScript101pptxhazardpointersynchronousreclamation霍琳2023RustChinaConfRustWorkingwithAsynchronyGenericallyTourofC++ExecutorsLockFreeAtomicSharedPointersWithoutSplitReferenceCountItCanBeDoneBringingExistingCodetoCUDAUsingconstexprandstdpmr23AnOverviewAlmostAllNewUpdatedFeaturesKubeCon2020大型Kubernetes集群资源编排优化PerformanceMakingLibrariesConsumableforNonDevelopers













