2011-09-30 36 views

Trả lời

14

Bên trong của List<T>, có một bộ sưu tập có kích thước tĩnh chứa các mục của bạn. Khi bạn đạt được dung lượng của bộ sưu tập đó, việc List<T> định lại kích thước đó là hiệu suất đạt được (có thể hoặc có thể không đáng kể đối với bạn).

Bằng cách đặt công suất ban đầu, bạn tránh phải thực hiện các thao tác định cỡ lại đó.

7

Bất cứ khi nào danh sách cần vượt quá dung lượng hiện tại, việc phân bổ lại bộ nhớ và di chuyển xung quanh nội dung phải diễn ra, cần có thời gian và công sức.

Nếu bạn biết trước thời gian chính xác danh sách sẽ lớn như thế nào, bạn có thể tránh điều này.

3

Bạn sẽ thực hiện một chút tốc độ vì danh sách sẽ không phải phát triển. Trồng một danh sách là O (n) trong đó n là số phần tử hiện tại và tiêu chuẩn List<> tăng gấp đôi kích thước hiện tại của nó. Tất cả mọi thứ được xem xét, thêm một phần tử vào cuối danh sách vẫn là trung bình một hoạt động O (1) (điều này vì cuối cùng chèn các phần tử n bạn sẽ có trung bình n chèn vào cuối (mỗi một một O (1)) hoạt động) và n hoạt động sao chép giữa bộ đệm cũ và bộ đệm mới hơn (mỗi một hoạt động O (1)), vì vậy mỗi bổ sung là trên overage O (1))

3

Điều này sẽ cải thiện hiệu suất một chút, như bộ nhớ cần thiết sẽ được cấp phát khi bạn tạo Danh sách và CLR sẽ không phải tăng kích thước Danh sách khi bạn thêm nhiều phần tử hơn.

Lưu ý rằng ngay cả khi bạn chỉ định kích thước Danh sách, kích thước danh sách sẽ vẫn tăng nếu bạn thêm nhiều yếu tố hơn mong đợi.

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