2013-07-21 331 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快或慢。如果您真的想知道,請創建一個測試應用程序並測量速度。