结硬寨,打呆仗

libuv spin空转导致的cpu消耗问题

最近被性能组同学盯上了,说我负责的一个基础模块在某硬件平台上,开机阶段有个线程cpu占用较高,需配合调查。 最终发现,系统中的libuv版本较老,特定场景下函数uv__async_spin会长时间空转,消耗较多cpu;新版本的libuv对此做了优化,同样场景下cpu占用时长降幅高达50%以上。 libuv v1.40.0版本引入该问题,v1.45.0修复该问题。 1. 背景 1.1 li...

Android智能指针sp/wp原理

谈到智能指针,大家首先想到的肯定是std::shared_ptr,其实Android binder中也实现了一套智能指针sp/wp,原理类似,也是基于引用计数。Android之所以自己搞一套,估计是因为当时的C++标准还不完善。 我司的基础库中也有一套自研的智能指针,和Android中的实现类似。之所以写这篇文章,是因为最近发现这里面隐藏多年的一个bug:特定场景下weak_ptr虽然能提...

© coderhuo. Some rights reserved.

本站总访问量次,本文总阅读量

Using the Chirpy theme for Jekyll.