Class methods VS Class static functions VS Simple functions - Performance-wise?
好的,这就是我想要的:
- 我已经写了几个要求非常严格的功能(主要是在位图上运行),这些功能必须尽可能快
- 现在,我们还要提到,这些函数也可以按类型分组,甚至可以按其操作的变量类型分组。
- 而且,事情是,除了算法的实现之外,从技术angular来看,我应该做的是为了不影响速度。
现在,我正在考虑以下情形:
- 将它们创建为简单函数,然后将必要的参数作为参数传递
- 创建一个类(出于"分组" /组织目的),然后将其声明为静态
-
按类型创建课程,例如创建一个用于处理位图的类,为每个位图创建一个该类的新实例(例如
Bitmap* myBitmap = newBitmap(1010); ),并使用其内部方法(例如myBitmap->getFirstBitSet() )对其进行操作
现在,以下哪种方法最快?在性能方面,直接的简单函数和类封装的
旁注:我正在使用
在CPU级别上,只有一种功能,并且非常类似于C类型。您可以自己制作,但是...
事实证明,以效率为中心的C语言将大多数功能直接映射为调用指令:
- 命名空间级别的函数就像常规的C函数
- 静态方法就像名称空间级别的函数(从调用的angular来看)
-
非静态方法与静态方法非常相似,只不过在其他参数(一个指针)的顶部传递了隐式
this 参数
这3个人具有完全相同的表现。
另一方面,
经典的旧C函数和类的静态方法之间绝对没有区别。区别仅在于美学。如果您有多个C函数之间有一定的联系,则可以:
- 将他们分组
- 将它们放置在命名空间中;
区别再次将是美学上的。这很有可能会提高可读性。
如果这些C函数共享某些静态数据,则有可能(如果可能)将这些数据定义为类的私有静态数据成员。在这种情况下,具有类的变量比具有名称空间的变量更可取。
我不鼓励您创建虚拟实例。这会误导源代码的读者。
为每个位图创建一个实例是可能的,甚至可能是有利的。特别是如果您在典型情况下多次在此实例上调用方法。