Skip to content

Latest commit

 

History

History
687 lines (547 loc) · 26 KB

README_zh_cn.md

File metadata and controls

687 lines (547 loc) · 26 KB

GUS - Godot Universal Serializer 2 - Godot的通用序列化器2

Image text

English doc <- click here。

为序列化尺寸优化而构建的 Godot 4.x 通用序列化器。 支持除了 ObjectRIDCallable 以及 Signal 以外的 Godot4.x 的所有内建数据类型。

特点:

  1. 不丢失类型信息。在跨端传送时不需要类型检测和类型强制转换,就像本地传参一般。
  2. 整形是变长序列化。
  3. 相比 Godot 的原生序列化方法 var_to_bytes() 和转换成JSON再转UTF8数据, GUS的序列化后数据尺寸有显著的减少。尤其适用于多人游戏中需要传输的小型数据结构的序列化。
  4. 多数情况下效率甚至比原生序列化更高。
  5. GDExtension 插件,具有较高的性能。

可以通过运行名为GUS_benchmark.gd的编辑器脚本来查看 GUSNative 以及 JSON 这三种方式的剧烈话反序列化测试对比。

如何使用:

  1. 传递不包含ObjectOIDCallable以及 Signal的变量给 GUS.var_to_bytes()并获取序列化后数据,然后发送给其他网络对等体。
  2. 远端的网络对等体获取到序列化后数据,传递给GUS.bytes_to_var(),即可获得与序列化前相同的变量。

注意:

  1. ArrayDictionary 不能包含 ObjectRIDCallable以及Signal

如何编译:

  1. 根据官方文档搭建你的编译环境。

  2. 克隆这个仓库(以递归方式克隆,以包含子模块)。

  3. 你必须至少生成一次godot-cpp的绑定,并且至少构建一次它的库。

    • 你可以手动生成并构建: a. 导航到godot-cpp文件夹。 b. 运行以下命令。

       scons generate_bindings=yes build_library=yes
      

      c. 完成以后,您需要在下个步骤的命令中添加参数generate_bindings=no build_library=no来避免重复构建GUS时重复生成godot-cpp的绑定与godot-cpp的库。

    • (推荐方式)在每次构建GUS时重复生成godot-cpp的绑定与构建其库,直接跳该步骤,在下个步骤的命令中添加参数generate_bindings=yes build_library=yes来显式要求该操作,或忽略这些参数以默认方式工作。 别担心,只要编译条件没有变化,重复生成与构建不会占用您太多时间。

  4. 编译GUS与编译godot-cpp有一点小区别(当然你也可以继续使用scons命令进行构建),为了执行一些后处理,我使用一个简单的工具脚本进行编译: 导航到根目录,运行以下命令

      python build.py
    

    你可以像在编译godot-cpp一样对改命令添加其他参数。 你可以使用以下命令来查看更多参数详情:

      python build.py -h
    

    特别的:

    • 如果你没有明确taget参数,该脚本工具会同时编译target=template_debug和 - target=template_release`两种版本。
    • 如果添加了dev_build=yes参数,将在后处理复制二进制文件步骤中将该库文件名的``.dev.替换为.`供测试使用,避免修改`gus2.gdextension`文件。
  5. 现在,你可以在dist获得该插件。

    注意: 如果你使用scons命令进行编译,你只能在bin文件夹下得到编译好的动态库,如果为macsos构建,其二进制文件将直接于dist目录下生成。

其他

如果这个插件能帮到你还请考虑为我充电以支持我的开源活动。

基准测试 2.2.0:

null - value:<null>
	[GUS]: 		1 bytes 		ser 4 usec 		deser 1 usec
	[Native]: 	4 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		4 bytes 		ser 5 usec 		deser 3 usec

bool - value:true
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		4 bytes 		ser 3 usec 		deser 2 usec

bool - value:false
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		5 bytes 		ser 3 usec 		deser 2 usec

int1 - value:122
	[GUS]: 		3 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		3 bytes 		ser 3 usec 		deser 1 usec

int2 - value:23611
	[GUS]: 		4 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		5 bytes 		ser 4 usec 		deser 1 usec

int3 - value:-8016784
	[GUS]: 		5 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		8 bytes 		ser 30 usec 		deser 1 usec

int4 - value:1783875844
	[GUS]: 		6 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 0 usec
	[JSON]:		10 bytes 		ser 3 usec 		deser 1 usec

int5 - value:-533449183297
	[GUS]: 		7 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		13 bytes 		ser 3 usec 		deser 1 usec

int6 - value:99315901321300
	[GUS]: 		8 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 0 usec 		deser 0 usec
	[JSON]:		14 bytes 		ser 3 usec 		deser 1 usec

int7 - value:17047537962766401
	[GUS]: 		9 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		17 bytes 		ser 6 usec 		deser 1 usec

int8 - value:-8838969341549745360
	[GUS]: 		11 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 0 usec 		deser 0 usec
	[JSON]:		20 bytes 		ser 3 usec 		deser 2 usec

float - value:-105.0532
	[GUS]: 		9 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		9 bytes 		ser 10 usec 		deser 1 usec

String - value:test 测试
	[GUS]: 		13 bytes 		ser 4 usec 		deser 2 usec
	[Native]: 	20 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		13 bytes 		ser 5 usec 		deser 2 usec

StringName - value:TestStringName
	[GUS]: 		16 bytes 		ser 5 usec 		deser 2 usec
	[Native]: 	24 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		16 bytes 		ser 20 usec 		deser 2 usec

Vector2 - value:(-423, 46.8005)
	[GUS]: 		9 bytes 		ser 1 usec 		deser 0 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		17 bytes 		ser 9 usec 		deser 2 usec

Vector2i - value:(-423, 23611)
	[GUS]: 		9 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		15 bytes 		ser 7 usec 		deser 2 usec

Vector3 - value:(52011, -541.3327, 77441)
	[GUS]: 		13 bytes 		ser 1 usec 		deser 0 usec
	[Native]: 	16 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		27 bytes 		ser 11 usec 		deser 3 usec

Vector3i - value:(-423, 23611, 52011)
	[GUS]: 		13 bytes 		ser 2 usec 		deser 0 usec
	[Native]: 	16 bytes 		ser 0 usec 		deser 1 usec
	[JSON]:		22 bytes 		ser 7 usec 		deser 2 usec

Vector4 - value:(5211, -541.327, 7441, 1.23)
	[GUS]: 		17 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	20 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		30 bytes 		ser 12 usec 		deser 2 usec

Vector4i - value:(-42, 49947, 5211, 445)
	[GUS]: 		17 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	20 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		25 bytes 		ser 8 usec 		deser 2 usec

Projection - value:
8740.2373046875, 0, 0, 0
0, 441.044006347656, 0, 0
0, 0, 1, 0
56.6220016479492, -77.8499984741211, 0, 1
	[GUS]: 		65 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	68 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		110 bytes 		ser 40 usec 		deser 28 usec

Rect2 - value:[P: (56.622, -77.85), S: (8740.237, 441.044)]
	[GUS]: 		17 bytes 		ser 2 usec 		deser 0 usec
	[Native]: 	20 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		47 bytes 		ser 15 usec 		deser 3 usec

Rect2i - value:[P: (-495747255, 323484462), S: (1855859115, 474812983)]
	[GUS]: 		17 bytes 		ser 1 usec 		deser 1 usec
	[Native]: 	20 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		58 bytes 		ser 11 usec 		deser 2 usec

Transform2D - value:[X: (1, 0), Y: (0, -1), O: (513, 88.5)]
	[GUS]: 		25 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	28 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		41 bytes 		ser 13 usec 		deser 3 usec

Plane - value:[N: (-0.022075, 0.354495, 0.934797), D: 0.301078]
	[GUS]: 		17 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	20 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		51 bytes 		ser 30 usec 		deser 3 usec

Quaternion - value:(-54.55, 876, 2310, 744)
	[GUS]: 		17 bytes 		ser 15 usec 		deser 1 usec
	[Native]: 	20 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		26 bytes 		ser 13 usec 		deser 3 usec

AABB - value:[P: (-77.85, 8740.237, 441.044), S: (105, 50, 68)]
	[GUS]: 		25 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	28 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		52 bytes 		ser 14 usec 		deser 3 usec

Basis - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1)]
	[GUS]: 		37 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	40 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		45 bytes 		ser 13 usec 		deser 2 usec

Transform3D - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1), O: (513, -88.5, 105)]
	[GUS]: 		49 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	52 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		67 bytes 		ser 16 usec 		deser 3 usec

Color - value:(1, 1, 1, 1)
	[GUS]: 		33 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	20 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		14 bytes 		ser 25 usec 		deser 1 usec

NodePath - value:/root/@EditorNode@16886/@Panel@13
	[GUS]: 		35 bytes 		ser 5 usec 		deser 4 usec
	[Native]: 	64 bytes 		ser 3 usec 		deser 3 usec
	[JSON]:		35 bytes 		ser 7 usec 		deser 3 usec

Array - value:[574, -21, (-423, 46.8005), (0, 1, 1, 1), "acxx"]
	[GUS]: 		62 bytes 		ser 8 usec 		deser 6 usec
	[Native]: 	68 bytes 		ser 3 usec 		deser 5 usec
	[JSON]:		49 bytes 		ser 60 usec 		deser 7 usec

Dictionary - value:{ "k_str": "value1", "k_color": (0.9412, 0.9725, 1, 1), "k_int": 123123, "k_float": 44.886, "k_vec3": (52011, -541.3327, 77441), 532: [574, -21, (-423, 46.8005), (0, 1, 1, 1), "acxx"] }
	[GUS]: 		174 bytes 		ser 17 usec 		deser 7 usec
	[Native]: 	236 bytes 		ser 7 usec 		deser 6 usec
	[JSON]:		178 bytes 		ser 45 usec 		deser 12 usec

Empty Array - value:[]
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Dictionary - value:{  }
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 5 usec 		deser 1 usec

Empty PackedByteArray - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		4 bytes 		ser 5 usec 		deser 1 usec

Empty PackedInt32Array - Size:0
	[GUS]: 		1 bytes 		ser 3 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 4 usec 		deser 1 usec

Empty PackedInt64Array - Size:0
	[GUS]: 		1 bytes 		ser 3 usec 		deser 0 usec
	[Native]: 	8 bytes 		ser 0 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty PackedFloat32Array - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty PackedFloat64Array - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty PackedStringArray - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 0 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty PackedVector2Array - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 0 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		4 bytes 		ser 5 usec 		deser 1 usec

Empty PackedVector3Array - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		4 bytes 		ser 5 usec 		deser 1 usec

Empty PackedVector4Array - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 0 usec 		deser 1 usec
	[JSON]:		4 bytes 		ser 4 usec 		deser 2 usec

Empty PackedColorArray - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	8 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		4 bytes 		ser 5 usec 		deser 1 usec

PackedByteArray - Size:4096
	[GUS]: 		4099 bytes 		ser 5 usec 		deser 2 usec
	[Native]: 	4104 bytes 		ser 1 usec 		deser 4 usec
	[JSON]:		18695 bytes 		ser 890 usec 		deser 286 usec

PackedInt32Array - Size:4096
	[GUS]: 		16387 bytes 		ser 8 usec 		deser 3 usec
	[Native]: 	16392 bytes 		ser 9 usec 		deser 14 usec
	[JSON]:		44955 bytes 		ser 2028 usec 		deser 389 usec

PackedInt64Array - Size:4096
	[GUS]: 		32771 bytes 		ser 9 usec 		deser 4 usec
	[Native]: 	32776 bytes 		ser 14 usec 		deser 23 usec
	[JSON]:		81571 bytes 		ser 3407 usec 		deser 562 usec

PackedFloat32Array - Size:4096
	[GUS]: 		16387 bytes 		ser 10 usec 		deser 4 usec
	[Native]: 	16392 bytes 		ser 9 usec 		deser 15 usec
	[JSON]:		73718 bytes 		ser 4150 usec 		deser 529 usec

PackedFloat64Array - Size:4096
	[GUS]: 		32771 bytes 		ser 9 usec 		deser 5 usec
	[Native]: 	32776 bytes 		ser 13 usec 		deser 22 usec
	[JSON]:		80128 bytes 		ser 5368 usec 		deser 474 usec

PackedStringArray - Size:4096
	[GUS]: 		23472 bytes 		ser 2895 usec 		deser 418 usec
	[Native]: 	48764 bytes 		ser 988 usec 		deser 600 usec
	[JSON]:		31662 bytes 		ser 3788 usec 		deser 1740 usec

PackedVector2Array - Size:4096
	[GUS]: 		32771 bytes 		ser 10 usec 		deser 5 usec
	[Native]: 	32776 bytes 		ser 17 usec 		deser 31 usec
	[JSON]:		89182 bytes 		ser 9463 usec 		deser 1346 usec

PackedVector3Array - Size:4096
	[GUS]: 		49155 bytes 		ser 17 usec 		deser 11 usec
	[Native]: 	49160 bytes 		ser 26 usec 		deser 40 usec
	[JSON]:		129652 bytes 		ser 13254 usec 		deser 1829 usec

PackedVector4Array - Size:4096
	[GUS]: 		65539 bytes 		ser 14 usec 		deser 7 usec
	[Native]: 	65544 bytes 		ser 35 usec 		deser 46 usec
	[JSON]:		170203 bytes 		ser 18130 usec 		deser 2678 usec

PackedColorArray - Size:4096
	[GUS]: 		65539 bytes 		ser 12 usec 		deser 7 usec
	[Native]: 	65544 bytes 		ser 33 usec 		deser 46 usec
	[JSON]:		137407 bytes 		ser 15698 usec 		deser 2166 usec

Empty Array[bool] - Size:0
	[GUS]: 		1 bytes 		ser 6 usec 		deser 3 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 3 usec
	[JSON]:		2 bytes 		ser 5 usec 		deser 3 usec

Empty Array[int] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 2 usec

Empty Array[float] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 2 usec

Empty Array[String] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 2 usec 		deser 2 usec

Empty Array[StringName] - Size:0
	[GUS]: 		1 bytes 		ser 3 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Vector2] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Vector2i] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Vector3] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 2 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Vector3i] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Vector4] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Vector4i] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 2 usec

Empty Array[Projection] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 2 usec 		deser 1 usec

Empty Array[Rect2] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Rect2i] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 2 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 2 usec

Empty Array[Transform2D] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Plane] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Quaternion] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[AABB] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Basis] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Transform3D] - Size:0
	[GUS]: 		1 bytes 		ser 3 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 2 usec 		deser 3 usec
	[JSON]:		2 bytes 		ser 4 usec 		deser 2 usec

Empty Array[Color] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[NodePath] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 2 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[Array] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 29 usec

Empty Array[Dictionary] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[PackedByteArray] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 2 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 4 usec 		deser 1 usec

Empty Array[PackedInt32Array] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 2 usec

Empty Array[PackedInt64Array] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[PackedFloat32Array] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 2 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[PackedFloat64Array] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 2 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 2 usec

Empty Array[PackedStringArray] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[PackedVector2Array] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 2 usec 		deser 1 usec

Empty Array[PackedVector3Array] - Size:0
	[GUS]: 		1 bytes 		ser 1 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 2 usec 		deser 2 usec

Empty Array[PackedVector4Array] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 1 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Empty Array[PackedColorArray] - Size:0
	[GUS]: 		1 bytes 		ser 2 usec 		deser 1 usec
	[Native]: 	12 bytes 		ser 1 usec 		deser 2 usec
	[JSON]:		2 bytes 		ser 3 usec 		deser 1 usec

Array[bool] - Size:4096
	[GUS]: 		4099 bytes 		ser 33 usec 		deser 114 usec
	[Native]: 	32780 bytes 		ser 58 usec 		deser 210 usec
	[JSON]:		22551 bytes 		ser 984 usec 		deser 1644 usec

Array[int] - Size:4096
	[GUS]: 		20348 bytes 		ser 92 usec 		deser 146 usec
	[Native]: 	41088 bytes 		ser 109 usec 		deser 183 usec
	[JSON]:		43977 bytes 		ser 2496 usec 		deser 336 usec

Array[float] - Size:4096
	[GUS]: 		32771 bytes 		ser 47 usec 		deser 143 usec
	[Native]: 	49164 bytes 		ser 79 usec 		deser 179 usec
	[JSON]:		71202 bytes 		ser 4660 usec 		deser 468 usec

Array[String] - Size:4096
	[GUS]: 		60336 bytes 		ser 3188 usec 		deser 837 usec
	[Native]: 	97920 bytes 		ser 1171 usec 		deser 988 usec
	[JSON]:		68526 bytes 		ser 3977 usec 		deser 2668 usec

Array[StringName] - Size:4096
	[GUS]: 		80816 bytes 		ser 3742 usec 		deser 1328 usec
	[Native]: 	114664 bytes 		ser 1273 usec 		deser 1371 usec
	[JSON]:		89006 bytes 		ser 3939 usec 		deser 3662 usec

Array[Vector2] - Size:4096
	[GUS]: 		32771 bytes 		ser 72 usec 		deser 142 usec
	[Native]: 	49164 bytes 		ser 67 usec 		deser 187 usec
	[JSON]:		108976 bytes 		ser 8969 usec 		deser 3717 usec

Array[Vector2i] - Size:4096
	[GUS]: 		32771 bytes 		ser 69 usec 		deser 144 usec
	[Native]: 	49164 bytes 		ser 68 usec 		deser 181 usec
	[JSON]:		110456 bytes 		ser 9709 usec 		deser 3760 usec

Array[Vector3] - Size:4096
	[GUS]: 		49155 bytes 		ser 67 usec 		deser 144 usec
	[Native]: 	65548 bytes 		ser 80 usec 		deser 194 usec
	[JSON]:		157311 bytes 		ser 12737 usec 		deser 4907 usec

Array[Vector3i] - Size:4096
	[GUS]: 		49155 bytes 		ser 71 usec 		deser 146 usec
	[Native]: 	65548 bytes 		ser 78 usec 		deser 195 usec
	[JSON]:		159468 bytes 		ser 12224 usec 		deser 4942 usec

Array[Vector4] - Size:4096
	[GUS]: 		65539 bytes 		ser 80 usec 		deser 143 usec
	[Native]: 	81932 bytes 		ser 83 usec 		deser 201 usec
	[JSON]:		205795 bytes 		ser 15415 usec 		deser 5652 usec

Array[Vector4i] - Size:4096
	[GUS]: 		65539 bytes 		ser 79 usec 		deser 152 usec
	[Native]: 	81932 bytes 		ser 79 usec 		deser 202 usec
	[JSON]:		208572 bytes 		ser 15012 usec 		deser 5801 usec

Array[Projection] - Size:4096
	[GUS]: 		262147 bytes 		ser 173 usec 		deser 348 usec
	[Native]: 	278540 bytes 		ser 88 usec 		deser 643 usec
	[JSON]:		787250 bytes 		ser 91675 usec 		deser 14968 usec

Array[Rect2] - Size:4096
	[GUS]: 		65539 bytes 		ser 62 usec 		deser 143 usec
	[Native]: 	81932 bytes 		ser 78 usec 		deser 199 usec
	[JSON]:		246778 bytes 		ser 18537 usec 		deser 6139 usec

Array[Rect2i] - Size:4096
	[GUS]: 		65539 bytes 		ser 64 usec 		deser 157 usec
	[Native]: 	81932 bytes 		ser 81 usec 		deser 205 usec
	[JSON]:		249525 bytes 		ser 18878 usec 		deser 6342 usec

Array[Transform2D] - Size:4096
	[GUS]: 		98307 bytes 		ser 85 usec 		deser 312 usec
	[Native]: 	114700 bytes 		ser 64 usec 		deser 517 usec
	[JSON]:		363715 bytes 		ser 26511 usec 		deser 8389 usec

Array[Plane] - Size:4096
	[GUS]: 		65539 bytes 		ser 63 usec 		deser 147 usec
	[Native]: 	81932 bytes 		ser 75 usec 		deser 201 usec
	[JSON]:		238430 bytes 		ser 16990 usec 		deser 6046 usec

Array[Quaternion] - Size:4096
	[GUS]: 		65539 bytes 		ser 66 usec 		deser 144 usec
	[Native]: 	81932 bytes 		ser 77 usec 		deser 206 usec
	[JSON]:		133186 bytes 		ser 13225 usec 		deser 4151 usec

Array[AABB] - Size:4096
	[GUS]: 		98307 bytes 		ser 91 usec 		deser 317 usec
	[Native]: 	114700 bytes 		ser 91 usec 		deser 527 usec
	[JSON]:		343170 bytes 		ser 26878 usec 		deser 7971 usec

Array[Basis] - Size:4096
	[GUS]: 		147459 bytes 		ser 121 usec 		deser 322 usec
	[Native]: 	163852 bytes 		ser 69 usec 		deser 558 usec
	[JSON]:		325096 bytes 		ser 35881 usec 		deser 8314 usec

Array[Transform3D] - Size:4096
	[GUS]: 		196611 bytes 		ser 163 usec 		deser 328 usec
	[Native]: 	213004 bytes 		ser 87 usec 		deser 596 usec
	[JSON]:		674187 bytes 		ser 47383 usec 		deser 13641 usec

Array[Color] - Size:4096
	[GUS]: 		65539 bytes 		ser 83 usec 		deser 145 usec
	[Native]: 	81932 bytes 		ser 78 usec 		deser 200 usec
	[JSON]:		140842 bytes 		ser 18388 usec 		deser 4508 usec

Array[NodePath] - Size:4096
	[GUS]: 		139267 bytes 		ser 7720 usec 		deser 4620 usec
	[Native]: 	262156 bytes 		ser 4442 usec 		deser 4665 usec
	[JSON]:		147457 bytes 		ser 7161 usec 		deser 4762 usec

Array[Array] - Size:4096
	[GUS]: 		188115 bytes 		ser 13756 usec 		deser 5799 usec
	[Native]: 	319164 bytes 		ser 6413 usec 		deser 5254 usec
	[JSON]:		388614 bytes 		ser 42421 usec 		deser 12610 usec

Array[Dictionary] - Size:4096
	[GUS]: 		224920 bytes 		ser 16998 usec 		deser 6697 usec
	[Native]: 	401012 bytes 		ser 8713 usec 		deser 6562 usec
	[JSON]:		500670 bytes 		ser 51079 usec 		deser 19330 usec

Array[PackedByteArray] - Size:4096
	[GUS]: 		20467 bytes 		ser 346 usec 		deser 1047 usec
	[Native]: 	49148 bytes 		ser 188 usec 		deser 800 usec
	[JSON]:		87180 bytes 		ser 8138 usec 		deser 3279 usec

Array[PackedInt32Array] - Size:4096
	[GUS]: 		135043 bytes 		ser 968 usec 		deser 1023 usec
	[Native]: 	98252 bytes 		ser 236 usec 		deser 841 usec
	[JSON]:		187799 bytes 		ser 13042 usec 		deser 3384 usec

Array[PackedInt64Array] - Size:4096
	[GUS]: 		167779 bytes 		ser 702 usec 		deser 1160 usec
	[Native]: 	196460 bytes 		ser 293 usec 		deser 1023 usec
	[JSON]:		416358 bytes 		ser 20462 usec 		deser 4530 usec

Array[PackedFloat32Array] - Size:4096
	[GUS]: 		85939 bytes 		ser 755 usec 		deser 1160 usec
	[Native]: 	114620 bytes 		ser 383 usec 		deser 951 usec
	[JSON]:		229848 bytes 		ser 28507 usec 		deser 3958 usec

Array[PackedFloat64Array] - Size:4096
	[GUS]: 		167779 bytes 		ser 725 usec 		deser 1168 usec
	[Native]: 	196460 bytes 		ser 297 usec 		deser 1041 usec
	[JSON]:		399132 bytes 		ser 31626 usec 		deser 4510 usec

Array[PackedStringArray] - Size:4096
	[GUS]: 		73663 bytes 		ser 8261 usec 		deser 2041 usec
	[Native]: 	196460 bytes 		ser 2526 usec 		deser 2817 usec
	[JSON]:		110497 bytes 		ser 18976 usec 		deser 6421 usec

Array[PackedVector2Array] - Size:4096
	[GUS]: 		135043 bytes 		ser 648 usec 		deser 1098 usec
	[Native]: 	163724 bytes 		ser 292 usec 		deser 1047 usec
	[JSON]:		431435 bytes 		ser 29954 usec 		deser 9408 usec

Array[PackedVector3Array] - Size:4096
	[GUS]: 		200515 bytes 		ser 775 usec 		deser 1165 usec
	[Native]: 	229196 bytes 		ser 327 usec 		deser 1069 usec
	[JSON]:		624610 bytes 		ser 42741 usec 		deser 12976 usec

Array[PackedVector4Array] - Size:4096
	[GUS]: 		265987 bytes 		ser 876 usec 		deser 1052 usec
	[Native]: 	294668 bytes 		ser 419 usec 		deser 1095 usec
	[JSON]:		817512 bytes 		ser 52371 usec 		deser 16088 usec

Array[PackedColorArray] - Size:4096
	[GUS]: 		331459 bytes 		ser 830 usec 		deser 1172 usec
	[Native]: 	360140 bytes 		ser 386 usec 		deser 1089 usec
	[JSON]:		698858 bytes 		ser 82079 usec 		deser 15118 usec