2011-02-14 62 views
2

那麼,是否有一個高性能的圖形庫用於處理原始數據,而沒有這些泛型/自動裝載開銷?對於雙列表,您可以使用trove,對於線性代數,您可以使用netlib-java(爲了更好地理解我對這個問題的興趣,可以使用示例)。用於高性能圖形/網絡數據結構的java庫

至於圖形/網絡:我發現的所有庫都使用泛型,應該不是那麼高性能。我也可以爲此做一些測試,但我相信堆管理的網絡鏈路權重會低於double [],並且有一些偏移量會得到i和j的索引。使用場景:有數百個這樣的網絡(大部分是稀疏的),大小爲4k * 4k,有一些遺傳優化運行在該網絡集合上,對每個樣本進行一些流量/分鐘路由估計。

因此,有是:JGraphTJUNGANNASJDSL(鏈接導致其露出悽慘的Java泛型/對象包裝在所有這些API的/代碼示例)。有任何Trove-ish替代品嗎?我已經創建了一些簡單的實現,但只是決定環顧四周,以避免發明適當的自行車...

任何意見,建議?

感謝, 安東

PS:請不要對仿製藥載貨Java代碼的表現開始,至少在沒有鏈接到一些像樣的基準,好嗎? ;)

回答

0

您可以對行壓縮使用一些稀疏矩陣。不是最好的,也不是專業化的,但你可以建立在它之上。

嗯,有是一些通用的稀疏矩陣實現它不惹泛型和一個相當堅實的業績比較基準: java-matrix-benchmark對谷歌代碼 ujmp related overview

最有說服力的是MTJ's sparse matrix

如果您有任何建議或更新,請在問題中添加解答。我會接受任何更好的想法。謝謝。

2

你看過neo4j嗎? - http://neo4j.org/

+0

恩,謝謝參考。我不認爲這個代碼比上面的庫好: double power = 0; (關係r:node.getRelationships()){ power + = r.getProperty(「weight」,0); } 此外,我不得不折騰大量的網絡實際上堅持他們。我有一個內存網絡網絡可以說... – 2011-02-23 06:58:23

0

如果您需要高性能的數據結構,您應該檢查fastutil項目,這對Java Collection Framework的時間和內存實現都是有效的。性能也可以避免裝箱和拆箱原始類型。

Fastutil是非常有效的數據結構。如果您需要圖ADT實現,您可以在fastutil的基礎上檢查this,這是一種高效的內存圖實現。 該項目是我的碩士論文的一部分,這是關於大圖中的社區檢測。

希望它有幫助!