FileOutputStream、BufferedOutputStream、FileWriter、BufferedWriter、GetBytes性能
测试FileOutputStream、BufferedOutputStream、FileWriter、BufferedWriter、GetBytes的性能。
持久内存编程指南—乱译连载 (24.附录E.远程持久内存复制的未来)
如第18章所述,通用目的和应用远程持久性存储器方法是简单的高层协议(ULP)更改。这些方法在对远程持久内存进行多次RDMA写入之后添加一个辅助RDMA Send或RDMA Read。这些实现的痛点之一是特定于Intel的平台特性,即分配写入,默认情况下,该功能会将入站PCIe写入数据从NIC直接推送到最低层的CPU缓存中,从而加快本地软件对新写入数据的访问。
持久内存编程指南—乱译连载 (23.附录D.Java for 持久内存)
在编写本书时,Java中持久内存的native支持工作正在努力进行中。当前的特性大多是不稳定的,这意味着一旦应用程序退出,数据就不会持久化。我们已经描述了几个已经集成的特性,并展示了两个库(LLPL和PCJ),它们为Java应用程序提供了额外的功能。
持久内存编程指南—乱译连载 (22.附录C.LINUX/WIN上安装IPMCTL)
ipmctl实用程序用于配置和管理Intel Optane DC永久内存模块(DCPMM)。这是一个供应商专用的实用程序,可用于Linux和Windows。
持久内存编程指南—乱译连载 (21.附录B.安装PMDK)
持久内存开发工具包(PMDK)以包和源代码格式在受支持的操作系统上可用。PMDK的一些特性需要额外的包。我们描述Linux和Windows的用法说明。
持久内存编程指南—乱译连载 (20.附录A.LINUX安装NDCTL和DAXCTL)
ndctl实用程序用于管理Linux内核中的libnvdimm(非易失性内存设备)子系统和管理命名空间namespaces。daxctl实用程序为您创建的任何设备dax命名空间namespaces并提供枚举和设置命令。只有直接使用设备dax命名空间时,才需要daxctl。
持久内存编程指南—乱译连载 (19.高级主题)
在本章中,我们介绍了一些有关持久性内存的更高级主题,包括大型内存系统上的页面大小注意事项、NUMA感知及其如何影响应用程序性能、如何使用卷管理器创建跨多个NUMA节点的DAX文件系统以及mmap() 的映射同步标志。本书有意省略了其他主题,如BIOS优化,因为它是特定于供应商和产品的。持久内存产品的性能和基准测试留给外部资源,因为在本书中有太多的工具(vdbench、sysbench、fio等),每个工具都有太多的选项。
持久内存编程指南—乱译连载 (18.远程持久内存)
必须知道,通用远程复制方法和设备远程复制方法都不是理想的方法,因为需要特定于供应商的平台特性才能使用非分配写入,这增加了影响整个PCI根复合体性能的复杂性。相反,使用分配写操作刷新远程写操作需要目标系统的令人不快的中断来拦截RDMA发送请求并刷新发送缓冲区中包含的区域列表。在云环境中唤醒远程节点非常令人不快,因为有来自许多不同连接的成百上千个入站RDMA请求;如果可能,请避免这样做。
持久内存编程指南—乱译连载 (17.可靠性、可用性和可服务性(RAS))
本章描述了一些可用于持久性内存设备的RAS特性,以及与持久性内存应用程序相关的RAS特性。它应该让您更深入地了解了不可纠正的错误以及应用程序如何响应这些错误,操作系统如何检测运行状况更改以提高应用程序的可用性,以及应用程序如何能够最好地检测脏关机并使用数据丢失计数器。