博客导航
不忘初心,勇往直前!!!^_^
2022-01-14 在你可能在浪费时间的时候,想想那些揪心的日子!(时间是最宝贵的资源)
2022-04-27 不忘初心!
Android系统
搭建Android系统模拟器开发环境
Input子系统
ION内存管理
Treble架构中的HIDL
dma-buf详解
智能指针
ashmem匿名共享内存
C++
benchmark
C/C++
线程池的实现
bazel编译&构建
C++11
C++ Tips of the Week
Linux & 内核
Kernel
巧妙的kfifo
自动驾驶
Fast DDS
Linux内核实时性能调优
Linux内核实时性能调优
Linux 内核的实时性能对于自动驾驶、工业控制等场景至关重要
引言Linux 内核的实时性能对于自动驾驶、工业控制等场景至关重要。
1. 实时Linux概述实时性指标1234567891011121314┌──────────────────────────────────────────┐│ 实时性级别 │├──────────────────────────────────────────┤│ 硬实时:确定性延迟 < 1ms ││ ├─ 确定性响应 ││ └─ 延迟抖动 < 10% │├──────────────────────────────────────────┤│ 软实时:平均延迟 < 10ms ││ ├─ 延迟可接受 ││ └─ 偶尔 ...
IAA Mobility 2025自动驾驶趋势
IAA Mobility 2025自动驾驶趋势
IAA Mobility 是世界领先的移动出行展会,2025年展会聚焦自动驾驶最新技术
ADAS验证自动化指南
ADAS验证自动化指南
高级驾驶辅助系统的验证是复杂工程,本文介绍自动化验证方案
引言高级驾驶辅助系统 (ADAS) 的验证是复杂工程,本文介绍自动化验证方案。
1. ADAS测试挑战测试场景复杂度1234567891011121314151617┌──────────────────────────────────────────┐│ ADAS 测试维度 │├──────────────────────────────────────────┤│ 场景复杂度: ││ ├─ 正常场景 (90%) ││ ├─ 边界场景 (7%) ││ └─ 危险场景 (3%) - 最关键 │├──────────────────────────────────────────┤│ 传感器输入: ││ ├ ...
2025自动驾驶技术趋势
2025自动驾驶技术趋势
2025年自动驾驶技术继续快速发展,本文总结主要技术趋势
引言2025 年自动驾驶技术继续快速发展,本文总结主要技术趋势。
1. 端到端自动驾驶 (E2E AD)从规则到数据驱动12345传统方法:感知 → 预测 → 规划 → 控制(模块化)端到端:传感器输入 ──────────────────> 控制输出(神经网络)
关键技术
Transformer 架构:统一多模态感知
蒸馏技术:大模型压缩到车载芯片
世界模型:理解物理世界规律
2. 传感器融合多传感器时间同步1234567891011121314151617181920// 伪代码:多传感器融合struct 融合帧 { 时间戳 timestamp; 相机帧 camera_frame; 激光点云 lidar_pointcloud; 雷达目标 radar_targets; 导航数据 gnss_imu;};融合帧 同步传感器(std::vector<传感器> sensors) { // 找到最近时间戳 时 ...
模板Lambda加速C++性能
模板Lambda加速C++性能
Lambda 不仅是语法糖,更是性能优化利器!
引言Daniel Lemire 是著名的性能研究员,本文介绍如何使用模板 Lambda 显著提升 C++ 性能。
🎯 核心观点:Lambda 不仅是语法糖,更是性能优化利器!
1. 模板Lambda基础普通Lambda vs 模板Lambda123456789// 普通 Lambda:类型固定auto add = [](int a, int b) { return a + b; };add(1, 2); // 只能处理 int// 模板 Lambda:C++14auto tadd = []<typename T>(T a, T b) { return a + b; };tadd(1, 2); // inttadd(1.0, 2.0); // doubletadd(1L, 2L); // long
使用示例12345678910111213#include <vector>#include <numeri ...
编译器优化完全指南
编译器优化完全指南
编译器优化是提升 C++ 性能最”免费”的方式
引言编译器优化是提升 C++ 性能最”免费”的方式。本文汇总了最新的编译器优化技术。
1. GCC/Clang 优化选项基本优化级别1234567891011121314151617# -O0: 无优化(调试用)g++ -O0 -g file.cpp# -O1: 基本优化g++ -O1 file.cpp# -O2: 标准优化(常用)g++ -O2 file.cpp# -O3: 激进优化g++ -O3 file.cpp# -Os: 优化代码大小g++ -Os file.cpp# -Ofast: 激进数值优化g++ -Ofast file.cpp
架构特定优化12345678910# 针对本地CPU优化g++ -O3 -march=native file.cpp# 针对特定架构g++ -O3 -march=skylake file.cppg++ -O3 -march=armv8-a file.cpp# 向量化选项g++ -O3 -mavx2 -mfma file.cpp # AVX2 + FMAg++ -O3 ...
现代C++性能优化实战(上)
现代C++性能优化实战(上)
移动语义、智能指针、Lambda、并行算法详解
引言本文介绍现代 C++(C++11/14/17/20/23)中的性能优化技术,这些技术使得代码既安全又高效。
🎯 核心理念:现代 C++ 的设计让高性能与安全性可以兼得!
1. 移动语义 (Move Semantics)避免不必要的拷贝12345678910111213141516// C++98:总是拷贝std::vector<int> getData() { std::vector<int> v; // 填充数据 return v; // 拷贝整个vector!}// C++11:移动语义std::vector<int> getData() { std::vector<int> v; // 填充数据 return v; // 移动,只移动指针}// 等价于return std::move(v); // 显式移动
移动 vs 拷贝1234567891011121 ...
现代C++性能优化实战(下)
现代C++性能优化实战(下)
模板元编程、内存管理、并发优化详解
引言本文是现代 C++ 性能优化系列的第二部分,涵盖更高级的优化技术。
1. 模板元编程类型推导与 SFINAE12345678910// 检测类型是否有特定成员template<typename T, typename = void>struct has_size : std::false_type {};template<typename T>struct has_size<T, std::void_t<decltype(std::declval<T>().size())>> : std::true_type {};static_assert(has_size<std::vector<int>>::value, "vector has size");static_assert(has_size<int>::value == false, " ...
C/C++开发者代码优化终极指南
C/C++开发者代码优化终极指南
优化意味着调整代码,使 CPU、内存子系统和编译器能够高效执行
引言优化意味着调整代码,使 CPU、内存子系统和编译器能够高效执行——不改变逻辑,而是减少运行所需的周期、分配和停顿。
🎯 核心目标:让代码跑得更快、占用更少内存、响应更及时!
核心优化策略1. 减少执行时间123456789101112131415161718// ❌ 每次调用都计算for (int i = 0; i < N; ++i) { double angle = i * 2 * M_PI / N; // 每次计算 result[i] = std::sin(angle);}// ✅ 预计算常量const double TWO_PI = 2 * M_PI;for (int i = 0; i < N; ++i) { double angle = i * TWO_PI / N; // 使用常量 result[i] = std::sin(angle);}// ✅ 更好的方式:查表法static c ...







