Gần đây tôi đã thực hiện một số phép đo hiệu suất thô trên List<>
và []
cho một loạt các cấu trúc nhỏ. System.Array dường như giành chiến thắng tay vì vậy tôi đã đi với điều đó.System.Array có thực hiện quyền anh trên các loại giá trị hay không?
Nó chỉ làm tôi ngạc nhiên rằng System.Array chứa các loại đối tượng, vì vậy chắc chắn làm đầy nó với cấu trúc sẽ gây ra boxing xảy ra?
Tuy nhiên, the MSDN entry for System.Array trạng thái:
Trong phiên bản .NET Framework 2.0, lớp Array thực hiện các
System.Collections.Generic.IList<T>
,System.Collections.Generic.ICollection<T>
, vàSystem.Collections.Generic.IEnumerable<T>
giao diện chung. Việc triển khai được cung cấp cho các mảng tại thời gian chạy và do đó, không hiển thị với các công cụ xây dựng tài liệu. Do đó, các giao diện chung không xuất hiện trong cú pháp khai báo cho lớp Array và không có chủ đề tham chiếu nào cho các thành viên giao diện chỉ có thể truy cập được bằng cách truyền mảng đến loại giao diện chung (triển khai giao diện rõ ràng) .
Điều này có nghĩa là quyền anh không xảy ra sau tất cả? (Và sẽ giải thích kết quả hiệu suất của tôi)
Để giải thích kết quả hiệu suất của bạn, có lẽ chúng ta sẽ thấy mã bạn đã sử dụng để đo lường hiệu suất. – Snowbear