ARM 2020年的改进
2020年,ARM架构取得了相当多的发展。对于MariaDB来说,情况也一样。首先,我们扩大了我们的测试基础设施,以涵盖ARM上更多的Linux发行版(Debian、Ubuntu、Fedora、CentOS、RedHat),并且我们现在正在为所有这些发行版构建软件包。下一个MariaDB版本将包含针对ARM发行版的额外二进制tarball,此外还有已有的RPM和DEB软件包。
所有这些都离不开华为的帮助,他们为我们的工作捐赠了几个ARM构建器。我们坚信,只有在尽可能多的不同平台和尽可能多的不同编译器上进行测试,才能保证MariaDB的性能和稳定性。题外话,我们目前仍然缺少SPARC硬件,如果您恰好有可用的,请告知我们。😉
此外,我们要感谢Krunal Bauskar、顾育琪和Tsahi Zidenberg为针对ARM的性能提升和错误修复做出的贡献。
为了获得最佳性能,应该在编写代码时考虑底层硬件。这就是为什么性能关键的代码在可能的情况下会使用原生指令。计算crc32c校验和就是一个例子,这是顾育琪通过PR 772贡献的。Krunal通过PR 1558的工作在此基础上进行,统一了crc32库,并在可能的情况下确保高效的SIMD(单指令多数据)封装器。此外,某些任务,例如代码插装或与计时相关的函数调用,需要非常精确的计时器。通过添加原生ARM代码,my_timer_cycles()
实现了精确的硬件计时器。这是通过PR 1620贡献的,同时还有编译器标志以提高原子操作的性能。
综上所述,我们赞赏社区的参与,以确保MariaDB能够利用所有可用的硬件特性,并且我们期待获得更多!
谢谢!