vhost-user简介
半虚拟化设备(virtio device)在当前云计算虚拟化场景下已经得到了非常广泛的应用,并且现在也有越来越多的物理设备也开始支持virtio协议,即所谓的virtio offload,通过将virtio协议卸载到硬件上(例如virtio-net网卡卸载,virtio-scsi卸载)让物理机和虚拟机都能够获得加速体验。本文中我们来重点了解一下vhost-user技术中的一些关键点。
crashpad的编译过程及原理
Crashpad 是由 Google 开发的一个开源的跨平台崩溃报告库,主要用于在应用程序崩溃时收集和提交崩溃信息。通常,我们需要cmake来编译项目,但由于crashpad不使用cmake编译,因此要实现源码编译crashpad,需要编写cmakelists.txt来编译。Crashpad捕获导致崩溃的异常的详细做法在不同操作系统之间有所不同。
一种内存池的实现方案
C/C++下内存管理是程序开发过程中需要重点关注的问题,如分配足够的内存、追踪内存的分配、在不需要的时候释放内存。而直接使用系统调用malloc/free、new/delete进行内存分配和释放,具有较多弊端。内存池(memory pool)是代替直接调用malloc/free、new/delete进行内存管理的常用方法,当我们申请内存空间时,首先到我们的内存池中查找合适的内存块,而不是直接向操作系统申请,可以有效减少内存碎片,同时避免内存泄漏。
使用VLD检测内存泄漏
内存泄露是C++编程中经常遇到的问题,并且是比较难处理的一类型错误。导致问题的原因也比较繁杂,较难定位。因此合理检测内存泄露可以规避很多问题,有效提高程序稳定性和健壮性。VLD是Visual Leak Detector的缩写,是一款用于Visual C++的免费的内存泄露检测工具。它可以帮助开发者及时发现并解决程序中的内存泄露问题。使用VLD可以在运行程序时检测到内存泄露,并获得详细的报告,包括泄露发生的代码位置等信息。