jGraphX 绘图总结,增加大量节点和边的效率问题。

本文总结了在jGraphX中遇到的效率问题,特别是当添加大量节点和边时,性能显著下降。通过分析jGraphX的手册和源代码,发现`mxGraphModel.beginUpdate()`和`endUpdate()`用于包围模型更改以优化更新过程。然而,当不正确使用这些函数时,性能瓶颈在于`endUpdate()`,因为它会随着边的增加导致更新范围扩大,造成指数级增长的耗时。为了解决这个问题,提出了使用`beginUpdate()`和`endUpdate()`包围for循环来限制更新范围,从而提高性能。实践证明,这种方法能显著提升添加大量边的速度。

参考jGraphx手册:
http://jgraph.github.io/mxgraph/docs/manual_javavis.html#1.6.1
JGraphX的核心是JGraphX Model
几乎所有的修改动作,都需要调用model的方法:


下面是核心方法:

  • mxGraphModel.beginUpdate() - starts a new transaction or a sub-transaction.
  • mxGraphModel.endUpdate() - completes a transaction or a sub-transaction.
  • mxGraph.addVertex() - Adds a new vertex to the specified parent cell.
  • mxGraph.addEdge() - Adds a new edge to the specified parent cell.
  • mxGraph.insertVertex(parent, id, value, x, y, width, height, style) – creates and inserts a new vertex into the model, within a begin/end update call.
  • mxGraph.insertEdge(parent, id, value, source, target, style) – creates and inserts a new edge into the model, within a begin/end update call.
Mod
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值