![Graphviz(neato)在处理具有 50,000 个顶点的树时发生段错误](https://linux22.com/image/1587732/Graphviz%EF%BC%88neato%EF%BC%89%E5%9C%A8%E5%A4%84%E7%90%86%E5%85%B7%E6%9C%89%2050%2C000%20%E4%B8%AA%E9%A1%B6%E7%82%B9%E7%9A%84%E6%A0%91%E6%97%B6%E5%8F%91%E7%94%9F%E6%AE%B5%E9%94%99%E8%AF%AF.png)
我有一个 5MB 的 .gv 文件,其中包含 50,000 个节点树的边缘。我已在其上运行 neato(使用几种输出格式)。.gv 文件由贤者数学(内置Graph.show
方法未终止)。
我得到的信息如下:
neato(2258,0x108a0d5c0) malloc: *** set a breakpoint in malloc_error_break to debug out of memory
fish: 'neato 11.gv -Tsvg > 11.svg' terminated by signal SIGSEGV (Address boundary error)
这种尺寸的图对于 graphviz 来说是否太大了?我认为这种尺寸的密集图的布局会非常混乱/缓慢,甚至不可行,但我认为树很容易布局。我可以想到一些非常简单的布局算法;我只是更喜欢使用我安装的命令行工具。
此外,如果有人认为其他 SE 网站更适合,请添加评论,谢谢!
编辑:
我刚刚发现了 sfdp。我会尝试一下,如果问题解决了,我会发布答案。
答案1
看来切换到sfdp
解决了这个问题。输出在不到一分钟的时间内生成(虽然默认设置无法读取;必须对此进行调整)。