5

我正在尝试查找有关 glibc 的信息以及它在多大程度上使用 SSE 功能。

如果它经过优化,我可以直接使用它吗?

假设我使用的是较大的 Linux 发行版之一,我假设它的 glibc 被编译为尽可能通用并尽可能便携,因此没有优化?

我对函数 memcpy 和 memcmp 以及如何尽快获得这些函数特别感兴趣。

4

2 回答 2

5

glibc 2.8 根本不将 SSE 用于 memcpy 或 memcmp(在 x86 或 x86_64 中) - 它使用一些手写程序集来避免该系列的所有 CPU 不支持的任何内容。在 glibc 2.10 中,将支持一种新的重定位类型STT_GNU_IFUNC,这将使基于 CPU 支持的更好的优化成为可能。

于 2009-05-06T22:53:28.770 回答
2

如果您使用最高优化设置进行编译,则 memcpy 和 memcmp 可能会被编译器替换为内部函数,并且根本不会调用 glibc。然后mcpumarch编译器选项会选择最快的代码。

于 2009-05-06T23:04:58.323 回答