Hidden Overhead of a Function API
performance, we typically think about the function logic. We’ll see that a well designed function API can have an even larger impact.How will we compare performance? ● Benchmarks at this low level are advance(RandIter& iter, Diff n, random_access_iterator_tag) { iter += n; } ● Access token to make some API available only inside the library (like the default “package private” access modifier in Java) Empty0 码力 | 158 页 | 2.46 MB | 5 月前3GraphBLAS: Building a C++ Matrix API for Graph Algorithms
the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 4[DISTRIBUTION the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 5[DISTRIBUTION the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 6[DISTRIBUTION0 码力 | 172 页 | 7.40 MB | 5 月前3Au Units
400'000'000; // API to implement: std::chrono::nanoseconds elapsed_time(uint64_t num_cpu_ticks); 1 2 3 4 8Example: “CPU ticks” time units constexpr uint64_t CPU_CLOCK_HZ = 400'000'000; // API to implement: 2 3 4 5 6 8.1Example: “CPU ticks” time units constexpr uint64_t CPU_CLOCK_HZ = 400'000'000; // API to implement: std::chrono::nanoseconds elapsed_time(uint64_t num_cpu_ticks); 1 2 3 4 std::chrono::nanoseconds as(nano(seconds)); 3 } 4 8.2Example: “CPU ticks” time units constexpr uint64_t CPU_CLOCK_HZ = 400'000'000; // API to implement: std::chrono::nanoseconds elapsed_time(uint64_t num_cpu_ticks); 1 2 3 4 std::chrono::nanoseconds0 码力 | 191 页 | 22.37 MB | 5 月前3Building Effective Embedded Systems: Architectural Best Practices
⊡ Network Problems ⊡ External Interfaces ⊡ Simulators ⊡ Logs ⊡ Monitoring⊡ Operating Systems ⊡ Threads ⊡ Layer Separation ⊡ Network Problems ⊡ External Interfaces ⊡ Simulators ⊡ Logs ⊡ Monitoring❖ operating system* *not impossible but challengingHow complicated our software is going to be?The more interfaces and processes we have, we would like to have an operating system How complicated our software Engine Dashboard Cellular modem unit CAN bus UART- Logs UART UART - Control 1 2 4 3 4 interfaces complicatedWhat level of time precision does the system require?What level of time precision0 码力 | 241 页 | 2.28 MB | 5 月前3The Most Important Design Guideline is Testability
Important Design Guideline https://www.youtube.com/watch?v=a76Z__kQJdo&t=83s9 The Most Important API Design Guideline? TESTABILITY https://www.youtube.com/watch?v=a76Z__kQJdo&t=83sWhy is Testing Important and manipulate that state in test cases. Sometimes that causes new problems typically exposing interfaces that exist solely for unit testing. Putting them in a separate public section helps but is less better approach would be to provide a mockable component. But that complicates the programmer's API with more template parameters. I could keep going along this line but I won't.Testability 18 I0 码力 | 126 页 | 9.11 MB | 5 月前3Hiding Your Implementation Details is Not So Simple
Implementation DetailsHiding your Implementation Details Why?Protect Object Integrity Expose the necessary interfaces only. Easier to Use Users see only what they need to. Improves Maintainability Internal changes there are solutions for this, we will discuss it later- We may want to avoid solutions relying on interfaces, to avoid virtual calls - Exposing data to the user may be valuable for performance, e.g. exposing begin with. Takeaway 34 Hiding your Implementation Details, Amir Kirsh @ CppCon, 202435 API (including internal API of all kinds!) Hiding your Implementation Details, Amir Kirsh @ CppCon, 2024Hyrum's Law0 码力 | 145 页 | 2.45 MB | 5 月前3Heterogeneous Modern C++ with SYCL 2020
applications to SYCL Closer alignment and integration with ISO C++ Multiple Backend acceleration and API independent SYCL 2020 increases expressiveness and simplicity for modern C++ heterogeneous programming Vulkan only runs on GPUs Applications link to compiled inferencing code or call vision/inferencing API Networks trained on high-end desktop and cloud systems Open industry standards, enable flexible and deployment of multiple acceleration technologies 18Safety Critical API Evolution OpenCL and SYCL SC work will minimize API surface area , reduce ambiguity, UB, increase determinism New Generation0 码力 | 114 页 | 7.94 MB | 5 月前3Embracing an Adversarial Mindset for Cpp Security
Escalation Safe Parsing? Safe Deserializer? Craft malicious binary blobs RCE Protected IPC Interfaces? Privilege Escalation Authentication? PII Data Isolation Information leak Protected Cache adversaries How: •Deserialization •Client-Server interfaces Denial of Service Who: •Hacktivists •Script Kiddies •Game hackers How: •Client-Server interfaces Medium Effort Med-High Effort High Effort Low 0x7a00CVE-2023-28252 Exploitation 6. Call AddLogContainer with the handle of the trigger .blf • AddLogContainer api using the handle of the trigger blf after CreateLogFile • pwszContainerPath = C:\Users\Public\MyLog0 码力 | 92 页 | 3.67 MB | 5 月前3Constructing Generic Algorithms
INTERFACE REFINEMENT LAW OF INTERFACE REFINEMENT Designing interfaces, like designing programs, is a multi-pass activity. Designing interfaces, like designing programs, is a multi-pass activity. It's hard procedures. the related procedures. Interface refinement: Designing interfaces, like designing Interface refinement: Designing interfaces, like designing programs, is a multi-pass activity. programs, is allows us to identify efficiencies at the machine level and the API level. It allows us to identify efficiencies at the machine level and the API level. 87 . 1EPILOGUE: WHAT TO EXPECT FROM EPILOGUE: WHAT TO0 码力 | 145 页 | 8.44 MB | 5 月前3Regular, Revisited
Guidelines2023 Victor Ciura | @ciura_victor - Regular, Revisited 18 Slide Title Modern C++ API Design Type Properties What properties can we use to describe types ? Type Families What combinations of type properties make useful / good type designs ? Titus Winters - Modern C++ API Design youtube.com/watch?v=tn7oVNrPM8I2023 Victor Ciura | @ciura_victor - Regular, Revisited components which may be developed separately and combined arbitrarily, subject only to well-defined interfaces. 〝2023 Victor Ciura | @ciura_victor - Regular, Revisited 37 Slide Title Fundamentals of0 码力 | 180 页 | 19.96 MB | 5 月前3
共 224 条
- 1
- 2
- 3
- 4
- 5
- 6
- 23
相关搜索词
HiddenOverheadofFunctionAPIGraphBLASBuildingC++MatrixforGraphAlgorithmsAuUnitsEffectiveEmbeddedSystemsArchitecturalBestPracticesTheMostImportantDesignGuidelineisTestabilityHidingYourImplementationDetailsNotSoSimpleHeterogeneousModernwithSYCL2020EmbracinganAdversarialMindsetCppSecurityConstructingGenericRegularRevisited