2013-07-21 290 views
0

我想知道QByteArray和unsigned char *在速度上有什么区别吗? 我在程序中有很多字节数组和复制操作,所以知道是否有任何区别对我来说很重要。 谢谢QByteArray vs unsigned char *速度

+0

您是否考虑过测试它? – 2013-07-21 10:14:41

+0

还没有。我问它是因为我想知道它背后的全部想法。因为我想在多个平台和不同情况下使用它。我认为可能是简单测试的结果并不是一个很好的回应。 – oMatrix

回答

1

unsigned char*用作字节数组非常简单。所以我会说,理论上QByteArray不能比这更快,尽管它可以一样快或者只是慢一点。但是你不能(通常)单独使用unsigned char*。你必须保持阵列的长度,所以它变成了unsigned char*int,这对我来说至少比只使用QByteArray要多得多。 QByteArray也包含很多成员函数。如果您在使用unsigned char*时需要自己实现其中的许多功能,那么您的实现总是有可能比Qt的实现慢。这需要很多工作。

当然,在某些应用程序中,您可能有数百万个数组都是相同的大小,并且您不需要所有数组的大小变量。然后使用unsigned char*会是一个更好的主意,尤其是在阵列很短的情况下,因此QByteArray的内存使用开销会很大。

我会说unsigned char*更快。但是,根据您的应用程序和编码技巧,它也可能只比QByteArray快或慢。如果您真的想知道,请创建一个测试应用程序并测量速度。