OO编程是否与延迟应用程序发生冲突



我只是想知道OO编程是否会给那些设计延迟应用程序的人带来问题?那些编写延迟代码的人使用OO编程吗?我很想知道OO编程的可扩展性是否与代码的速度相违背?

例如,我读到c++中的虚函数对于延迟程序员来说是一个很大的"禁忌"。

绝大多数代码不受CPU限制。cpu的速度快得离谱,而且大部分时间都是被动地等待IO赶上。所以在大多数情况下,我会说"不"。

有可能你有一个应用程序在内存中做所有的事情,有完美的循环结构等,在这个神话般的野兽中,你可能会通过放弃虚函数来获得更多的性能。但这是一个相当极端的情况。

这基本上取决于上下文。一般来说,这根本不是问题;Java/c#本身就进行了很好的优化(至少在桌面/服务器版本上),并且速度并不慢。

No。与内存位置和缓存一致性、算法设计和语言基础(解释器、虚拟机、本机)等其他成本相比,一些虚拟函数的成本相当微不足道。像封装这样的OO原则完全是编译时操作,抽象可以使用泛型编程免费实现。除非你完全过度使用它们,在某些情况下,这在没有泛型编程的语言中是不可避免的,或者如果你在一个令人难以置信的紧密循环中调用它,但在这种情况下,你可能找不到便宜的替代品。

如果有人告诉你关心c++性能的程序员不要使用虚函数,那他就错了。

相关内容

最新更新