Có bất kỳ điểm chuẩn vi mô nào được công bố so sánh bộ sưu tập Scala có thể thay đổi và bất biến với nhau và các bộ sưu tập trong java.util.concurrent
, trong môi trường đa luồng ? Tôi đặc biệt quan tâm đến các trường hợp người đọc vượt xa số lượng nhà văn, giống như bộ nhớ đệm HashMaps trong mã phía máy chủ.Micro-benchmark so sánh các bộ sưu tập Scala có thể thay đổi được với các bộ sưu tập java.util.concurrent. *
Điểm chuẩn vi mô của bộ sưu tập Clojure cũng sẽ được chấp nhận, vì thuật toán của chúng tương tự như thuật toán được sử dụng trong bộ sưu tập liên tục Scala 2.8.
Tôi sẽ tự viết nếu không có gì đã thực hiện, nhưng việc viết tiêu chuẩn vi điểm tốt không phải là tầm thường.
Tôi nghĩ rằng điều đó là cực kỳ khó, bạn sẽ nhận được bất kỳ điểm chuẩn hợp lý nào so sánh các bộ sưu tập có thể thay đổi và bất biến, bởi vì thiết kế của ứng dụng đó là khác nhau. –
@Daniel: Hiện tại chúng tôi có một số mã máy chủ Java có chứa HashMaps được đọc khoảng 1.000.000 lần cho mỗi lần viết. Mã này sử dụng 'đồng bộ', nhưng người đọc trả tiền phạt cho tất cả những người đọc bị tranh chấp mặc dù dữ liệu có hiệu quả bất biến. Tôi nghĩ rằng tôi có thể sử dụng các bộ sưu tập liên tục từ functionaljava và chỉ khóa khi thay thế bộ sưu tập cũ bằng bộ sưu tập "sao chép" mới chứa mục mới. – Ralph
Trông giống như một kỳ vọng hợp lý và nó minh họa vấn đề với điểm chuẩn. Nếu bạn kiểm tra loại tải đó, bạn đang thiên về tính bất biến. Nhưng lưu ý rằng, bằng cách sử dụng bản đồ bất biến, bạn phải _replace_ bản đồ bất cứ khi nào bạn cập nhật, có nghĩa là bạn sẽ cần phải tuần tự hóa tất cả các bản cập nhật bằng cách nào đó. Bản thân bản đồ có thể được chỉ ra bởi một vật dễ bay hơi, nếu bạn không nhớ đọc các phần sau bị trễ. –