Xóa rõ ràng Seq
thực hiện tương tự hoặc tốt hơn như []
cho tất cả các hoạt động có thể có. Nhưng vì cấu trúc của nó phức tạp hơn các danh sách, với kích thước nhỏ, chi phí không đổi của nó có thể sẽ làm cho nó chậm hơn. Tôi muốn biết số tiền, cụ thể:Data.Sequence.Seq nhanh như thế nào so với []?
- Bao nhiêu chậm hơn là
<|
so với:
? - Tốc độ chậm hơn gấp/vượt qua số
Seq
so với xếp chồng/di chuyển ngang số[]
(không bao gồm chi phí của chức năng gấp/vượt qua)? - Kích thước (xấp xỉ) là gì
\xs x -> xs ++ [x]
trở nên chậm hơn|>
? - Kích thước (xấp xỉ) mà
++
trở nên chậm hơn><
là bao nhiêu? - Chi phí gọi
viewl
và khớp mẫu trên kết quả so với kết hợp mẫu trên danh sách là gì? - Bộ nhớ có bao nhiêu bộ nhớ
n
-elementSeq
chiếm so với danh sách liên kếtn
? (Không tính bộ nhớ bị chiếm đóng bởi các phần tử, chỉ cấu trúc.)
Tôi biết rằng khó đo lường, vì Seq
chúng tôi nói về sự phức tạp phân bổ, nhưng tôi muốn biết ít nhất một số thô .
Không so sánh như vậy tồn tại. Tôi khuyên bạn nên tự mình tạo bằng cách sử dụng thư viện đo điểm chuẩn. –
Nếu ai đó cuối cùng quyết định thực hiện điểm chuẩn trên trang này, điều đó sẽ tạo ra rất nhiều ý nghĩa để cũng thả vào một 'Vector' để so sánh. Sẽ rất tốt đẹp để xem kết quả. Yêu thích cái này. –
Điều này cũng khó (hoặc không đặc biệt hữu ích) vì trong mã thực, với GHC, danh sách trung gian có xu hướng hợp nhất và viết lại và biến mất, làm cho chúng giống cấu trúc điều khiển hơn cấu trúc dữ liệu. – jberryman