2011-02-14 67 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,这是一种高效的内存图实现。 该项目是我的硕士论文的一部分,这是关于大图中的社区检测。

希望它有帮助!