指针保护和性能
Pointer Protection and Performance
我在开发时使用if
语句保护指针,以避免应用程序崩溃,即使理论上指针不应该为null。
我的问题是,在我确信指针在任何情况下都不会为空之后,删除这些if
检查是否会通过非平凡的弹药计数来提高我的应用程序的性能?
如果您担心性能,但安全性仍然是一个问题,您可以考虑在If语句中添加__builtin_expect(大多数现代编译器都支持(标志。这将保留您在程序中设置的安全预防措施,但会告诉编译器针对指针不为null的情况优化分支的跳转标签。
然而,由于分支条件仍在计算中,因此这仍然会带来一些放缓。如果指针从未显式地声明为null,那么使用引用将是非常有利的。
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- OpenMP阵列性能较差
- 递归列出所有目录中的C++与Python与Ruby的性能
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 为什么在保护模式下继承升级不起作用
- 访问被拒绝后,c++中的故障保护代码
- C++:无法访问声明的受保护成员
- 大小相等但成员数量不同的结构之间的性能差异
- 为什么constexpr的性能比正常表达式差
- 为什么您需要C++头文件的包含保护
- lock_guard是否保护返回值
- 在类中使用随机生成器时出现性能问题
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 继承和友元函数,从基类访问受保护的成员
- 海湾合作委员会 ARM 性能下降
- GCC 和 Clang 代码性能的巨大差异
- 在容量内调整矢量大小时的性能影响
- 为什么派生类的好友不能使用受保护的成员?
- 指针保护和性能