首先讓我告訴你,我已經閱讀了Java HashMap performance optimization/alternative之前詢問過的以下問題,我也有類似的問題。什麼是HashMap映射到原始類型的快速替代方法?
我想要做的是從紐約時代的文本,將由斯坦福分析器處理以提供依賴關係,並將其依賴關係存儲在散列表連同他們的分數,即如果我看到一個依賴兩次我依賴關係會將散列圖中的分數遞增1.
該任務開始非常迅速,每秒大約10個句子,但迅速縮小。在30 000個句子(假設每個句子中有10個單詞,每個單詞存儲大約3至4個依賴關係)在我的散列表中大約有300 000個條目。
我將如何提高散列表的性能?我可以使用什麼樣的hashkey?
非常感謝 馬蒂諾
編輯1:
好的球員,也許我措辭,我的問題錯誤OK,很好的字節數組並不在我的項目,但在上述其他人的類似的問題中。我不知道他們在用什麼,因此這就是爲什麼我問。
其次:
隨着一句:我認爲這將會使事情很難理解,但這裏是一個示例我不會發表碼「我要睡覺了」我有依賴關係: (我, (i,去,-1) (i,to,-3) (am,去,-1) 。 。 。 (to,bed,-1) 所有句子(1 000 000句子)的這些相關性將存儲在散列表中。 如果我看到依賴關係兩次,我會得到現有的依賴關係的分數,並添加1.
而且這是非常多的。一切都很好,但在hashmap中添加句子的速度(或檢索)在這一行上縮小: dependancyBank.put(newDependancy,dependancyBank.get(newDependancy)+ 1); 誰能告訴我爲什麼? Registers Martinos
如果你能顯示更多的代碼,這將真的有幫助...例如,涉及的類型是什麼?每秒10句話聽起來很慢...... – 2012-04-01 19:26:12
請考慮在最後刪除額外的問題,它將更適合作爲相關問題的評論。 – GavinCattell 2012-04-01 19:26:27
你不能使用'byte []'作爲一個鍵,所以我想知道你可以使用它。 'byte []'是一個對象,你不能將一個原語放入一個HashMap中(你只能添加包裝) – 2012-04-01 19:29:07