C语言编程优化与处理器扩展

C语言编程优化与处理器扩展,c,performance,optimization,processor,C,Performance,Optimization,Processor,我有一个C编程任务,其中包括尽可能优化代码。我已经在互联网上读了一些关于这方面的文章,发现了一些东西,比如使用case而不是if,传递指针而不是值,等等 我想问的是,为什么知道哪些处理器扩展可用可以帮助我优化代码?我知道SSE和AVX可以在机器上使用,但作为程序员,这对我来说到底意味着什么 关于我的上述问题,我发现了我认为与处理器扩展相关的问题。与其他C函数相比,使用这些函数在性能方面是否有任何优势。e、 g.使用xmmintrin.h中的\u mm\u sqrt\u ps会比math.h中的s

我有一个C编程任务,其中包括尽可能优化代码。我已经在互联网上读了一些关于这方面的文章,发现了一些东西,比如使用
case
而不是
if
,传递指针而不是值,等等

我想问的是,为什么知道哪些处理器扩展可用可以帮助我优化代码?我知道SSE和AVX可以在机器上使用,但作为程序员,这对我来说到底意味着什么


关于我的上述问题,我发现了我认为与处理器扩展相关的问题。与其他C函数相比,使用这些函数在性能方面是否有任何优势。e、 g.使用
xmmintrin.h
中的
\u mm\u sqrt\u ps
会比
math.h
中的
sqrt
快吗?

想法是拥有每个CPU优化的库(SSE、AVX等),并调用类似于“可以使用\u CPU\u feature()动态确定运行时可用的功能并加载“最佳”的功能CPU的实现

对于要使用sqrt()的可移植代码,有些运行库已经优化了实现,已经足够好了。如果您希望在特定平台上实现完全控制和最大化性能,并且不关心可移植性,那么您可以编写手工优化的程序集(或使用内部函数)

大多数性能都是通过更好的算法获得的