2010-04-29 28 views
5

Ứng dụng của tôi là một ứng dụng mạng. Công việc của nó là nhận các luồng gói (QByteArray) mà tôi muốn phát ra chúng dưới dạng tín hiệu. Làm như vậy sẽ không hiệu quả? Tôi quan tâm đến việc sao chép các bộ đệm lớn.Không hiệu quả khi phát ra QByteArray?

Trả lời

14

QByteArray sử dụng Copy-on-write. Điều đó có nghĩa là chỉ có con trỏ được sao chép xung quanh, nghĩa là, cho đến khi bạn sửa đổi nội dung của QByteArray. Vì vậy, bạn nên được tất cả các quyền nếu bạn chỉ cần vượt qua nó cùng.

+1

Và nếu bạn đã cấp phát bộ nhớ mà bạn muốn truyền xung quanh, bạn có thể tạo QByteArray đầu tiên trong chuỗi bằng cách sử dụng hàm QByteArray :: fromRawData(). –

Các vấn đề liên quan