QByteArray vs unsigned char * speed

时间:2013-07-21 10:02:30

标签: qt qbytearray

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

1 个答案:

答案 0 :(得分:2)

用作字节数组的

unsigned char*非常简单。所以我会说在理论上QByteArray不能比那更快,尽管它可以更快或更慢一点。但是你不能(通常)单独使用unsigned char*。你必须将数组长度保持在某个位置,因此它变为unsigned char*int,至少对我而言,这比使用QByteArray要多得多。 QByteArray还包含许多成员函数。如果您在使用unsigned char*时需要自己实现许多这些,那么您的实现总是可能比Qt的实现慢。这需要很多工作。

当然,在某些应用程序中,您可能拥有数百万个大小相同的阵列,并且您不需要所有阵列的大小变量。然后使用unsigned char*会更好,特别是如果数组很短,因此QByteArray的内存使用开销会很大。

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