![](http://4i-bird.com/wp-content/uploads/2020/12/image-66-400x178.png)
持久内存编程指南—乱译连载 (16.PMDK内部:重要算法和数据结构)
本章描述了libpmemobj的体系结构和内部工作原理。我们还讨论了在libpmemobj的设计和实现过程中所做选择的原因。有了这些知识,您可以准确地推理使用此库编写的代码的语义和性能特征。
![](http://4i-bird.com/wp-content/uploads/2020/12/image-59-400x223.png)
持久内存编程指南—乱译连载 (15.性能分析与性能)
持久内存系统的分析和性能优化技术与无持久内存系统的那些技术类似。本章概述了理解性能的一些重要概念。也提供了指导用于刻画已存在无持久内存应用的特征和理解是否适用于持久内存。最后,提出了运行在持久内存平台上应用性能分析和调优的重要度量指标,包含一些例子,如何使用VTune Profiler来收集数据。
![](http://4i-bird.com/wp-content/uploads/2020/12/image-48-400x241.png)
持久内存编程指南—乱译连载 (14.并发性和持久内存)
尽管为持久性内存构建应用程序是一项具有挑战性的任务,但是当需要为持久性内存创建多线程应用程序时,这项任务会更加困难。当多个线程可以更新持久内存中的相同数据时,您需要在多线程环境中处理数据一致性。
![](http://4i-bird.com/wp-content/uploads/2020/12/image-47-400x260.png)
持久内存编程指南—乱译连载 (13.真实应用启用持久内存)
本章介绍了如何使用PMDK中的libpmemobj为流行的开源MariaDB数据库创建持久内存感知存储引擎。在应用程序中使用持久性内存可以在意外系统关闭时提供连续性,并通过将数据存储在靠近CPU的位置(可以以内存总线的速度访问)来提高性能。虽然数据库引擎通常使用内存缓存来提高性能(这需要时间来预热),但持久内存在应用程序启动时提供了立即预热的缓存。