C/C++程序对memcpy
的基本调用可以由glibc映射到不同的实现,具体取决于cpu的类型、cpu的功能、编译器选项等。
例如,它可以使用cpu优化实现英特尔,霓虹灯,SSE支持.
可以知道在不实际运行调用memcpy
的软件的情况下将使用哪个实现吗?
发布于 2019-08-30 13:53:08
有没有可能知道在不实际运行调用memcpy的软件的情况下将使用哪种实现?
是的:您需要通过memcpy
IFUNC
选择器的逻辑进行跟踪,并知道您的CPU具有哪些特性。换句话说,您需要在仿真器(您的头、文件等)上“运行”该程序。
对于大多数人来说,实际上在给定的CPU上运行程序要快得多,并且给出了一个有保证的正确答案。
还请注意,答案可能会根据GLIBC的版本而改变。
https://stackoverflow.com/questions/57721954
复制相似问题