maxime-rainville/silverstripe-graphql-benchmark

创建伪造的 Graphql schema 以进行性能基准测试

dev-master 2022-03-31 09:23 UTC

README

此模块的目的是创建大型 GraphQL schema 以基准测试 GraphQL v4 的性能。

安装

composer require maxime-rainville/silverstripe-graphql-benchmark

使用方法

运行此命令将创建 schema 和相关的 DataObject。

# The fake schemas are created against this repo. Make sure you remove any pre-existing schema first
rm vendor/maxime-rainville/silverstripe-graphql-benchmark/src/Models/*.php
rm vendor/maxime-rainville/silverstripe-graphql-benchmark/_config/graphql.yml
rm vendor/maxime-rainville/silverstripe-graphql-benchmark/_graphql/* -R

sake dev/tasks/MaximeRainville-SilverStripeGraphQLBenchmark-Tasks-SchemaCreatorTask "" flush=all

请参阅 SchemaCreatorTask 中的配置选项。

如果您想将此部署到某处,您需要运行任务并将更改提交到分支。

关于数据

示例数据对象将在 dev/build 时尝试生成一些随机数据和随机关系。

默认情况下,我们将为每个 DataObject 类生成 5 个实例,并将它们随机链接在一起。

默认情况下将生成什么 schema?

默认情况下,模块没有任何 schemas 或 DataObjects。您必须运行任务才能获取一些内容。

默认情况下,任务将生成以下 schemas

  • 微型:5 个 DataObjects
  • 小型:10 个 DataObjects
  • 中型:40 个 DataObjects
  • 大型:100 个 DataObjects
  • 超大型:250 个 DataObjects
  • 巨型:500 个 DataObjects

生成的 DataObject 将包含未版本化的 DataObjects、已版本化的 DataObject 和已版本化未提交的 DataObjects 的混合。比例是 45-45-10。

我可以安装哪些其他分支?

  • generic 提供了一个通用的设置,应该适用于大多数情况。
  • small-only 仅提供微型和小型 schema。如果您不想构建完整的 500 个 DataObject 巨型 schema,请使用此分支。
  • versioned-all 将向所有 DataObjects 添加 Versioned 扩展。
  • versioned-none 不会将 Versioned 扩展应用于任何 DataObjects。