NativeScript 101
new 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 年前3hazard pointer synchronous reclamation
invoked 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 | 5 月前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 年前3Working with Asynchrony Generically: A Tour of C++ Executors
specify 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 | 5 月前3Lock-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 | 5 月前3Bringing 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 | 5 月前3C++23: An Overview of Almost All New and Updated Features
Garbage 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 | 5 月前3KubeCon2020/大型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 年前3Performance Lets dive into Performance issues
into 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 年前3Making Libraries Consumable for Non-C++ Developers
https://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 | 5 月前3
共 23 条
- 1
- 2
- 3
相关搜索词
NativeScript101pptxhazardpointersynchronousreclamation霍琳2023RustChinaConfRustWorkingwithAsynchronyGenericallyTourofC++ExecutorsLockFreeAtomicSharedPointersWithoutSplitReferenceCountItCanBeDoneBringingExistingCodetoCUDAUsingconstexprandstdpmr23AnOverviewAlmostAllNewUpdatedFeaturesKubeCon2020大型Kubernetes集群资源编排优化PerformanceMakingLibrariesConsumableforNonDevelopers