GraphScope、Neo4j与TigerGraph单机环境下性能对比

2024-03-12 18:18

本文主要是介绍GraphScope、Neo4j与TigerGraph单机环境下性能对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目前工业界和学术界已经开发出了很多图分析系统,针对图分析的计算特性提出了各种各样的优化策略,在图分析任务上取得了优异的性能。近年来,各种各样的图数据库支持了各种查询语言(例如Cypher、GSQL和Gremlin),尝试为用户提供简单易用的图查询功能,利用这些查询语言,用户也可以表达出SSSP、PageRank等图分析算法的计算逻辑。为了对比图分析系统和图数据库在图分析任务上的性能,我们选取了典型的图分析系统GraphScope和图数据库系统Neo4j以及TigerGraph,在单机环境下进行了性能对比。

1、实验介绍

为了比较计算效率,我在阿里云拉起了配置为16核CPU,248GB内存的4台ECS,设计了三组比较实验,分别为Neo4j单机的计算性能,Tigergraph单机的计算性能和GraphScope单机的计算性能。

数据上,我选取了来自LDBC数据集的com-friendster,datagen-9.0_fb,datagen-9.1_fb,datagen-9.2_zf和graph500作为实验数据,以下为实验数据的基本信息:

com-friendster:65608366个点,1806067835条边

datagen-9.0_fb:12857671个点,1049527225条边

datagen-9.1_fb: 16087483个点,1342158397条边

datagen-9.2_zf: 434943376个点,1042340732条边

graph500: 32804978个点,1051922853条边

实验设计上选择常用的SSSP,Pagerank和Triangle Counting算法。以计算时间为指标,对三个系统进行性能上的比较。

2、实验结果

在计算时间上,GraphScope的计算效率远远超过Neo4j和Tigergraph。Tigergraph采用的SSSP算法为Bellman-ford算法,复杂度较高,因此在所有的数据集上都超过了我们设定的3600秒时限。

SSSP算法上,GraphScope单机模式下平均要比Neo4j快176.38倍,最快在datagen-9.2_zf数据集上快了292.2倍。

  图1 不用系统的SSSP算法性能对比

 

SSSP

这篇关于GraphScope、Neo4j与TigerGraph单机环境下性能对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/802149

相关文章

Java中Map的五种遍历方式实现与对比

《Java中Map的五种遍历方式实现与对比》其实Map遍历藏着多种玩法,有的优雅简洁,有的性能拉满,今天咱们盘一盘这些进阶偏基础的遍历方式,告别重复又臃肿的代码,感兴趣的小伙伴可以了解下... 目录一、先搞懂:Map遍历的核心目标二、几种遍历方式的对比1. 传统EntrySet遍历(最通用)2. Lambd

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解

《C++,C#,Rust,Go,Java,Python,JavaScript的性能对比全面讲解》:本文主要介绍C++,C#,Rust,Go,Java,Python,JavaScript性能对比全面... 目录编程语言性能对比、核心优势与最佳使用场景性能对比表格C++C#RustGoJavapythonjav

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

C++ scoped_ptr 和 unique_ptr对比分析

《C++scoped_ptr和unique_ptr对比分析》本文介绍了C++中的`scoped_ptr`和`unique_ptr`,详细比较了它们的特性、使用场景以及现代C++推荐的使用`uni... 目录1. scoped_ptr基本特性主要特点2. unique_ptr基本用法3. 主要区别对比4. u

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Java多种文件复制方式以及效率对比分析

《Java多种文件复制方式以及效率对比分析》本文总结了Java复制文件的多种方式,包括传统的字节流、字符流、NIO系列、第三方包中的FileUtils等,并提供了不同方式的效率比较,同时,还介绍了遍历... 目录1 背景2 概述3 遍历3.1listFiles()3.2list()3.3org.codeha

CPython与PyPy解释器架构的性能测试结果对比

《CPython与PyPy解释器架构的性能测试结果对比》Python解释器的选择对应用程序性能有着决定性影响,CPython以其稳定性和丰富的生态系统著称;而PyPy作为基于JIT(即时编译)技术的替... 目录引言python解释器架构概述CPython架构解析PyPy架构解析架构对比可视化性能基准测试测

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,