我想知道QByteArray和unsigned char *在速度上有什么区别吗? 我在程序中有很多字节数组和复制操作,所以知道是否有任何区别对我来说很重要。 谢谢QByteArray vs unsigned char *速度
0
A
回答
1
unsigned char*
用作字节数组非常简单。所以我会说,理论上QByteArray
不能比这更快,尽管它可以一样快或者只是慢一点。但是你不能(通常)单独使用unsigned char*
。你必须保持阵列的长度,所以它变成了unsigned char*
和int
,这对我来说至少比只使用QByteArray
要多得多。 QByteArray
也包含很多成员函数。如果您在使用unsigned char*
时需要自己实现其中的许多功能,那么您的实现总是有可能比Qt的实现慢。这需要很多工作。
当然,在某些应用程序中,您可能有数百万个数组都是相同的大小,并且您不需要所有数组的大小变量。然后使用unsigned char*
会是一个更好的主意,尤其是在阵列很短的情况下,因此QByteArray
的内存使用开销会很大。
我会说unsigned char*
更快。但是,根据您的应用程序和编码技巧,它也可能只比QByteArray
快或慢。如果您真的想知道,请创建一个测试应用程序并测量速度。
相关问题
- 1. 将unsigned char [10]转换为QBytearray;
- 2. QByteArray和QList <unsigned char>或QVector <unsigned char>有什么区别?
- 3. char!=(signed char),char!=(unsigned char)
- 4. unsigned char concatenation
- 5. #define as unsigned char
- 6. 转换的char *为unsigned char *
- 7. 转换为unsigned char []
- 8. QByteArray转换为char(不是char *或constChar *)
- 9. mysqli速度vs php速度?
- 10. C++:隐蔽INT为unsigned char
- 11. 的NSString为unsigned char []
- 12. 将vector <unsigned char>转换为const unsigned char *
- 13. 如何将unsigned char *转换为数组<unsigned char> ^?
- 14. 将byte * {aka unsigned char *}'转换为byte [32] {aka unsigned char [32]}
- 15. 为什么istream_iterator <unsigned char,unsigned char> throw std :: bad_cast?
- 16. 从unsigned char构造QImage * data
- 17. 速度:DOMDocument vs xml_parse_into_struct vs strrpos
- 18. char *到数组<unsigned char ^>
- 19. char和unsigned char有什么区别?
- 20. 如何将unsigned char *转换为char *
- 21. 从char *到unsigned char的C++转换?
- 22. Unsigned char char *和int在C中?
- 23. C++铸造的char *为unsigned char
- 24. 将数组从unsigned char *转换为char *
- 25. char [1024] vs char *
- 26. numpy ufuncs速度vs循环速度
- 27. 铸造诠释unsigned char型
- 28. C++中的unsigned char无效?
- 29. 转换的NSString为unsigned char
- 30. 使用python发送unsigned char
您是否考虑过测试它? – 2013-07-21 10:14:41
还没有。我问它是因为我想知道它背后的全部想法。因为我想在多个平台和不同情况下使用它。我认为可能是简单测试的结果并不是一个很好的回应。 – oMatrix