我想知道 QByteArray 和 unsigned char* 在速度上有什么区别吗?我的程序中有很多字节数组和复制操作,所以知道是否有任何区别对我来说很重要。谢谢
问问题
1263 次
1 回答
2
unsigned char*
用作字节数组非常简单。所以我会说理论上QByteArray
不可能比这更快,尽管它可以同样快或只有一点点慢。但是你不能(通常)unsigned char*
单独使用。您必须将数组长度保持在某处,因此它变为unsigned char*
and int
,至少对我而言,这比仅使用QByteArray
. QByteArray
还包含很多成员函数。如果您在使用时需要自己实现其中的许多,unsigned char*
那么您的实现总是有可能比 Qt 的实现慢。这需要大量的工作。
当然,在某些应用程序中,您可能拥有数百万个大小相同的数组,并且您不需要所有数组的大小变量。然后使用unsigned char*
将是一个更好的主意,特别是如果数组很短,因此内存使用开销QByteArray
会很大。
我会说unsigned char*
速度更快。但根据您的应用程序和编码技能,它也可能只比QByteArray
. 如果您真的想知道,请创建一个测试应用程序并测量速度。
于 2013-07-21T11:41:00.393 回答