【发布时间】:2019-08-30 06:59:02
【问题描述】:
根据 cpu 的类型、cpu 的功能、编译器选项等,glibc 可以将 C/C++ 程序对 memcpy 的基本调用映射到不同的实现。
例如,它可以使用针对 Intel、NEON、SSE 支持的 cpu 优化实现...
是否有可能知道将使用哪个实现而不实际运行调用memcpy 的软件?
【问题讨论】:
根据 cpu 的类型、cpu 的功能、编译器选项等,glibc 可以将 C/C++ 程序对 memcpy 的基本调用映射到不同的实现。
例如,它可以使用针对 Intel、NEON、SSE 支持的 cpu 优化实现...
是否有可能知道将使用哪个实现而不实际运行调用memcpy 的软件?
【问题讨论】:
是否有可能在不实际运行调用 memcpy 的软件的情况下知道将使用哪个实现?
是的:你需要追溯memcpyIFUNC选择器的逻辑,知道你的CPU有哪些特性,没有哪些特性。换句话说,您需要在模拟器(您的头、纸等)上“运行”程序。
对于大多数人来说,在给定的 CPU 上实际运行程序要快得多,并且可以保证给出正确的答案。
另请注意,答案可能会因 GLIBC 的版本而异。
【讨论】: