1
3
问题归根结底是
编译器要撤消所有这些操作,需要应用
……非常完美。现代编译器在优化与函数指针有关的任何事情方面仍然相当糟糕。 你只是期望过高。
另一方面
遗漏优化示例只是为了说明现代编译器在这个领域有多糟糕:
Clang和GCC都不在此列( https://godbolt.org/z/zqjeG5xff ),并且两者都沿着以下路线发射一些东西:
在这个非常琐碎的例子中,理论上的最佳值是
这个琐碎的例子要求太多,并且内联了
堆省略和函数指针内联通常不值得花费太多精力,因为您可以假设,如果开发人员正在使用函数指针和动态分配,他们可能需要这些,而您无法直接优化它们。 |
Sergei · 删除数据框中多个列的列表中的某些元素 2 年前 |