私有访问修饰符和公共访问修饰符在性能上有区别吗?
is that private and public access modifier make difference in performance?
我认为我们必须在成员变量上使用正确的修饰符来实现模块化,但是好奇类成员的访问修饰符对应用程序性能的影响。
如果我的程序很小,那么如果我使用所有成员变量public会怎么样?
在c++和Java中,修饰符本身并不直接影响性能:它在编译阶段存在以强制关注点分离,但是在编译的(对象)代码中没有修饰符的踪迹。但是,使用访问器和mutator函数来引用成员变量在理论上会造成一些较小的性能损失。即便如此,在c++中,这些调用可以由编译器内联,从而完全消除了代价。@Peter Lawrey在评论中提到Java也有类似的优化。
因此,使用任何导致更简洁的设计,因为任何性能影响都是有争议的。
在c++中,访问修饰符对应用程序的性能没有影响,关键在于访问/可见性。它们是编译时的概念,没有运行时组件或检查。
在Java中严重没有效果!效率是朋友和同事之间的共同话题,但最终我们都试图用错误的方式最大化效率……有效编码的大多数问题是很多行代码(你不会想看到有多少行……)和逻辑错误出现在不必要的循环中(不是最终的循环,但是没有必要……)频繁检查器(例如,可以由其他事件调用)
每个人都经历过你的处境!p
相关文章:
- 在 typedef 内部使用 const 关键字和在 typedef 外部使用 const 关键字之间有区别吗?
- 为什么这里的大括号和括号初始化有区别?
- 使用短运算符的字符串连接有区别吗?
- static_cast<unsigned>(签名)与标准::bit_cast<unsigned>(签名)之间有区别吗?
- 在调用函数时,ptr** 和 ptr*& 之间是否有区别,或者首选C++?
- 在类内和类外的定义处执行类转发声明是否有区别
- CRTP:为什么获得嵌套类型和派生类的嵌套方法有区别
- 使用 std::move 将参数传递给函数,如果该参数声明为按值传递或使用移动操作数 &&,是否有区别?
- c++ 类中的静态常量变量和常量变量在存储方面是否有区别
- 为什么 .cpp 文件和 .h 文件之间有区别?
- C++:调用运算符和调用其实现之间有区别吗
- 将全局声明为类声明语句的一部分与使用单独的语句声明全局之间是否有区别
- 用户定义的类和标准类之间有区别吗?
- 这两个数组之间有区别吗?
- 这些在C 中初始化C数组的方式之间有区别吗?
- vector.size()= 0和vector.empty()之间是否有区别
- 显式运算符 = 调用和 = 运算符之间是否有区别
- 这两种初始化成员变量的方法之间有区别吗?
- 忽略内存消耗,使用“int”或“char”是否有区别
- 私有访问修饰符和公共访问修饰符在性能上有区别吗?