那么,有没有一个高性能的图形库来处理primitivies,而不需要那些泛型/自动装箱开销?对于双列表,你可以使用trove,对于线性代数,你可以使用netlib-java (为了更好地理解我对这个问题的兴趣所在,请举例说明)。
至于图/网络:我发现的所有库都使用泛型,不应该有那么好的性能。我也可以为此做一些测试,但我相信堆管理的网络链接权重会比double[]差一些位偏移量来获得i和j的索引。使用场景:有数百个这样的网络(其中大多数是稀疏的),大小为4k*4k,在这组网络上运行一些遗传优化,为每个样本做一些流量/分钟路由估计。
因此,这里有:JGraphT、JUNG、ANNAS、JDSL (链接指向API/代码示例,这些示例暴露了所有这些API/代码中糟糕的Java Generics/对象包装器)。有没有其他类似宝藏的选择?我已经创建了一些简单的实现,但只是决定四处看看,以避免发明合适的自行车……
有什么意见和建议吗?
谢谢,安东
PS:请不要开始讨论泛型负载的Java代码的性能,至少在没有链接到一些像样的基准测试之前,好吗?;)
发布于 2011-03-10 18:59:36
你可以使用一些行压缩的稀疏矩阵。不是最好的,也不是专门的,但你可以在它的基础上进行改进。
好吧,有一些通用的稀疏矩阵实现,它们不会与泛型打交道,还有一个相当可靠的性能基准:谷歌代码ujmp related overview上的java-matrix-benchmark
最有说服力的是MTJ's sparse matrix。
如果您有任何建议或更新,请添加问题的答案。我会接受任何更好的想法。谢谢。
发布于 2011-02-22 16:35:59
你看过neo4j了吗?- http://neo4j.org/
发布于 2014-08-24 00:37:40
如果您需要高性能的数据结构,您应该检查fastutil项目,该项目在时间和内存方面都是Java Collection Framework的高效实现。还可以避免对原始类型进行装箱和拆箱,从而提高性能。
Fastutil是非常有效的数据结构。如果你需要一个图形ADT实现,你可以查看this,它是一个高效的基于fastutil的内存图实现。这个项目是我的硕士论文的一部分,它是关于大图中的社区检测。
希望它能帮上忙!
https://stackoverflow.com/questions/4992591
复制相似问题