Message Handling with Boolean Algebra
Message Handling with Boolean Algebra Ben Deane / CppCon / 2024-09-16 1Alternative Title "The Unreasonable Effectiveness of Boolean Algebra in Software Design, Showing the Particular Application of of a Message Handling Library, with an Excursion into the Roots of Programming" 2Frontmatter No AI/LLM was used in the creation of this talk. Code is simplified for slides; may have some errors in this talk is about The workings of a message-handling library. How messages and the fields in them are specified. Efficiently identifying (with matchers) a message coming off the wire. The role of Boolean0 码力 | 103 页 | 4.37 MB | 5 月前3Get off my thread: Techniques for moving k to background threads
current thread? Many environments have a dedicated thread for processing events: GUIs Client-Server applications Performing extensive processing on the event thread prevents other events from being handled point, that one thread will complete its task. ⇒ for those cases, you need Lock-free allocators, message queues, etc.How do we move work off the current thread?How do we move work off the current thread thread is created 2 The event handler receives an event 3 The event handler reposts the event as a message to the dedicated threadDedicated threads A dedicated thread can be a reasonable idea. 1 The dedicated0 码力 | 90 页 | 6.97 MB | 5 月前3Boosting Software Efficiency
5 MB each, at the same time. The second one always failed. 88 Prepare& Send Message A Prepare& Send Message BImagine this issue on your system. How would you solve it? 89SOLVE ⊡ Changed Rewrote the message preparation function using C++ instead of Qt. ⊡ Used a static array instead of dynamic allocation. 90SOLVE 91 Prepare& Send Message A Prepare& Send Message B Prepare& Prepare& Send Message A Prepare& Send Message BSOLVE ⊡ Asynchronous to synchronous 92 5MB+5MB 5MB93 So, I am not crashing anymore. Can I stop here?SOLVE 94 7500 meters and not just 50000 码力 | 180 页 | 1.65 MB | 5 月前3Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithms
ROS & simulators 7 ROS driver node ROS based visualization tool ROS based data processing publishes: /sensor topic reads: raw sensor's data subscribes: /sensor topic subscribes: /sensor execution2 will always run computations in the same order. • Deterministic communication2 is when, for a message going from process A to process B, communication is guaranteed to be complete always before or an application in a completely event-based approach (SIL). Events can be: a. Sending/receiving a message b. A timer that expired 6. Test simulation scenarios in the CI© 2023 Apex.AI, Inc. | All rights0 码力 | 38 页 | 2.17 MB | 5 月前3Using Modern C++ to Build XOffsetDatastructure
counts. // The division into areas and lines allows for more granular control over game data and processing, but it also increases the need for efficient data transfer between these divisions. // As players • Despite their differences, these approaches share a common characteristic: they all require processing data field by field. • This common feature leads us to a key concept that summarizes all these Performance4.4 Message Size • The message size comparison is shown in the table below. The difference between the compressed message sizes is not significant. • The compressed message size is crucial0 码力 | 111 页 | 3.03 MB | 5 月前3Continuous Regression Testing for Safer and Faster Refactoring
Results { entries:[Result]; } table Message { metadata:Metadata; results:Results; metrics:Metrics; } table MessageBuffer { buf:[uint8] (nested_flatbuffer: "Message"); } table Messages { messages:[MessageBuffer]; root_type Messages;52 Aurora Innovation Data ingestion w/ async processing53 Aurora Innovation Data ingestion w/ on-demand processing54 Aurora Innovation Data Retention Local Filesystem Backup Con�gurable bler.c 10 3.2% 980Ki 1.1% 75.3Ki third_party/protobuf/src/google/protobuf/generated_message_reflection.cc 11 3.2% 965Ki 0.6% 40.7Ki third_party/protobuf/src/google/protobuf/descriptor_database0 码力 | 85 页 | 11.66 MB | 5 月前3Conan 2.0 Documentation
added a message to the CMakeLists.txt to output the CMake version: Listing 7: CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(compressor C) find_package(ZLIB REQUIRED) message("Building ID does not exist in the local cache and remotes, Conan will fail with a “missing binary” error message, or will try to build that package from sources (this depends on the value of the --build argument) added a new function called compose_message() to the library sources so we can add some unit tests over this function. This function is just creating an output message based on the arguments passed. • As0 码力 | 652 页 | 4.00 MB | 1 年前3Conan 2.1 Documentation
to the profile you are using. Please check the profile doc for more information. We also added a message to the CMakeLists.txt to output the CMake version: Listing 7: CMakeLists.txt cmake_minimum_required(VERSION Conan Documentation, Release 2.1.0 (continued from previous page) find_package(ZLIB REQUIRED) message("Building with CMake version: ${CMAKE_VERSION}") add_executable(${PROJECT_NAME} src/main.c) tar ID does not exist in the local cache and remotes, Conan will fail with a “missing binary” error message, or will try to build that package from sources (this depends on the value of the --build argument)0 码力 | 694 页 | 4.13 MB | 1 年前3Conan 2.7 Documentation
to the profile you are using. Please check the profile doc for more information. We also added a message to the CMakeLists.txt to output the CMake version: 24 Chapter 4. Tutorial Conan Documentation, CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(compressor C) find_package(ZLIB REQUIRED) message("Building with CMake version: ${CMAKE_VERSION}") add_executable(${PROJECT_NAME} src/main.c) tar ID does not exist in the local cache and remotes, Conan will fail with a “missing binary” error message, or will try to build that package from sources (this depends on the value of the --build argument)0 码力 | 779 页 | 4.93 MB | 10 月前3Conan 2.8 Documentation
to the profile you are using. Please check the profile doc for more information. We also added a message to the CMakeLists.txt to output the CMake version: 24 Chapter 4. Tutorial Conan Documentation, CMakeLists.txt cmake_minimum_required(VERSION 3.15) project(compressor C) find_package(ZLIB REQUIRED) message("Building with CMake version: ${CMAKE_VERSION}") add_executable(${PROJECT_NAME} src/main.c) tar ID does not exist in the local cache and remotes, Conan will fail with a “missing binary” error message, or will try to build that package from sources (this depends on the value of the --build argument)0 码力 | 785 页 | 4.95 MB | 10 月前3
共 176 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18