Rico's Nerd Cluster

「离开世界之前 一切都是过程」

C++ - [Concurrency 4] Various Concurrent Methods

Asynchonous Programming, Vectorization, `std::launch`, Lockless array writes, OpenMP, SIMD, SSE2

Asynchronous Programming Single-Threaded Asynchornous Programming Cooperative Multitasking & Pre-emptive Multitasking This is a model where each task voluntari...

C++ - [Concurrency 3] Promise, Future, Packaged_Tasks

promise <> future; packaged_tasks

C++ - [Concurrency 2] Conditional Variables

Conditional Variables

Conditional Variables

Threading Motivation: Why C++ Concurrency Matters Standardized concurrency arrived with C++11, replacing the ad-hoc C / compiler-specific APIs used before C++98 with a formal memory model. Key l...

Docker Compose Profile

Multi-Container Workflow

Simple Example On Docker Profile Profiles help you adjust your Compose application for different environments or use cases by selectively activating services. Services can be assigned to one or mo...

C++ - [Memory Access - 1] Layout

Cache

Memory Access: The Hidden Bottleneck Reference Why Memory Access Matters Even as CPU speeds continue to improve, the cost of fetching data from memory has become a limiting factor. Operating sys...

C++ Tool Websites

CppInsights, Compiler Explorer, Conan

CppInsights CppInsights does these things: how the standard library objects (like stringstream, vector, etc.) get instantiated how overloaded operators are actually resolved. 1 2 3 4 5 6 7...

C++ Profiling and Speed Ups

gprof, perf, CMake Release and Debug BoilerPlate, CMake Settings

Gprof GNU gprof provides CPU execution times (not wall time, so sleep is not accounted for) of functions and their subfunctions in percentage. Gprof outputs data in a text-based format, which can ...

C++ - GTest

GTest For ROS

Concepts Google Test (a.k.a GTest) is an open source unit testing structure. From the official website Test Suite vs Test Case: A test suite contains one or many tests. You should group your t...

ROS - GDB

GDB for ROS, Core Dump

Introduction GDB is EXTREMELY handy. I used to doing a lot of print statements, but now I use GDB a lot. The reason is simple: I can check multiple things at once without recompiling everytime, es...