2009-07-02 31 views
5

Có bất kỳ triển khai HashMap nào đưa ra các phương thức móc để lập hồ sơ hiệu suất của Bản đồ (chiều dài chuỗi trung bình, thời gian truy cập tốt nhất/xấu nhất/trung bình, #rehashes, v.v.).HashMap profiling

Có vẻ khá phổ biến khi sử dụng HashMap và "hy vọng cho điều tốt nhất" liên quan đến ~ O (1) thời gian truy cập, mà không phân tích xem đây có phải là trường hợp hay không. ít nhất trong quá trình phát triển), vì vậy bất cứ thứ gì móc vào phần mềm JMX hoặc profiling cũng sẽ tốt.

Ngoài ra, Có ai biết về triển khai HashMap trong đó chuỗi dựa trên cây nhị phân thay vì danh sách được liên kết không?

Xin cảm ơn trước.

Trả lời

4

Có một trình thu gọn Java mới để thực hiện những gì bạn đang theo đuổi. CollectionSpy (www.collectionspy.com) theo dõi số lần phục hồi nội bộ của bất kỳ vùng chứa băm nào và cũng có hình ảnh biểu đồ của các lenghts danh sách nhóm. Không (chưa) cung cấp bất kỳ thông tin thời gian mặc dù.

+0

Cảm ơn - Tôi chắc chắn sẽ kiểm tra. – Adamski

1

TreeMap được dựa trên cây đỏ đen.

Cập nhật: áp phích quan tâm đến HashMaps trong đó các chuỗi riêng lẻ là các cây nhị phân.

+0

Kỹ thuật nào không phải là triển khai băm, nhưng chúng tôi không muốn quá phức tạp. – skaffman

+1

Cảm ơn nhưng tôi rất thú vị trong HashMaps nơi các chuỗi riêng lẻ là các cây nhị phân ... tức là tôi quan tâm đến xấp xỉ thời gian truy cập O (1). – Adamski

+0

OK. Tôi sẽ để lại câu trả lời (& bình luận) tại chỗ để cứu những người khác phiền phức. –

2

Trong phần thứ hai của câu hỏi, nếu bạn đang tìm kiếm triển khai Hashmap nhanh với một số đảm bảo thời gian thực phong nha, hãy xem Javolution. Đó là nhanh chóng, đáng tin cậy và đi vào một số lượng khá chi tiết về hiệu suất.