diff --git a/.gitignore b/.gitignore index dca961a..d1bd582 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,5 @@ resource.h *.pdb *.obj + +/demo/ \ No newline at end of file diff --git a/demo/.gitignore b/demo/.gitignore deleted file mode 100644 index c7e22f3..0000000 --- a/demo/.gitignore +++ /dev/null @@ -1,9 +0,0 @@ - -# Godot-specific ignores -.godot/ -export.cfg -export_presets.cfg - -# Mono-specific ignores -.mono/ -data_*/ diff --git a/demo/LICENSE b/demo/LICENSE deleted file mode 100644 index ab54110..0000000 --- a/demo/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 忘忧の Daylily Zleen daylily-zeleen@foxmail.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/demo/README.md b/demo/README.md deleted file mode 100644 index 25521de..0000000 --- a/demo/README.md +++ /dev/null @@ -1,678 +0,0 @@ - -# GUS - Godot Universal Serializer 2.1.5 - Godot的通用序列化器 - V2.1.5(Godot 4.1 stable) - -# `master` branch is c++ source code。 -# You can go to `plugin` branch to browse compiled plugin, or go to release page to download the plugin which compatible to your using Godot version. - -![Image text](icon.png) - -[中文文档](README_zh_cn.md) <- 点击这里。 - -A Godot's universal serializer for size optimization. -Support all data types except `Object`, `RID`, `Callable` and `Signal` in Godot 4.x. - -# Feature: - 1. Without losing type information. Need not type detection and forced typce conversion in cross end transfer,just like local parameter transfer. - 2. Integer are variable length serialization. - 3. The serialized data size is smaller than JSON text to utf8 and the native serialization method `var_to_bytes()`.GUS is especially suitable for the serialization of structured small data transfer in multiplayer games. - 4. GDExtension plugin, high performance. - - You can run the `EditorScript` which named `GUS_benchmark.gd` to view the contrast between `GUS`, `Native`, and `JSON`. - -# How to use: - 1. Download released plugin, install ~~and enable~~ this plugin just like other plugin( If the version is not match, please compile by yourselves). - 2. ~~Modify properties of autoload which named `GUS` as you require.~~ - 3. Pass variable which without `Object`, `OID`, `Callable`, `Signal` into `GUS.var_to_bytes()` and get the serialized data, than send to network peer. - 4. After the remote network peer obtains the serialized data, passe it into `GUS.bytes_to_var()` to get the same variable as before serialization. - - -# Be careful: - 1. `Array` and `Dictionary` should not contain `Object`, `RID`, `Callable` and `Signal`. - 2. This repo only compile `windos` version, on other platform, you need to compile by yourself (because I have not other device to test). - 3. ~~The properties of autoload `GUS` between all network peers should keep the same.~~ - 4. ~~Currently unsupport Godot 4.x which compiled with `typeof double real_t`.~~ - 5. ~~Currently just support platform `windows`.~~ - - -# TODO: - 1. ~~If I find the way to bind static method for `GDScript`, I will get rid of the autoload `GUS`.~~ - 2. ~~Compile `linux` and `osx` version.~~ - 3. ~~Compile `typeof double real_t` version to support custom Godot( but I encounter error which I can't handle it, too).~~ - 4. ~~Deal `Object`, `RID`, `Callable` and `Signal`.~~ - 5. Handle endian. - -# How to compile: - 1. Follow [offical tutorial](https://docs.godotengine.org/zh_CN/stable/development/compiling/index.html) to set up you develop enviroment. - 2. Clone this repository (with submodule). - 3. You must generate bindings and build library of `godot-cpp` at least once. - - You can use generate and build manully by steps below: - a. Navigate to `godot-cpp` folder. - b. Run command: - ``` - scons generate_bindings=yes build_library=yes - ``` - c. Now you can add `generate_bindings=no build_library=no` at next stage to avoid generate bindings and build library every time when compiling `GUS`. - - - (Recommand) Generate bindings and build library every time when compiling `GUS`, to keep the compiling condition of `godot-cpp` same as `GUS`. - Just skip this stage and add `generate_bindings=yes build_library=yes` or ignore these command arguments. - Don't worry, generate bindings and build library of `godot-cpp` would not take many time if the compile conditions have not change. - 4. Here is a little different from `godot-cpp` to compile `GUS` (of course, you can use `scons` to compile, too). - To do some post process, I use a tool script to compile `GUS`. - Navigate to root folder, run command as below to compile `GUS`: - ``` - python build.py - ``` - - You can add arguments like to build `godot-cpp` at this stage. - - To learn more arguments detail, run this command. - ``` - python build.py -h - ``` - - Specially, if you not specify the argument `target`, this tool will build both `target=template_debug` and `target=template_release`. - - 5. Now, you can get the addon which be located at `\demo\addons\com.daylily_zeleen.godot_universal_serializer\`, or get the packed addon at `bin\com.daylily_zeleen.godot_universal_serializer.zip`. - (Notice: if your use `scons` instead of `python build_tool`, you can only get dynamic library at `bin` folder.) - -# Benchmark 2.1.5: -``` -null - value: - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 4 bytes ser 3 usec deser 3 usec - [JSON]: 4 bytes ser 18 usec deser 9 usec - -bool - value:true - [GUS]: 1 bytes ser 5 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 4 bytes ser 10 usec deser 6 usec - -bool - value:false - [GUS]: 1 bytes ser 4 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 2 usec - [JSON]: 5 bytes ser 9 usec deser 5 usec - -int1 - value:122 - [GUS]: 3 bytes ser 4 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 3 bytes ser 9 usec deser 3 usec - -int2 - value:23611 - [GUS]: 4 bytes ser 3 usec deser 1 usec - [Native]: 8 bytes ser 3 usec deser 2 usec - [JSON]: 5 bytes ser 9 usec deser 4 usec - -int3 - value:-8016784 - [GUS]: 5 bytes ser 4 usec deser 2 usec - [Native]: 8 bytes ser 2 usec deser 2 usec - [JSON]: 8 bytes ser 23 usec deser 3 usec - -int4 - value:1783875844 - [GUS]: 6 bytes ser 7 usec deser 2 usec - [Native]: 8 bytes ser 4 usec deser 3 usec - [JSON]: 10 bytes ser 59 usec deser 6 usec - -int5 - value:-533449183297 - [GUS]: 7 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 3 usec - [JSON]: 13 bytes ser 21 usec deser 6 usec - -int6 - value:99315901321300 - [GUS]: 8 bytes ser 8 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 3 usec - [JSON]: 14 bytes ser 38 usec deser 7 usec - -int7 - value:17047537962766401 - [GUS]: 9 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 4 usec - [JSON]: 17 bytes ser 19 usec deser 7 usec - -int8 - value:-8838969341549745360 - [GUS]: 11 bytes ser 21 usec deser 4 usec - [Native]: 12 bytes ser 5 usec deser 4 usec - [JSON]: 20 bytes ser 20 usec deser 21 usec - -float - value:-105.0532 - [GUS]: 9 bytes ser 8 usec deser 3 usec - [Native]: 12 bytes ser 5 usec deser 4 usec - [JSON]: 9 bytes ser 32 usec deser 8 usec - -String - value:test 测试 - [GUS]: 13 bytes ser 35 usec deser 6 usec - [Native]: 20 bytes ser 8 usec deser 7 usec - [JSON]: 13 bytes ser 26 usec deser 12 usec - -StringName - value:TestStringName - [GUS]: 16 bytes ser 17 usec deser 10 usec - [Native]: 24 bytes ser 8 usec deser 23 usec - [JSON]: 16 bytes ser 27 usec deser 25 usec - -Vector2 - value:(-423, 46.8005) - [GUS]: 9 bytes ser 9 usec deser 4 usec - [Native]: 12 bytes ser 6 usec deser 6 usec - [JSON]: 17 bytes ser 42 usec deser 12 usec - -Vector2i - value:(-423, 23611) - [GUS]: 9 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 6 usec deser 5 usec - [JSON]: 15 bytes ser 35 usec deser 12 usec - -Vector3 - value:(52011, -541.3327, 77441) - [GUS]: 13 bytes ser 9 usec deser 5 usec - [Native]: 16 bytes ser 7 usec deser 6 usec - [JSON]: 27 bytes ser 47 usec deser 20 usec - -Vector3i - value:(-423, 23611, 52011) - [GUS]: 13 bytes ser 8 usec deser 3 usec - [Native]: 16 bytes ser 6 usec deser 5 usec - [JSON]: 22 bytes ser 39 usec deser 16 usec - -Vector4 - value:(5211, -541.327, 7441, 1.23) - [GUS]: 17 bytes ser 10 usec deser 4 usec - [Native]: 20 bytes ser 5 usec deser 7 usec - [JSON]: 30 bytes ser 52 usec deser 15 usec - -Vector4i - value:(-42, 49947, 5211, 445) - [GUS]: 17 bytes ser 5 usec deser 2 usec - [Native]: 20 bytes ser 2 usec deser 3 usec - [JSON]: 25 bytes ser 23 usec deser 8 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 6 usec deser 3 usec - [Native]: 68 bytes ser 3 usec deser 6 usec - [JSON]: 110 bytes ser 64 usec deser 14 usec - -Rect2 - value:[P: (56.622, -77.85), S: (8740.237, 441.044)] - [GUS]: 17 bytes ser 5 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 3 usec - [JSON]: 47 bytes ser 33 usec deser 10 usec - -Rect2i - value:[P: (-1731580097, 1577736616), S: (622087478, 177854727)] - [GUS]: 17 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 59 bytes ser 26 usec deser 11 usec - -Transform2D - value:[X: (1, 0), Y: (0, -1), O: (513, 88.5)] - [GUS]: 25 bytes ser 5 usec deser 2 usec - [Native]: 28 bytes ser 3 usec deser 5 usec - [JSON]: 41 bytes ser 35 usec deser 9 usec - -Plane - value:[N: (-0.022075, 0.354495, 0.934797), D: 0.301078] - [GUS]: 17 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 51 bytes ser 31 usec deser 10 usec - -Quaternion - value:(-54.55, 876, 2310, 744) - [GUS]: 17 bytes ser 4 usec deser 3 usec - [Native]: 20 bytes ser 2 usec deser 3 usec - [JSON]: 26 bytes ser 25 usec deser 8 usec - -AABB - value:[P: (-77.85, 8740.237, 441.044), S: (105, 50, 68)] - [GUS]: 25 bytes ser 5 usec deser 3 usec - [Native]: 28 bytes ser 3 usec deser 5 usec - [JSON]: 52 bytes ser 35 usec deser 10 usec - -Basis - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1)] - [GUS]: 37 bytes ser 5 usec deser 3 usec - [Native]: 40 bytes ser 3 usec deser 4 usec - [JSON]: 45 bytes ser 35 usec deser 10 usec - -Transform3D - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1), O: (513, -88.5, 105)] - [GUS]: 49 bytes ser 5 usec deser 3 usec - [Native]: 52 bytes ser 3 usec deser 5 usec - [JSON]: 67 bytes ser 48 usec deser 11 usec - -Color - value:(1, 1, 1, 1) - [GUS]: 33 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 14 bytes ser 27 usec deser 7 usec - -NodePath - value:/root/@EditorNode@17637/@Control@697/@Panel@698 - [GUS]: 49 bytes ser 17 usec deser 20 usec - [Native]: 80 bytes ser 13 usec deser 13 usec - [JSON]: 49 bytes ser 21 usec deser 9 usec - -Array - value:[574, -21, (-423, 46.8005), (0, 1, 1, 1), "acxx"] - [GUS]: 62 bytes ser 16 usec deser 9 usec - [Native]: 68 bytes ser 7 usec deser 11 usec - [JSON]: 49 bytes ser 57 usec deser 16 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]: 175 bytes ser 59 usec deser 21 usec - [Native]: 236 bytes ser 30 usec deser 21 usec - [JSON]: 178 bytes ser 131 usec deser 40 usec - -Empty Array - value:[] - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 4 usec deser 5 usec - [JSON]: 2 bytes ser 12 usec deser 33 usec - -Empty Dictionary - value:{ } - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 4 usec deser 4 usec - [JSON]: 2 bytes ser 44 usec deser 5 usec - -Empty PackedByteArray - Size:0 - [GUS]: 1 bytes ser 5 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 14 usec deser 6 usec - -Empty PackedInt32Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 32 usec - [JSON]: 2 bytes ser 26 usec deser 4 usec - -Empty PackedInt64Array - Size:0 - [GUS]: 1 bytes ser 19 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 12 usec deser 4 usec - -Empty PackedFloat32Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 27 usec deser 5 usec - -Empty PackedFloat64Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 12 usec deser 5 usec - -Empty PackedStringArray - Size:0 - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 13 usec deser 5 usec - -Empty PackedVector2Array - Size:0 - [GUS]: 1 bytes ser 21 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 29 usec deser 5 usec - -Empty PackedVector3Array - Size:0 - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 15 usec deser 5 usec - -Empty PackedColorArray - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 4 bytes ser 14 usec deser 5 usec - -PackedByteArray - Size:4096 - [GUS]: 4099 bytes ser 14 usec deser 3 usec - [Native]: 4104 bytes ser 5 usec deser 14 usec - [JSON]: 18727 bytes ser 3470 usec deser 1359 usec - -PackedInt32Array - Size:4096 - [GUS]: 16387 bytes ser 14 usec deser 5 usec - [Native]: 16392 bytes ser 40 usec deser 51 usec - [JSON]: 45003 bytes ser 6925 usec deser 1402 usec - -PackedInt64Array - Size:4096 - [GUS]: 32771 bytes ser 17 usec deser 8 usec - [Native]: 32776 bytes ser 71 usec deser 90 usec - [JSON]: 81490 bytes ser 8280 usec deser 1784 usec - -PackedFloat32Array - Size:4096 - [GUS]: 16387 bytes ser 15 usec deser 7 usec - [Native]: 16392 bytes ser 52 usec deser 58 usec - [JSON]: 73706 bytes ser 10798 usec deser 1777 usec - -PackedFloat64Array - Size:4096 - [GUS]: 32771 bytes ser 21 usec deser 8 usec - [Native]: 32776 bytes ser 81 usec deser 102 usec - [JSON]: 80060 bytes ser 11074 usec deser 1916 usec - -PackedStringArray - Size:4096 - [GUS]: 23472 bytes ser 11002 usec deser 1306 usec - [Native]: 48764 bytes ser 4673 usec deser 1933 usec - [JSON]: 31662 bytes ser 14393 usec deser 6405 usec - -PackedVector2Array - Size:4096 - [GUS]: 32771 bytes ser 21 usec deser 54 usec - [Native]: 32776 bytes ser 115 usec deser 155 usec - [JSON]: 89200 bytes ser 25615 usec deser 6728 usec - -PackedVector3Array - Size:4096 - [GUS]: 49155 bytes ser 22 usec deser 59 usec - [Native]: 49160 bytes ser 188 usec deser 204 usec - [JSON]: 129617 bytes ser 35702 usec deser 9644 usec - -PackedColorArray - Size:4096 - [GUS]: 65539 bytes ser 24 usec deser 41 usec - [Native]: 65544 bytes ser 230 usec deser 233 usec - [JSON]: 137434 bytes ser 45701 usec deser 10435 usec - -Empty Array[bool] - Size:0 - [GUS]: 1 bytes ser 13 usec deser 5 usec - [Native]: 8 bytes ser 4 usec deser 7 usec - [JSON]: 2 bytes ser 20 usec deser 8 usec - -Empty Array[int] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 9 usec deser 5 usec - -Empty Array[float] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 5 usec - -Empty Array[String] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[StringName] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 19 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Vector2] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[Vector2i] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[Vector3] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 19 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Vector3i] - Size:0 - [GUS]: 1 bytes ser 28 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 25 usec deser 5 usec - -Empty Array[Vector4] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 26 usec - -Empty Array[Vector4i] - Size:0 - [GUS]: 1 bytes ser 20 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Projection] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Rect2] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Rect2i] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 12 usec deser 6 usec - -Empty Array[Transform2D] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Plane] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Quaternion] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[AABB] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Basis] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 7 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Transform3D] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Color] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[NodePath] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 4 usec - -Empty Array[Dictionary] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedByteArray] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[PackedInt32Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[PackedInt64Array] - Size:0 - [GUS]: 1 bytes ser 7 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 6 usec - -Empty Array[PackedFloat32Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedFloat64Array] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedStringArray] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedVector2Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[PackedVector3Array] - Size:0 - [GUS]: 1 bytes ser 27 usec deser 4 usec - [Native]: 8 bytes ser 4 usec deser 4 usec - [JSON]: 2 bytes ser 25 usec deser 5 usec - -Empty Array[PackedColorArray] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Array[bool] - Size:4096 - [GUS]: 4099 bytes ser 174 usec deser 483 usec - [Native]: 32776 bytes ser 371 usec deser 862 usec - [JSON]: 22489 bytes ser 4573 usec deser 6673 usec - -Array[int] - Size:4096 - [GUS]: 20349 bytes ser 307 usec deser 733 usec - [Native]: 40916 bytes ser 396 usec deser 884 usec - [JSON]: 44016 bytes ser 6665 usec deser 1415 usec - -Array[float] - Size:4096 - [GUS]: 32771 bytes ser 241 usec deser 682 usec - [Native]: 49160 bytes ser 395 usec deser 892 usec - [JSON]: 71205 bytes ser 10624 usec deser 1776 usec - -Array[String] - Size:4096 - [GUS]: 60336 bytes ser 14328 usec deser 3574 usec - [Native]: 97916 bytes ser 6063 usec deser 4316 usec - [JSON]: 68526 bytes ser 14677 usec deser 9917 usec - -Array[StringName] - Size:4096 - [GUS]: 80816 bytes ser 15728 usec deser 8368 usec - [Native]: 114660 bytes ser 7127 usec deser 7744 usec - [JSON]: 89006 bytes ser 14859 usec deser 12014 usec - -Array[Vector2] - Size:4096 - [GUS]: 32771 bytes ser 275 usec deser 707 usec - [Native]: 49160 bytes ser 356 usec deser 993 usec - [JSON]: 108871 bytes ser 30304 usec deser 13520 usec - -Array[Vector2i] - Size:4096 - [GUS]: 32771 bytes ser 279 usec deser 725 usec - [Native]: 49160 bytes ser 347 usec deser 1001 usec - [JSON]: 110355 bytes ser 30188 usec deser 13701 usec - -Array[Vector3] - Size:4096 - [GUS]: 49155 bytes ser 323 usec deser 780 usec - [Native]: 65544 bytes ser 438 usec deser 1246 usec - [JSON]: 157291 bytes ser 38420 usec deser 17914 usec - -Array[Vector3i] - Size:4096 - [GUS]: 49155 bytes ser 309 usec deser 765 usec - [Native]: 65544 bytes ser 409 usec deser 1349 usec - [JSON]: 159449 bytes ser 39000 usec deser 17880 usec - -Array[Vector4] - Size:4096 - [GUS]: 65539 bytes ser 306 usec deser 753 usec - [Native]: 81928 bytes ser 447 usec deser 1147 usec - [JSON]: 205632 bytes ser 46500 usec deser 21697 usec - -Array[Vector4i] - Size:4096 - [GUS]: 65539 bytes ser 308 usec deser 776 usec - [Native]: 81928 bytes ser 430 usec deser 1228 usec - [JSON]: 208552 bytes ser 46064 usec deser 21370 usec - -Array[Projection] - Size:4096 - [GUS]: 262147 bytes ser 664 usec deser 2017 usec - [Native]: 278536 bytes ser 754 usec deser 4059 usec - [JSON]: 787456 bytes ser 205315 usec deser 65828 usec - -Array[Rect2] - Size:4096 - [GUS]: 65539 bytes ser 319 usec deser 860 usec - [Native]: 81928 bytes ser 476 usec deser 1473 usec - [JSON]: 246734 bytes ser 59359 usec deser 24957 usec - -Array[Rect2i] - Size:4096 - [GUS]: 65539 bytes ser 335 usec deser 783 usec - [Native]: 81928 bytes ser 443 usec deser 1328 usec - [JSON]: 249476 bytes ser 58861 usec deser 25123 usec - -Array[Transform2D] - Size:4096 - [GUS]: 98307 bytes ser 369 usec deser 1785 usec - [Native]: 114696 bytes ser 455 usec deser 3035 usec - [JSON]: 363907 bytes ser 82450 usec deser 34703 usec - -Array[Plane] - Size:4096 - [GUS]: 65539 bytes ser 323 usec deser 786 usec - [Native]: 81928 bytes ser 476 usec deser 1457 usec - [JSON]: 238517 bytes ser 52076 usec deser 24104 usec - -Array[Quaternion] - Size:4096 - [GUS]: 65539 bytes ser 307 usec deser 749 usec - [Native]: 81928 bytes ser 450 usec deser 1133 usec - [JSON]: 132285 bytes ser 42360 usec deser 15375 usec - -Array[AABB] - Size:4096 - [GUS]: 98307 bytes ser 336 usec deser 1683 usec - [Native]: 114696 bytes ser 555 usec deser 3063 usec - [JSON]: 343269 bytes ser 75734 usec deser 32661 usec - -Array[Basis] - Size:4096 - [GUS]: 147459 bytes ser 399 usec deser 1700 usec - [Native]: 163848 bytes ser 504 usec deser 3277 usec - [JSON]: 321826 bytes ser 111807 usec deser 30873 usec - -Array[Transform3D] - Size:4096 - [GUS]: 196611 bytes ser 430 usec deser 1910 usec - [Native]: 213000 bytes ser 620 usec deser 3261 usec - [JSON]: 674307 bytes ser 140458 usec deser 75629 usec - -Array[Color] - Size:4096 - [GUS]: 65539 bytes ser 323 usec deser 794 usec - [Native]: 81928 bytes ser 466 usec deser 1239 usec - [JSON]: 140650 bytes ser 56070 usec deser 16271 usec - -Array[NodePath] - Size:4096 - [GUS]: 196611 bytes ser 37758 usec deser 41295 usec - [Native]: 327688 bytes ser 33466 usec deser 30390 usec - [JSON]: 204801 bytes ser 26301 usec deser 21529 usec - -Array[Array] - Size:4096 - [GUS]: 192218 bytes ser 73002 usec deser 29718 usec - [Native]: 319220 bytes ser 29915 usec deser 23864 usec - [JSON]: 388428 bytes ser 129866 usec deser 50159 usec - -Array[Dictionary] - Size:4096 - [GUS]: 229045 bytes ser 91394 usec deser 32654 usec - [Native]: 401192 bytes ser 41261 usec deser 29649 usec - [JSON]: 500707 bytes ser 178698 usec deser 71691 usec - -Array[PackedByteArray] - Size:4096 - [GUS]: 20467 bytes ser 1701 usec deser 6355 usec - [Native]: 49144 bytes ser 1125 usec deser 4015 usec - [JSON]: 87026 bytes ser 32037 usec deser 11987 usec - -Array[PackedInt32Array] - Size:4096 - [GUS]: 135043 bytes ser 6099 usec deser 6396 usec - [Native]: 98248 bytes ser 1167 usec deser 4195 usec - [JSON]: 188019 bytes ser 50042 usec deser 13243 usec - -Array[PackedInt64Array] - Size:4096 - [GUS]: 167779 bytes ser 2342 usec deser 6391 usec - [Native]: 196456 bytes ser 1554 usec deser 4490 usec - [JSON]: 416463 bytes ser 65267 usec deser 16791 usec - -Array[PackedFloat32Array] - Size:4096 - [GUS]: 85939 bytes ser 1948 usec deser 6187 usec - [Native]: 114616 bytes ser 1132 usec deser 4500 usec - [JSON]: 229645 bytes ser 77703 usec deser 14705 usec - -Array[PackedFloat64Array] - Size:4096 - [GUS]: 167779 bytes ser 2701 usec deser 6467 usec - [Native]: 196456 bytes ser 1650 usec deser 5091 usec - [JSON]: 399069 bytes ser 78333 usec deser 16594 usec - -Array[PackedStringArray] - Size:4096 - [GUS]: 73663 bytes ser 34877 usec deser 11118 usec - [Native]: 196456 bytes ser 13536 usec deser 12134 usec - [JSON]: 110497 bytes ser 74116 usec deser 24973 usec - -Array[PackedVector2Array] - Size:4096 - [GUS]: 135043 bytes ser 2321 usec deser 7095 usec - [Native]: 163720 bytes ser 1469 usec deser 5512 usec - [JSON]: 431431 bytes ser 95646 usec deser 39718 usec - -Array[PackedVector3Array] - Size:4096 - [GUS]: 200515 bytes ser 2756 usec deser 6747 usec - [Native]: 229192 bytes ser 2164 usec deser 4958 usec - [JSON]: 624635 bytes ser 128803 usec deser 54449 usec - -Array[PackedColorArray] - Size:4096 - [GUS]: 331459 bytes ser 2359 usec deser 6938 usec - [Native]: 360136 bytes ser 2229 usec deser 5728 usec - [JSON]: 698894 bytes ser 248205 usec deser 59321 usec -``` diff --git a/demo/README_zh_cn.md b/demo/README_zh_cn.md deleted file mode 100644 index e30d126..0000000 --- a/demo/README_zh_cn.md +++ /dev/null @@ -1,674 +0,0 @@ - -# GUS - Godot Universal Serializer 2.1.5 - Godot的通用序列化器 - V2.1.5(Godot 4.1 stable) - -# `master`分支为C++ 源码,可以跳转到`plugin`分支直接查看已编译的插件,也可跳转到发布页面下载匹配您使用版本的插件。 - -![Image text](icon.png) - -[English doc](README.md) <- click here。 - -为序列化尺寸优化而构建的 Godot 4.x 通用序列化器。 -支持除了 `Object`、 `RID`、 `Callable` 以及 `Signal` 以外的 Godot4.x 的所有内建数据类型。 - -# 特点: - 1. 不丢失类型信息。在跨端传送时不需要类型检测和类型强制转换,就像本地传参一般。 - 2. 整形是变长序列化。 - 3. 相比 Godot 的原生序列化方法 `var_to_bytes()` 和转换成`JSON`再转`UTF8`数据, `GUS`的序列化后数据尺寸有显著的减少。尤其适用于多人游戏中需要传输的小型数据结构的序列化。 - 4. 多数情况下效率甚至比原生序列化更高。 - 5. `GDExtension` 插件,具有较高的性能。 - - 可以通过运行名为`GUS_benchmark.gd`的编辑器脚本来查看 `GUS`、`Native` 以及 `JSON` 这三种方式的剧烈话反序列化测试对比。 - -# 如何使用: - 1. 下载发布的插件包,像其他插件一样安装~~和启用~~即可(如果版本不匹配,请自行编译)。 - 2. ~~根据你的需求代码修改名为`GUS`的Autoload的属性.~~ - 3. 传递不包含`Object`、 `OID`、 `Callable`以及 `Signal`的变量给 `GUS.var_to_bytes()`并获取序列化后数据,然后发送给其他网络对等体。 - 4. 远端的网络对等体获取到序列化后数据,传递给`GUS.bytes_to_var()`,即可获得与序列化前相同的变量。 - - -# 注意: - 1. `Array` 和 `Dictionary` 不能包含 `Object`、`RID`、`Callable`以及`Signal`。 - 2. 该参考只编译了`windows`版本,如果您使用其他平台,需要自行构建(因为我没有其他平台的设备进行测试)。 - 3. ~~不同端的`GUS`属性必须保持一致才能正确反序列化。~~ - 4. ~~当前不支持`typeof double real_t`的自定义构建Godot 4.x版本。~~ - 5. ~~当前仅支持`windows`.~~ - - -# TODO: - 1. ~~如果我找到绑定静态方法给`GDScript`的办法,我将抛弃自动加载`GUS`, 改为静态方法的方式去实现功能。~~ - 2. ~~编译`linux`和`osx`版本。~~ - 3. ~~编译`typeof double real_t`版本以支持自定义构建Godot 4.x版本(但我碰上了我无法处理的编译错误)。~~ - 4. ~~处理 `Object`、`RID`、`Callable`以及`Signal`。~~ - 5. 处理大小端。 - - -# 如何编译: - 1. 根据[官方文档](https://docs.godotengine.org/zh_CN/stable/development/compiling/index.html)搭建你的编译环境。 - 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`两种版本。 - 5. 现在,你可以在`\demo\addons\com.daylily_zeleen.godot_universal_serializer`获得该插件,或在`bin\com.daylily_zeleen.godot_universal_serializer.zip`获得打包好的插件。 - (注意:如果你使用`scons`命令进行编译,你只能在`bin`文件夹下得到编译好的动态库。 -# 基准测试 2.1.5: -``` -null - value: - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 4 bytes ser 3 usec deser 3 usec - [JSON]: 4 bytes ser 18 usec deser 9 usec - -bool - value:true - [GUS]: 1 bytes ser 5 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 4 bytes ser 10 usec deser 6 usec - -bool - value:false - [GUS]: 1 bytes ser 4 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 2 usec - [JSON]: 5 bytes ser 9 usec deser 5 usec - -int1 - value:122 - [GUS]: 3 bytes ser 4 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 3 bytes ser 9 usec deser 3 usec - -int2 - value:23611 - [GUS]: 4 bytes ser 3 usec deser 1 usec - [Native]: 8 bytes ser 3 usec deser 2 usec - [JSON]: 5 bytes ser 9 usec deser 4 usec - -int3 - value:-8016784 - [GUS]: 5 bytes ser 4 usec deser 2 usec - [Native]: 8 bytes ser 2 usec deser 2 usec - [JSON]: 8 bytes ser 23 usec deser 3 usec - -int4 - value:1783875844 - [GUS]: 6 bytes ser 7 usec deser 2 usec - [Native]: 8 bytes ser 4 usec deser 3 usec - [JSON]: 10 bytes ser 59 usec deser 6 usec - -int5 - value:-533449183297 - [GUS]: 7 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 3 usec - [JSON]: 13 bytes ser 21 usec deser 6 usec - -int6 - value:99315901321300 - [GUS]: 8 bytes ser 8 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 3 usec - [JSON]: 14 bytes ser 38 usec deser 7 usec - -int7 - value:17047537962766401 - [GUS]: 9 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 4 usec - [JSON]: 17 bytes ser 19 usec deser 7 usec - -int8 - value:-8838969341549745360 - [GUS]: 11 bytes ser 21 usec deser 4 usec - [Native]: 12 bytes ser 5 usec deser 4 usec - [JSON]: 20 bytes ser 20 usec deser 21 usec - -float - value:-105.0532 - [GUS]: 9 bytes ser 8 usec deser 3 usec - [Native]: 12 bytes ser 5 usec deser 4 usec - [JSON]: 9 bytes ser 32 usec deser 8 usec - -String - value:test 测试 - [GUS]: 13 bytes ser 35 usec deser 6 usec - [Native]: 20 bytes ser 8 usec deser 7 usec - [JSON]: 13 bytes ser 26 usec deser 12 usec - -StringName - value:TestStringName - [GUS]: 16 bytes ser 17 usec deser 10 usec - [Native]: 24 bytes ser 8 usec deser 23 usec - [JSON]: 16 bytes ser 27 usec deser 25 usec - -Vector2 - value:(-423, 46.8005) - [GUS]: 9 bytes ser 9 usec deser 4 usec - [Native]: 12 bytes ser 6 usec deser 6 usec - [JSON]: 17 bytes ser 42 usec deser 12 usec - -Vector2i - value:(-423, 23611) - [GUS]: 9 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 6 usec deser 5 usec - [JSON]: 15 bytes ser 35 usec deser 12 usec - -Vector3 - value:(52011, -541.3327, 77441) - [GUS]: 13 bytes ser 9 usec deser 5 usec - [Native]: 16 bytes ser 7 usec deser 6 usec - [JSON]: 27 bytes ser 47 usec deser 20 usec - -Vector3i - value:(-423, 23611, 52011) - [GUS]: 13 bytes ser 8 usec deser 3 usec - [Native]: 16 bytes ser 6 usec deser 5 usec - [JSON]: 22 bytes ser 39 usec deser 16 usec - -Vector4 - value:(5211, -541.327, 7441, 1.23) - [GUS]: 17 bytes ser 10 usec deser 4 usec - [Native]: 20 bytes ser 5 usec deser 7 usec - [JSON]: 30 bytes ser 52 usec deser 15 usec - -Vector4i - value:(-42, 49947, 5211, 445) - [GUS]: 17 bytes ser 5 usec deser 2 usec - [Native]: 20 bytes ser 2 usec deser 3 usec - [JSON]: 25 bytes ser 23 usec deser 8 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 6 usec deser 3 usec - [Native]: 68 bytes ser 3 usec deser 6 usec - [JSON]: 110 bytes ser 64 usec deser 14 usec - -Rect2 - value:[P: (56.622, -77.85), S: (8740.237, 441.044)] - [GUS]: 17 bytes ser 5 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 3 usec - [JSON]: 47 bytes ser 33 usec deser 10 usec - -Rect2i - value:[P: (-1731580097, 1577736616), S: (622087478, 177854727)] - [GUS]: 17 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 59 bytes ser 26 usec deser 11 usec - -Transform2D - value:[X: (1, 0), Y: (0, -1), O: (513, 88.5)] - [GUS]: 25 bytes ser 5 usec deser 2 usec - [Native]: 28 bytes ser 3 usec deser 5 usec - [JSON]: 41 bytes ser 35 usec deser 9 usec - -Plane - value:[N: (-0.022075, 0.354495, 0.934797), D: 0.301078] - [GUS]: 17 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 51 bytes ser 31 usec deser 10 usec - -Quaternion - value:(-54.55, 876, 2310, 744) - [GUS]: 17 bytes ser 4 usec deser 3 usec - [Native]: 20 bytes ser 2 usec deser 3 usec - [JSON]: 26 bytes ser 25 usec deser 8 usec - -AABB - value:[P: (-77.85, 8740.237, 441.044), S: (105, 50, 68)] - [GUS]: 25 bytes ser 5 usec deser 3 usec - [Native]: 28 bytes ser 3 usec deser 5 usec - [JSON]: 52 bytes ser 35 usec deser 10 usec - -Basis - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1)] - [GUS]: 37 bytes ser 5 usec deser 3 usec - [Native]: 40 bytes ser 3 usec deser 4 usec - [JSON]: 45 bytes ser 35 usec deser 10 usec - -Transform3D - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1), O: (513, -88.5, 105)] - [GUS]: 49 bytes ser 5 usec deser 3 usec - [Native]: 52 bytes ser 3 usec deser 5 usec - [JSON]: 67 bytes ser 48 usec deser 11 usec - -Color - value:(1, 1, 1, 1) - [GUS]: 33 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 14 bytes ser 27 usec deser 7 usec - -NodePath - value:/root/@EditorNode@17637/@Control@697/@Panel@698 - [GUS]: 49 bytes ser 17 usec deser 20 usec - [Native]: 80 bytes ser 13 usec deser 13 usec - [JSON]: 49 bytes ser 21 usec deser 9 usec - -Array - value:[574, -21, (-423, 46.8005), (0, 1, 1, 1), "acxx"] - [GUS]: 62 bytes ser 16 usec deser 9 usec - [Native]: 68 bytes ser 7 usec deser 11 usec - [JSON]: 49 bytes ser 57 usec deser 16 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]: 175 bytes ser 59 usec deser 21 usec - [Native]: 236 bytes ser 30 usec deser 21 usec - [JSON]: 178 bytes ser 131 usec deser 40 usec - -Empty Array - value:[] - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 4 usec deser 5 usec - [JSON]: 2 bytes ser 12 usec deser 33 usec - -Empty Dictionary - value:{ } - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 4 usec deser 4 usec - [JSON]: 2 bytes ser 44 usec deser 5 usec - -Empty PackedByteArray - Size:0 - [GUS]: 1 bytes ser 5 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 14 usec deser 6 usec - -Empty PackedInt32Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 32 usec - [JSON]: 2 bytes ser 26 usec deser 4 usec - -Empty PackedInt64Array - Size:0 - [GUS]: 1 bytes ser 19 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 12 usec deser 4 usec - -Empty PackedFloat32Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 27 usec deser 5 usec - -Empty PackedFloat64Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 12 usec deser 5 usec - -Empty PackedStringArray - Size:0 - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 13 usec deser 5 usec - -Empty PackedVector2Array - Size:0 - [GUS]: 1 bytes ser 21 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 29 usec deser 5 usec - -Empty PackedVector3Array - Size:0 - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 15 usec deser 5 usec - -Empty PackedColorArray - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 4 bytes ser 14 usec deser 5 usec - -PackedByteArray - Size:4096 - [GUS]: 4099 bytes ser 14 usec deser 3 usec - [Native]: 4104 bytes ser 5 usec deser 14 usec - [JSON]: 18727 bytes ser 3470 usec deser 1359 usec - -PackedInt32Array - Size:4096 - [GUS]: 16387 bytes ser 14 usec deser 5 usec - [Native]: 16392 bytes ser 40 usec deser 51 usec - [JSON]: 45003 bytes ser 6925 usec deser 1402 usec - -PackedInt64Array - Size:4096 - [GUS]: 32771 bytes ser 17 usec deser 8 usec - [Native]: 32776 bytes ser 71 usec deser 90 usec - [JSON]: 81490 bytes ser 8280 usec deser 1784 usec - -PackedFloat32Array - Size:4096 - [GUS]: 16387 bytes ser 15 usec deser 7 usec - [Native]: 16392 bytes ser 52 usec deser 58 usec - [JSON]: 73706 bytes ser 10798 usec deser 1777 usec - -PackedFloat64Array - Size:4096 - [GUS]: 32771 bytes ser 21 usec deser 8 usec - [Native]: 32776 bytes ser 81 usec deser 102 usec - [JSON]: 80060 bytes ser 11074 usec deser 1916 usec - -PackedStringArray - Size:4096 - [GUS]: 23472 bytes ser 11002 usec deser 1306 usec - [Native]: 48764 bytes ser 4673 usec deser 1933 usec - [JSON]: 31662 bytes ser 14393 usec deser 6405 usec - -PackedVector2Array - Size:4096 - [GUS]: 32771 bytes ser 21 usec deser 54 usec - [Native]: 32776 bytes ser 115 usec deser 155 usec - [JSON]: 89200 bytes ser 25615 usec deser 6728 usec - -PackedVector3Array - Size:4096 - [GUS]: 49155 bytes ser 22 usec deser 59 usec - [Native]: 49160 bytes ser 188 usec deser 204 usec - [JSON]: 129617 bytes ser 35702 usec deser 9644 usec - -PackedColorArray - Size:4096 - [GUS]: 65539 bytes ser 24 usec deser 41 usec - [Native]: 65544 bytes ser 230 usec deser 233 usec - [JSON]: 137434 bytes ser 45701 usec deser 10435 usec - -Empty Array[bool] - Size:0 - [GUS]: 1 bytes ser 13 usec deser 5 usec - [Native]: 8 bytes ser 4 usec deser 7 usec - [JSON]: 2 bytes ser 20 usec deser 8 usec - -Empty Array[int] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 9 usec deser 5 usec - -Empty Array[float] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 5 usec - -Empty Array[String] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[StringName] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 19 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Vector2] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[Vector2i] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[Vector3] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 19 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Vector3i] - Size:0 - [GUS]: 1 bytes ser 28 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 25 usec deser 5 usec - -Empty Array[Vector4] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 26 usec - -Empty Array[Vector4i] - Size:0 - [GUS]: 1 bytes ser 20 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Projection] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Rect2] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Rect2i] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 12 usec deser 6 usec - -Empty Array[Transform2D] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Plane] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Quaternion] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[AABB] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Basis] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 7 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Transform3D] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Color] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[NodePath] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 4 usec - -Empty Array[Dictionary] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedByteArray] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[PackedInt32Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[PackedInt64Array] - Size:0 - [GUS]: 1 bytes ser 7 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 6 usec - -Empty Array[PackedFloat32Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedFloat64Array] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedStringArray] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedVector2Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[PackedVector3Array] - Size:0 - [GUS]: 1 bytes ser 27 usec deser 4 usec - [Native]: 8 bytes ser 4 usec deser 4 usec - [JSON]: 2 bytes ser 25 usec deser 5 usec - -Empty Array[PackedColorArray] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Array[bool] - Size:4096 - [GUS]: 4099 bytes ser 174 usec deser 483 usec - [Native]: 32776 bytes ser 371 usec deser 862 usec - [JSON]: 22489 bytes ser 4573 usec deser 6673 usec - -Array[int] - Size:4096 - [GUS]: 20349 bytes ser 307 usec deser 733 usec - [Native]: 40916 bytes ser 396 usec deser 884 usec - [JSON]: 44016 bytes ser 6665 usec deser 1415 usec - -Array[float] - Size:4096 - [GUS]: 32771 bytes ser 241 usec deser 682 usec - [Native]: 49160 bytes ser 395 usec deser 892 usec - [JSON]: 71205 bytes ser 10624 usec deser 1776 usec - -Array[String] - Size:4096 - [GUS]: 60336 bytes ser 14328 usec deser 3574 usec - [Native]: 97916 bytes ser 6063 usec deser 4316 usec - [JSON]: 68526 bytes ser 14677 usec deser 9917 usec - -Array[StringName] - Size:4096 - [GUS]: 80816 bytes ser 15728 usec deser 8368 usec - [Native]: 114660 bytes ser 7127 usec deser 7744 usec - [JSON]: 89006 bytes ser 14859 usec deser 12014 usec - -Array[Vector2] - Size:4096 - [GUS]: 32771 bytes ser 275 usec deser 707 usec - [Native]: 49160 bytes ser 356 usec deser 993 usec - [JSON]: 108871 bytes ser 30304 usec deser 13520 usec - -Array[Vector2i] - Size:4096 - [GUS]: 32771 bytes ser 279 usec deser 725 usec - [Native]: 49160 bytes ser 347 usec deser 1001 usec - [JSON]: 110355 bytes ser 30188 usec deser 13701 usec - -Array[Vector3] - Size:4096 - [GUS]: 49155 bytes ser 323 usec deser 780 usec - [Native]: 65544 bytes ser 438 usec deser 1246 usec - [JSON]: 157291 bytes ser 38420 usec deser 17914 usec - -Array[Vector3i] - Size:4096 - [GUS]: 49155 bytes ser 309 usec deser 765 usec - [Native]: 65544 bytes ser 409 usec deser 1349 usec - [JSON]: 159449 bytes ser 39000 usec deser 17880 usec - -Array[Vector4] - Size:4096 - [GUS]: 65539 bytes ser 306 usec deser 753 usec - [Native]: 81928 bytes ser 447 usec deser 1147 usec - [JSON]: 205632 bytes ser 46500 usec deser 21697 usec - -Array[Vector4i] - Size:4096 - [GUS]: 65539 bytes ser 308 usec deser 776 usec - [Native]: 81928 bytes ser 430 usec deser 1228 usec - [JSON]: 208552 bytes ser 46064 usec deser 21370 usec - -Array[Projection] - Size:4096 - [GUS]: 262147 bytes ser 664 usec deser 2017 usec - [Native]: 278536 bytes ser 754 usec deser 4059 usec - [JSON]: 787456 bytes ser 205315 usec deser 65828 usec - -Array[Rect2] - Size:4096 - [GUS]: 65539 bytes ser 319 usec deser 860 usec - [Native]: 81928 bytes ser 476 usec deser 1473 usec - [JSON]: 246734 bytes ser 59359 usec deser 24957 usec - -Array[Rect2i] - Size:4096 - [GUS]: 65539 bytes ser 335 usec deser 783 usec - [Native]: 81928 bytes ser 443 usec deser 1328 usec - [JSON]: 249476 bytes ser 58861 usec deser 25123 usec - -Array[Transform2D] - Size:4096 - [GUS]: 98307 bytes ser 369 usec deser 1785 usec - [Native]: 114696 bytes ser 455 usec deser 3035 usec - [JSON]: 363907 bytes ser 82450 usec deser 34703 usec - -Array[Plane] - Size:4096 - [GUS]: 65539 bytes ser 323 usec deser 786 usec - [Native]: 81928 bytes ser 476 usec deser 1457 usec - [JSON]: 238517 bytes ser 52076 usec deser 24104 usec - -Array[Quaternion] - Size:4096 - [GUS]: 65539 bytes ser 307 usec deser 749 usec - [Native]: 81928 bytes ser 450 usec deser 1133 usec - [JSON]: 132285 bytes ser 42360 usec deser 15375 usec - -Array[AABB] - Size:4096 - [GUS]: 98307 bytes ser 336 usec deser 1683 usec - [Native]: 114696 bytes ser 555 usec deser 3063 usec - [JSON]: 343269 bytes ser 75734 usec deser 32661 usec - -Array[Basis] - Size:4096 - [GUS]: 147459 bytes ser 399 usec deser 1700 usec - [Native]: 163848 bytes ser 504 usec deser 3277 usec - [JSON]: 321826 bytes ser 111807 usec deser 30873 usec - -Array[Transform3D] - Size:4096 - [GUS]: 196611 bytes ser 430 usec deser 1910 usec - [Native]: 213000 bytes ser 620 usec deser 3261 usec - [JSON]: 674307 bytes ser 140458 usec deser 75629 usec - -Array[Color] - Size:4096 - [GUS]: 65539 bytes ser 323 usec deser 794 usec - [Native]: 81928 bytes ser 466 usec deser 1239 usec - [JSON]: 140650 bytes ser 56070 usec deser 16271 usec - -Array[NodePath] - Size:4096 - [GUS]: 196611 bytes ser 37758 usec deser 41295 usec - [Native]: 327688 bytes ser 33466 usec deser 30390 usec - [JSON]: 204801 bytes ser 26301 usec deser 21529 usec - -Array[Array] - Size:4096 - [GUS]: 192218 bytes ser 73002 usec deser 29718 usec - [Native]: 319220 bytes ser 29915 usec deser 23864 usec - [JSON]: 388428 bytes ser 129866 usec deser 50159 usec - -Array[Dictionary] - Size:4096 - [GUS]: 229045 bytes ser 91394 usec deser 32654 usec - [Native]: 401192 bytes ser 41261 usec deser 29649 usec - [JSON]: 500707 bytes ser 178698 usec deser 71691 usec - -Array[PackedByteArray] - Size:4096 - [GUS]: 20467 bytes ser 1701 usec deser 6355 usec - [Native]: 49144 bytes ser 1125 usec deser 4015 usec - [JSON]: 87026 bytes ser 32037 usec deser 11987 usec - -Array[PackedInt32Array] - Size:4096 - [GUS]: 135043 bytes ser 6099 usec deser 6396 usec - [Native]: 98248 bytes ser 1167 usec deser 4195 usec - [JSON]: 188019 bytes ser 50042 usec deser 13243 usec - -Array[PackedInt64Array] - Size:4096 - [GUS]: 167779 bytes ser 2342 usec deser 6391 usec - [Native]: 196456 bytes ser 1554 usec deser 4490 usec - [JSON]: 416463 bytes ser 65267 usec deser 16791 usec - -Array[PackedFloat32Array] - Size:4096 - [GUS]: 85939 bytes ser 1948 usec deser 6187 usec - [Native]: 114616 bytes ser 1132 usec deser 4500 usec - [JSON]: 229645 bytes ser 77703 usec deser 14705 usec - -Array[PackedFloat64Array] - Size:4096 - [GUS]: 167779 bytes ser 2701 usec deser 6467 usec - [Native]: 196456 bytes ser 1650 usec deser 5091 usec - [JSON]: 399069 bytes ser 78333 usec deser 16594 usec - -Array[PackedStringArray] - Size:4096 - [GUS]: 73663 bytes ser 34877 usec deser 11118 usec - [Native]: 196456 bytes ser 13536 usec deser 12134 usec - [JSON]: 110497 bytes ser 74116 usec deser 24973 usec - -Array[PackedVector2Array] - Size:4096 - [GUS]: 135043 bytes ser 2321 usec deser 7095 usec - [Native]: 163720 bytes ser 1469 usec deser 5512 usec - [JSON]: 431431 bytes ser 95646 usec deser 39718 usec - -Array[PackedVector3Array] - Size:4096 - [GUS]: 200515 bytes ser 2756 usec deser 6747 usec - [Native]: 229192 bytes ser 2164 usec deser 4958 usec - [JSON]: 624635 bytes ser 128803 usec deser 54449 usec - -Array[PackedColorArray] - Size:4096 - [GUS]: 331459 bytes ser 2359 usec deser 6938 usec - [Native]: 360136 bytes ser 2229 usec deser 5728 usec - [JSON]: 698894 bytes ser 248205 usec deser 59321 usec -``` diff --git a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/GUS_benchmark.gd b/demo/addons/com.daylily_zeleen.godot_universal_serializer2/GUS_benchmark.gd deleted file mode 100644 index 149ef5e..0000000 --- a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/GUS_benchmark.gd +++ /dev/null @@ -1,312 +0,0 @@ -@tool -extends EditorScript - -func _run() -> void: - randomize() - GUS.set_color_encode_type(GUS.COLOR_ENCODE_TYPE_RAW) - _test(get_editor_interface().get_base_control()) - - -var tree:SceneTree -func _test(inside_tree_node:Node)->void: - tree = inside_tree_node.get_tree() if inside_tree_node and inside_tree_node.is_inside_tree() else null - _print_result("null" , null) - _print_result("bool" , true) - _print_result("bool" , false) - _print_result("int1" , 0x7a) - _print_result("int2" , 0x5c3b) - _print_result("int3" , -0x7a5390) - _print_result("int4" , 0x6a53c904) - _print_result("int5" , -0x7c340c9041) - _print_result("int6" , 0x5a53c904d054) - _print_result("int7" , 0x3c90a53c90d041) - _print_result("int8" , -(0x7aaa53c907a414d0)) - _print_result("float" , -105.0532) - _print_result("String" , "test 测试") - _print_result("StringName" , StringName("TestStringName")) - _print_result("Vector2" , Vector2(-423, 46.8005)) - _print_result("Vector2i" , Vector2i(-423, 0x5c3b)) - _print_result("Vector3" , Vector3(52011,-541.3327,77441)) - _print_result("Vector3i" , Vector3i(-423,0x5c3b,52011)) - _print_result("Vector4" , Vector4(5211,-541.327,7441, 1.23)) - _print_result("Vector4i" , Vector4i(-42,0xc31b,5211,445)) - _print_result("Projection" , Projection.create_light_atlas_rect(Rect2(56.622, -77.85, 8740.2369, 441.044))) - _print_result("Rect2" , Rect2(56.622, -77.85, 8740.2369, 441.044)) - _print_result("Rect2i" , Rect2i(randi(), randi(), randi(), randi())) - _print_result("Transform2D" , Transform2D.FLIP_Y.translated(Vector2(513,88.5))) - _print_result("Plane", Plane(-54.55, 876, 2310,744).normalized()) - _print_result("Quaternion", Quaternion(-54.55, 876, 2310,744)) - _print_result("AABB", AABB(Vector3(-77.85, 8740.2369, 441.044),Vector3(105,50,68))) - _print_result("Basis", Transform3D.FLIP_Y.translated(Vector3(513,-88.5,105)).basis) - _print_result("Transform3D", Transform3D.FLIP_Y.translated(Vector3(513,-88.5,105))) - _print_result("Color", Color.WHITE) - _print_result("NodePath", inside_tree_node.get_path()) - var arr = [574, -21.0, Vector2(-423,46.8005), Color.AQUA, "acxx"] - _print_result("Array", arr ) - # 字典测试 - var dict :={ - k_str = "value1", - k_color = Color.ALICE_BLUE, - k_int = 123123, - k_float = 44.886, - k_vec3 = Vector3(52011,-541.3327,77441) - } - dict[532] = [574,-21.0, Vector2(-423,46.8005), Color.AQUA,"acxx"] - _print_result("Dictionary",dict) - - # 池化数组测试 - var byte_arr := PackedByteArray() - var int32_arr := PackedInt32Array() - var int64_arr := PackedInt64Array() - var float32_arr:= PackedFloat32Array() - var float64_arr:= PackedFloat64Array() - var string_arr := PackedStringArray() - var vector2_arr := PackedVector2Array() - var vector3_arr:= PackedVector3Array() - var color_arr:= PackedColorArray() - - _print_result("Empty Array", []) - _print_result("Empty Dictionary", {}) - _print_result("Empty PackedByteArray",byte_arr) - _print_result("Empty PackedInt32Array",int32_arr) - _print_result("Empty PackedInt64Array",int64_arr) - _print_result("Empty PackedFloat32Array",float32_arr) - _print_result("Empty PackedFloat64Array",float64_arr) - _print_result("Empty PackedStringArray",string_arr) - _print_result("Empty PackedVector2Array",vector2_arr) - _print_result("Empty PackedVector3Array",vector3_arr) - _print_result("Empty PackedColorArray",color_arr) - - var i := 4096 - while i>0: - byte_arr.push_back(randi()%256) - int32_arr.push_back(randi()) - int64_arr.push_back(randi()*randi()) - float32_arr.push_back(randf()) - float64_arr.push_back(_randf() * _randf()) - string_arr.push_back(str(i*10)) - vector2_arr.push_back(Vector2(i*randf(),i*randf())) - vector3_arr.push_back(Vector3(i*randf(),i*randf(),i*randf())) - color_arr.push_back(Color(randf(),randf(),randf(),randf())) - i-=1 - - _print_result("PackedByteArray",byte_arr) - _print_result("PackedInt32Array",int32_arr) - _print_result("PackedInt64Array",int64_arr) - _print_result("PackedFloat32Array",float32_arr) - _print_result("PackedFloat64Array",float64_arr) - _print_result("PackedStringArray",string_arr) - _print_result("PackedVector2Array",vector2_arr) - _print_result("PackedVector3Array",vector3_arr) - _print_result("PackedColorArray",color_arr) - - # 类型化数组 - var typed_arr_bool :Array[bool] = [] - var typed_arr_int :Array[int] = [] - var typed_arr_float :Array[float] = [] - var typed_arr_string :Array[String] = [] - var typed_arr_string_name :Array[StringName] = [] - var typed_arr_vec2 :Array[Vector2] = [] - var typed_arr_vec2i :Array[Vector2i] = [] - var typed_arr_vec3 :Array[Vector3] = [] - var typed_arr_vec3i :Array[Vector3i] = [] - var typed_arr_vec4 :Array[Vector4] = [] - var typed_arr_vec4i :Array[Vector4i] = [] - var typed_arr_projection :Array[Projection] = [] - var typed_arr_rect2 :Array[Rect2] = [] - var typed_arr_rect2i :Array[Rect2i] = [] - var typed_arr_transform2d :Array[Transform2D] = [] - var typed_arr_plane :Array[Plane] = [] - var typed_arr_quaternion :Array[Quaternion] = [] - var typed_arr_aabb :Array[AABB] = [] - var typed_arr_basis :Array[Basis] = [] - var typed_arr_transform3d :Array[Transform3D] = [] - var typed_arr_color :Array[Color] = [] - var typed_arr_node_path :Array[NodePath] = [] - var typed_arr_array :Array[Array] = [] - var typed_arr_dict :Array[Dictionary] = [] - var typed_arr_byte_arr :Array[PackedByteArray] = [] - var typed_arr_int32_arr :Array[PackedInt32Array] = [] - var typed_arr_int64_arr :Array[PackedInt64Array] = [] - var typed_arr_float32_arr :Array[PackedFloat32Array] = [] - var typed_arr_float64_arr :Array[PackedFloat64Array] = [] - var typed_arr_string_arr :Array[PackedStringArray] = [] - var typed_arr_vector2_arr :Array[PackedVector2Array] = [] - var typed_arr_vector3_arr :Array[PackedVector3Array] = [] - var typed_arr_color_arr :Array[PackedColorArray] = [] - - _print_result("Empty Array[bool]", typed_arr_bool) - _print_result("Empty Array[int]", typed_arr_int) - _print_result("Empty Array[float]", typed_arr_float) - _print_result("Empty Array[String]", typed_arr_string) - _print_result("Empty Array[StringName]", typed_arr_string_name) - _print_result("Empty Array[Vector2]", typed_arr_vec2) - _print_result("Empty Array[Vector2i]", typed_arr_vec2i) - _print_result("Empty Array[Vector3]", typed_arr_vec3) - _print_result("Empty Array[Vector3i]", typed_arr_vec3i) - _print_result("Empty Array[Vector4]", typed_arr_vec4) - _print_result("Empty Array[Vector4i]", typed_arr_vec4i) - _print_result("Empty Array[Projection]", typed_arr_projection) - _print_result("Empty Array[Rect2]", typed_arr_rect2) - _print_result("Empty Array[Rect2i]", typed_arr_rect2i) - _print_result("Empty Array[Transform2D]", typed_arr_transform2d) - _print_result("Empty Array[Plane]", typed_arr_plane) - _print_result("Empty Array[Quaternion]", typed_arr_quaternion) - _print_result("Empty Array[AABB]", typed_arr_aabb) - _print_result("Empty Array[Basis]", typed_arr_basis) - _print_result("Empty Array[Transform3D]", typed_arr_transform3d) - _print_result("Empty Array[Color]", typed_arr_color) - _print_result("Empty Array[NodePath]", typed_arr_node_path) - _print_result("Empty Array[Array]", typed_arr_array) - _print_result("Empty Array[Dictionary]", typed_arr_dict) - _print_result("Empty Array[PackedByteArray]", typed_arr_byte_arr) - _print_result("Empty Array[PackedInt32Array]", typed_arr_int32_arr) - _print_result("Empty Array[PackedInt64Array]", typed_arr_int64_arr) - _print_result("Empty Array[PackedFloat32Array]", typed_arr_float32_arr) - _print_result("Empty Array[PackedFloat64Array]", typed_arr_float64_arr) - _print_result("Empty Array[PackedStringArray]", typed_arr_string_arr) - _print_result("Empty Array[PackedVector2Array]", typed_arr_vector2_arr) - _print_result("Empty Array[PackedVector3Array]", typed_arr_vector3_arr) - _print_result("Empty Array[PackedColorArray]", typed_arr_color_arr) - - i = 4096 - while i>0: - typed_arr_bool.push_back(randi()%2==0) - typed_arr_int.push_back(randi()) - typed_arr_float.push_back(_randf()) - typed_arr_string.push_back("typed_str_%d"%i) - typed_arr_string_name.push_back(StringName("typed_str_name_%d"%i)) - typed_arr_vec2.push_back(Vector2(_randf(), _randf())) - typed_arr_vec2i.push_back(Vector2i(randi(),randi())) - typed_arr_vec3.push_back(Vector3(_randf(), _randf(), _randf())) - typed_arr_vec3i.push_back(Vector3i(randi(),randi(),randi())) - typed_arr_vec4.push_back(rand_vec4.call()) - typed_arr_vec4i.push_back(Vector4i(randi(), randi(), randi(), randi())) - typed_arr_projection.push_back(Projection(rand_vec4(), rand_vec4(), rand_vec4(), rand_vec4())) - typed_arr_rect2.push_back(Rect2(_randf(), _randf(), _randf(), _randf())) - typed_arr_rect2i.push_back(Rect2i(randi(), randi(), randi(), randi())) - typed_arr_transform2d.push_back(Transform2D(rand_vec2(),rand_vec2(),rand_vec2())) - typed_arr_plane.push_back(Plane(rand_vec3(),_randf())) - typed_arr_quaternion.push_back(Quaternion(rand_vec3(), rand_vec3())) - typed_arr_aabb.push_back(AABB(rand_vec3(),rand_vec3())) - typed_arr_basis.push_back(Basis(Quaternion(rand_vec3(), rand_vec3()))) - typed_arr_transform3d.push_back(Transform3D(rand_vec3(),rand_vec3(),rand_vec3(),rand_vec3())) - typed_arr_color.push_back(Color.hex(randi())) - typed_arr_node_path.push_back(inside_tree_node.get_path()) - if i %1000 == 0: - typed_arr_array.push_back([]) - typed_arr_dict.push_back({}) - typed_arr_byte_arr.push_back(PackedByteArray()) - typed_arr_int32_arr.push_back(PackedInt32Array()) - typed_arr_int64_arr.push_back(PackedInt64Array()) - typed_arr_float32_arr.push_back(PackedFloat32Array()) - typed_arr_float64_arr.push_back(PackedFloat64Array()) - typed_arr_string_arr.push_back(PackedStringArray()) - typed_arr_vector2_arr.push_back(PackedVector2Array()) - typed_arr_vector3_arr.push_back(PackedVector3Array()) - typed_arr_color_arr.push_back(PackedColorArray()) - else: - typed_arr_array.push_back([randi(), "asd", rand_vec4(), {"asd":randf()}]) - typed_arr_dict.push_back({"zxc": [randi(), "asd", rand_vec4()], "sads": rand_vec3()}) - typed_arr_byte_arr.push_back(PackedByteArray([randi()%256,randi()%256,randi()%256,randi()%256])) - typed_arr_int32_arr.push_back(PackedInt32Array([randi(), randi(), randi(), randi()])) - typed_arr_int64_arr.push_back(PackedInt64Array([pow(randi(), 2.0), pow(randi(), 2.0), pow(randi(), 2.0), pow(randi(), 2.0),pow(randi(), 2.0)])) - typed_arr_float32_arr.push_back(PackedFloat32Array([_randf(), _randf(), _randf(), _randf(), _randf()])) - typed_arr_float64_arr.push_back(PackedFloat64Array([pow(_randf(), 2.0), pow(_randf(), 2.0), pow(_randf(), 2.0), pow(_randf(), 2.0),pow(_randf(), 2.0)])) - typed_arr_string_arr.push_back(PackedStringArray(["", "a1s56d4", "", "asdasd"])) - typed_arr_vector2_arr.push_back(PackedVector2Array([rand_vec2(),rand_vec2(),rand_vec2(),rand_vec2()])) - typed_arr_vector3_arr.push_back(PackedVector3Array([rand_vec3(),rand_vec3(),rand_vec3(),rand_vec3()])) - typed_arr_color_arr.push_back(PackedColorArray([rand_color(), rand_color(), rand_color(), rand_color(), rand_color()])) - i-=1 - - _print_result("Array[bool]", typed_arr_bool) - _print_result("Array[int]", typed_arr_int) - _print_result("Array[float]", typed_arr_float) - _print_result("Array[String]", typed_arr_string) - _print_result("Array[StringName]", typed_arr_string_name) - _print_result("Array[Vector2]", typed_arr_vec2) - _print_result("Array[Vector2i]", typed_arr_vec2i) - _print_result("Array[Vector3]", typed_arr_vec3) - _print_result("Array[Vector3i]", typed_arr_vec3i) - _print_result("Array[Vector4]", typed_arr_vec4) - _print_result("Array[Vector4i]", typed_arr_vec4i) - _print_result("Array[Projection]", typed_arr_projection) - _print_result("Array[Rect2]", typed_arr_rect2) - _print_result("Array[Rect2i]", typed_arr_rect2i) - _print_result("Array[Transform2D]", typed_arr_transform2d) - _print_result("Array[Plane]", typed_arr_plane) - _print_result("Array[Quaternion]", typed_arr_quaternion) - _print_result("Array[AABB]", typed_arr_aabb) - _print_result("Array[Basis]", typed_arr_basis) - _print_result("Array[Transform3D]", typed_arr_transform3d) - _print_result("Array[Color]", typed_arr_color) - _print_result("Array[NodePath]", typed_arr_node_path) - _print_result("Array[Array]", typed_arr_array) - _print_result("Array[Dictionary]", typed_arr_dict) - _print_result("Array[PackedByteArray]", typed_arr_byte_arr) - _print_result("Array[PackedInt32Array]", typed_arr_int32_arr) - _print_result("Array[PackedInt64Array]", typed_arr_int64_arr) - _print_result("Array[PackedFloat32Array]", typed_arr_float32_arr) - _print_result("Array[PackedFloat64Array]", typed_arr_float64_arr) - _print_result("Array[PackedStringArray]", typed_arr_string_arr) - _print_result("Array[PackedVector2Array]", typed_arr_vector2_arr) - _print_result("Array[PackedVector3Array]", typed_arr_vector3_arr) - _print_result("Array[PackedColorArray]", typed_arr_color_arr) - return - - -func _randf() -> float: return randi()*(randf() - 0.5 )*2 -func rand_vec2() -> Vector2: return Vector2(_randf(), _randf()) -func rand_vec3() -> Vector3: return Vector3(_randf(), _randf(), _randf()) -func rand_vec4() -> Vector4: return Vector4(_randf(), _randf(), _randf(), _randf()) -func rand_color() -> Color: return Color(randf(), randf(), randf(), randf()) -# 序列化与反序列并打印对比结果 -func _print_result(title_name:String, v)->void: - var type = typeof(v) - # JSON - utf8 - var json := JSON.new() - var json_ser_time := Time.get_ticks_usec() - var json_bytes := json.stringify(v).to_utf8_buffer() - json_ser_time = Time.get_ticks_usec() - json_ser_time - var json_deser_time := Time.get_ticks_usec() - json.parse(json_bytes.get_string_from_utf8()) - var json_deser = json.get_data() - json_deser_time = Time.get_ticks_usec() - json_deser_time - - # GUS - var gus_ser_time := Time.get_ticks_usec() - var gus_bytes := GUS.var_to_bytes(v) # GUS 序列化后数据 - gus_ser_time = Time.get_ticks_usec() - gus_ser_time - var gus_deser_time := Time.get_ticks_usec() - var gus_deser = GUS.bytes_to_var(gus_bytes) - gus_deser_time = Time.get_ticks_usec() - gus_deser_time - - # Native - var native_ser_time := Time.get_ticks_usec() - var native_bytes := var_to_bytes(v) - native_ser_time = Time.get_ticks_usec() - native_ser_time - var native_deser_time := Time.get_ticks_usec() - var native_deser = convert(bytes_to_var(native_bytes),type) - native_deser_time = Time.get_ticks_usec() - native_deser_time - - - if typeof(v) == typeof(gus_deser) and str(v) == str(gus_deser): # 检查序列化前后的类型和具体值是否相同 - if typeof(v) >TYPE_ARRAY or (v is Array and v.is_typed()): # 池化数组不打印具体值(打印溢出 - print("%s - Size:%d\n\t[GUS]: \t\t%d bytes \t\tser %d usec \t\tdeser %d usec\n\t[Native]: \t%d bytes \t\tser %d usec \t\tdeser %d usec\n\t[JSON]:\t\t%d bytes \t\tser %d usec \t\tdeser %d usec"%[ - title_name, v.size(), - gus_bytes.size(), gus_ser_time, gus_deser_time , - native_bytes.size() , native_ser_time, native_deser_time, - json_bytes.size(), json_ser_time, json_deser_time]) - else: - print("%s - value:%s\n\t[GUS]: \t\t%d bytes \t\tser %d usec \t\tdeser %d usec\n\t[Native]: \t%d bytes \t\tser %d usec \t\tdeser %d usec\n\t[JSON]:\t\t%d bytes \t\tser %d usec \t\tdeser %d usec"%[ - title_name, str(v), - gus_bytes.size(), gus_ser_time, gus_deser_time , - native_bytes.size() , native_ser_time, native_deser_time, - json_bytes.size(), json_ser_time, json_deser_time]) - else: # 反序列化异常 -# if typeof(v) >TYPE_ARRAY: # 池化数组不打印具体值(打印溢出 -# printerr("%s 解码失败 源: %d 流: %d\n\t "%[title_name, v.size(), gus_deser.size()]) -# else: -# printerr("%s: %s 解码结果:%s 解码失败\n\t - 数据流: %s"%[title_name,str(v),str(gus_deser),str(gus_bytes)]) - printerr("%s: \n\t%s \n解码结果: \n\t%s \n解码失败\n\t - 数据流: %s"%[title_name,str(v),str(gus_deser),str(gus_bytes)]) - print("") diff --git a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/LICENSE b/demo/addons/com.daylily_zeleen.godot_universal_serializer2/LICENSE deleted file mode 100644 index ab54110..0000000 --- a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2022 忘忧の Daylily Zleen daylily-zeleen@foxmail.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/README.md b/demo/addons/com.daylily_zeleen.godot_universal_serializer2/README.md deleted file mode 100644 index 25521de..0000000 --- a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/README.md +++ /dev/null @@ -1,678 +0,0 @@ - -# GUS - Godot Universal Serializer 2.1.5 - Godot的通用序列化器 - V2.1.5(Godot 4.1 stable) - -# `master` branch is c++ source code。 -# You can go to `plugin` branch to browse compiled plugin, or go to release page to download the plugin which compatible to your using Godot version. - -![Image text](icon.png) - -[中文文档](README_zh_cn.md) <- 点击这里。 - -A Godot's universal serializer for size optimization. -Support all data types except `Object`, `RID`, `Callable` and `Signal` in Godot 4.x. - -# Feature: - 1. Without losing type information. Need not type detection and forced typce conversion in cross end transfer,just like local parameter transfer. - 2. Integer are variable length serialization. - 3. The serialized data size is smaller than JSON text to utf8 and the native serialization method `var_to_bytes()`.GUS is especially suitable for the serialization of structured small data transfer in multiplayer games. - 4. GDExtension plugin, high performance. - - You can run the `EditorScript` which named `GUS_benchmark.gd` to view the contrast between `GUS`, `Native`, and `JSON`. - -# How to use: - 1. Download released plugin, install ~~and enable~~ this plugin just like other plugin( If the version is not match, please compile by yourselves). - 2. ~~Modify properties of autoload which named `GUS` as you require.~~ - 3. Pass variable which without `Object`, `OID`, `Callable`, `Signal` into `GUS.var_to_bytes()` and get the serialized data, than send to network peer. - 4. After the remote network peer obtains the serialized data, passe it into `GUS.bytes_to_var()` to get the same variable as before serialization. - - -# Be careful: - 1. `Array` and `Dictionary` should not contain `Object`, `RID`, `Callable` and `Signal`. - 2. This repo only compile `windos` version, on other platform, you need to compile by yourself (because I have not other device to test). - 3. ~~The properties of autoload `GUS` between all network peers should keep the same.~~ - 4. ~~Currently unsupport Godot 4.x which compiled with `typeof double real_t`.~~ - 5. ~~Currently just support platform `windows`.~~ - - -# TODO: - 1. ~~If I find the way to bind static method for `GDScript`, I will get rid of the autoload `GUS`.~~ - 2. ~~Compile `linux` and `osx` version.~~ - 3. ~~Compile `typeof double real_t` version to support custom Godot( but I encounter error which I can't handle it, too).~~ - 4. ~~Deal `Object`, `RID`, `Callable` and `Signal`.~~ - 5. Handle endian. - -# How to compile: - 1. Follow [offical tutorial](https://docs.godotengine.org/zh_CN/stable/development/compiling/index.html) to set up you develop enviroment. - 2. Clone this repository (with submodule). - 3. You must generate bindings and build library of `godot-cpp` at least once. - - You can use generate and build manully by steps below: - a. Navigate to `godot-cpp` folder. - b. Run command: - ``` - scons generate_bindings=yes build_library=yes - ``` - c. Now you can add `generate_bindings=no build_library=no` at next stage to avoid generate bindings and build library every time when compiling `GUS`. - - - (Recommand) Generate bindings and build library every time when compiling `GUS`, to keep the compiling condition of `godot-cpp` same as `GUS`. - Just skip this stage and add `generate_bindings=yes build_library=yes` or ignore these command arguments. - Don't worry, generate bindings and build library of `godot-cpp` would not take many time if the compile conditions have not change. - 4. Here is a little different from `godot-cpp` to compile `GUS` (of course, you can use `scons` to compile, too). - To do some post process, I use a tool script to compile `GUS`. - Navigate to root folder, run command as below to compile `GUS`: - ``` - python build.py - ``` - - You can add arguments like to build `godot-cpp` at this stage. - - To learn more arguments detail, run this command. - ``` - python build.py -h - ``` - - Specially, if you not specify the argument `target`, this tool will build both `target=template_debug` and `target=template_release`. - - 5. Now, you can get the addon which be located at `\demo\addons\com.daylily_zeleen.godot_universal_serializer\`, or get the packed addon at `bin\com.daylily_zeleen.godot_universal_serializer.zip`. - (Notice: if your use `scons` instead of `python build_tool`, you can only get dynamic library at `bin` folder.) - -# Benchmark 2.1.5: -``` -null - value: - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 4 bytes ser 3 usec deser 3 usec - [JSON]: 4 bytes ser 18 usec deser 9 usec - -bool - value:true - [GUS]: 1 bytes ser 5 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 4 bytes ser 10 usec deser 6 usec - -bool - value:false - [GUS]: 1 bytes ser 4 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 2 usec - [JSON]: 5 bytes ser 9 usec deser 5 usec - -int1 - value:122 - [GUS]: 3 bytes ser 4 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 3 bytes ser 9 usec deser 3 usec - -int2 - value:23611 - [GUS]: 4 bytes ser 3 usec deser 1 usec - [Native]: 8 bytes ser 3 usec deser 2 usec - [JSON]: 5 bytes ser 9 usec deser 4 usec - -int3 - value:-8016784 - [GUS]: 5 bytes ser 4 usec deser 2 usec - [Native]: 8 bytes ser 2 usec deser 2 usec - [JSON]: 8 bytes ser 23 usec deser 3 usec - -int4 - value:1783875844 - [GUS]: 6 bytes ser 7 usec deser 2 usec - [Native]: 8 bytes ser 4 usec deser 3 usec - [JSON]: 10 bytes ser 59 usec deser 6 usec - -int5 - value:-533449183297 - [GUS]: 7 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 3 usec - [JSON]: 13 bytes ser 21 usec deser 6 usec - -int6 - value:99315901321300 - [GUS]: 8 bytes ser 8 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 3 usec - [JSON]: 14 bytes ser 38 usec deser 7 usec - -int7 - value:17047537962766401 - [GUS]: 9 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 4 usec - [JSON]: 17 bytes ser 19 usec deser 7 usec - -int8 - value:-8838969341549745360 - [GUS]: 11 bytes ser 21 usec deser 4 usec - [Native]: 12 bytes ser 5 usec deser 4 usec - [JSON]: 20 bytes ser 20 usec deser 21 usec - -float - value:-105.0532 - [GUS]: 9 bytes ser 8 usec deser 3 usec - [Native]: 12 bytes ser 5 usec deser 4 usec - [JSON]: 9 bytes ser 32 usec deser 8 usec - -String - value:test 测试 - [GUS]: 13 bytes ser 35 usec deser 6 usec - [Native]: 20 bytes ser 8 usec deser 7 usec - [JSON]: 13 bytes ser 26 usec deser 12 usec - -StringName - value:TestStringName - [GUS]: 16 bytes ser 17 usec deser 10 usec - [Native]: 24 bytes ser 8 usec deser 23 usec - [JSON]: 16 bytes ser 27 usec deser 25 usec - -Vector2 - value:(-423, 46.8005) - [GUS]: 9 bytes ser 9 usec deser 4 usec - [Native]: 12 bytes ser 6 usec deser 6 usec - [JSON]: 17 bytes ser 42 usec deser 12 usec - -Vector2i - value:(-423, 23611) - [GUS]: 9 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 6 usec deser 5 usec - [JSON]: 15 bytes ser 35 usec deser 12 usec - -Vector3 - value:(52011, -541.3327, 77441) - [GUS]: 13 bytes ser 9 usec deser 5 usec - [Native]: 16 bytes ser 7 usec deser 6 usec - [JSON]: 27 bytes ser 47 usec deser 20 usec - -Vector3i - value:(-423, 23611, 52011) - [GUS]: 13 bytes ser 8 usec deser 3 usec - [Native]: 16 bytes ser 6 usec deser 5 usec - [JSON]: 22 bytes ser 39 usec deser 16 usec - -Vector4 - value:(5211, -541.327, 7441, 1.23) - [GUS]: 17 bytes ser 10 usec deser 4 usec - [Native]: 20 bytes ser 5 usec deser 7 usec - [JSON]: 30 bytes ser 52 usec deser 15 usec - -Vector4i - value:(-42, 49947, 5211, 445) - [GUS]: 17 bytes ser 5 usec deser 2 usec - [Native]: 20 bytes ser 2 usec deser 3 usec - [JSON]: 25 bytes ser 23 usec deser 8 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 6 usec deser 3 usec - [Native]: 68 bytes ser 3 usec deser 6 usec - [JSON]: 110 bytes ser 64 usec deser 14 usec - -Rect2 - value:[P: (56.622, -77.85), S: (8740.237, 441.044)] - [GUS]: 17 bytes ser 5 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 3 usec - [JSON]: 47 bytes ser 33 usec deser 10 usec - -Rect2i - value:[P: (-1731580097, 1577736616), S: (622087478, 177854727)] - [GUS]: 17 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 59 bytes ser 26 usec deser 11 usec - -Transform2D - value:[X: (1, 0), Y: (0, -1), O: (513, 88.5)] - [GUS]: 25 bytes ser 5 usec deser 2 usec - [Native]: 28 bytes ser 3 usec deser 5 usec - [JSON]: 41 bytes ser 35 usec deser 9 usec - -Plane - value:[N: (-0.022075, 0.354495, 0.934797), D: 0.301078] - [GUS]: 17 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 51 bytes ser 31 usec deser 10 usec - -Quaternion - value:(-54.55, 876, 2310, 744) - [GUS]: 17 bytes ser 4 usec deser 3 usec - [Native]: 20 bytes ser 2 usec deser 3 usec - [JSON]: 26 bytes ser 25 usec deser 8 usec - -AABB - value:[P: (-77.85, 8740.237, 441.044), S: (105, 50, 68)] - [GUS]: 25 bytes ser 5 usec deser 3 usec - [Native]: 28 bytes ser 3 usec deser 5 usec - [JSON]: 52 bytes ser 35 usec deser 10 usec - -Basis - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1)] - [GUS]: 37 bytes ser 5 usec deser 3 usec - [Native]: 40 bytes ser 3 usec deser 4 usec - [JSON]: 45 bytes ser 35 usec deser 10 usec - -Transform3D - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1), O: (513, -88.5, 105)] - [GUS]: 49 bytes ser 5 usec deser 3 usec - [Native]: 52 bytes ser 3 usec deser 5 usec - [JSON]: 67 bytes ser 48 usec deser 11 usec - -Color - value:(1, 1, 1, 1) - [GUS]: 33 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 14 bytes ser 27 usec deser 7 usec - -NodePath - value:/root/@EditorNode@17637/@Control@697/@Panel@698 - [GUS]: 49 bytes ser 17 usec deser 20 usec - [Native]: 80 bytes ser 13 usec deser 13 usec - [JSON]: 49 bytes ser 21 usec deser 9 usec - -Array - value:[574, -21, (-423, 46.8005), (0, 1, 1, 1), "acxx"] - [GUS]: 62 bytes ser 16 usec deser 9 usec - [Native]: 68 bytes ser 7 usec deser 11 usec - [JSON]: 49 bytes ser 57 usec deser 16 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]: 175 bytes ser 59 usec deser 21 usec - [Native]: 236 bytes ser 30 usec deser 21 usec - [JSON]: 178 bytes ser 131 usec deser 40 usec - -Empty Array - value:[] - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 4 usec deser 5 usec - [JSON]: 2 bytes ser 12 usec deser 33 usec - -Empty Dictionary - value:{ } - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 4 usec deser 4 usec - [JSON]: 2 bytes ser 44 usec deser 5 usec - -Empty PackedByteArray - Size:0 - [GUS]: 1 bytes ser 5 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 14 usec deser 6 usec - -Empty PackedInt32Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 32 usec - [JSON]: 2 bytes ser 26 usec deser 4 usec - -Empty PackedInt64Array - Size:0 - [GUS]: 1 bytes ser 19 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 12 usec deser 4 usec - -Empty PackedFloat32Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 27 usec deser 5 usec - -Empty PackedFloat64Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 12 usec deser 5 usec - -Empty PackedStringArray - Size:0 - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 13 usec deser 5 usec - -Empty PackedVector2Array - Size:0 - [GUS]: 1 bytes ser 21 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 29 usec deser 5 usec - -Empty PackedVector3Array - Size:0 - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 15 usec deser 5 usec - -Empty PackedColorArray - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 4 bytes ser 14 usec deser 5 usec - -PackedByteArray - Size:4096 - [GUS]: 4099 bytes ser 14 usec deser 3 usec - [Native]: 4104 bytes ser 5 usec deser 14 usec - [JSON]: 18727 bytes ser 3470 usec deser 1359 usec - -PackedInt32Array - Size:4096 - [GUS]: 16387 bytes ser 14 usec deser 5 usec - [Native]: 16392 bytes ser 40 usec deser 51 usec - [JSON]: 45003 bytes ser 6925 usec deser 1402 usec - -PackedInt64Array - Size:4096 - [GUS]: 32771 bytes ser 17 usec deser 8 usec - [Native]: 32776 bytes ser 71 usec deser 90 usec - [JSON]: 81490 bytes ser 8280 usec deser 1784 usec - -PackedFloat32Array - Size:4096 - [GUS]: 16387 bytes ser 15 usec deser 7 usec - [Native]: 16392 bytes ser 52 usec deser 58 usec - [JSON]: 73706 bytes ser 10798 usec deser 1777 usec - -PackedFloat64Array - Size:4096 - [GUS]: 32771 bytes ser 21 usec deser 8 usec - [Native]: 32776 bytes ser 81 usec deser 102 usec - [JSON]: 80060 bytes ser 11074 usec deser 1916 usec - -PackedStringArray - Size:4096 - [GUS]: 23472 bytes ser 11002 usec deser 1306 usec - [Native]: 48764 bytes ser 4673 usec deser 1933 usec - [JSON]: 31662 bytes ser 14393 usec deser 6405 usec - -PackedVector2Array - Size:4096 - [GUS]: 32771 bytes ser 21 usec deser 54 usec - [Native]: 32776 bytes ser 115 usec deser 155 usec - [JSON]: 89200 bytes ser 25615 usec deser 6728 usec - -PackedVector3Array - Size:4096 - [GUS]: 49155 bytes ser 22 usec deser 59 usec - [Native]: 49160 bytes ser 188 usec deser 204 usec - [JSON]: 129617 bytes ser 35702 usec deser 9644 usec - -PackedColorArray - Size:4096 - [GUS]: 65539 bytes ser 24 usec deser 41 usec - [Native]: 65544 bytes ser 230 usec deser 233 usec - [JSON]: 137434 bytes ser 45701 usec deser 10435 usec - -Empty Array[bool] - Size:0 - [GUS]: 1 bytes ser 13 usec deser 5 usec - [Native]: 8 bytes ser 4 usec deser 7 usec - [JSON]: 2 bytes ser 20 usec deser 8 usec - -Empty Array[int] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 9 usec deser 5 usec - -Empty Array[float] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 5 usec - -Empty Array[String] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[StringName] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 19 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Vector2] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[Vector2i] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[Vector3] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 19 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Vector3i] - Size:0 - [GUS]: 1 bytes ser 28 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 25 usec deser 5 usec - -Empty Array[Vector4] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 26 usec - -Empty Array[Vector4i] - Size:0 - [GUS]: 1 bytes ser 20 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Projection] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Rect2] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Rect2i] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 12 usec deser 6 usec - -Empty Array[Transform2D] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Plane] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Quaternion] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[AABB] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Basis] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 7 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Transform3D] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Color] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[NodePath] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 4 usec - -Empty Array[Dictionary] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedByteArray] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[PackedInt32Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[PackedInt64Array] - Size:0 - [GUS]: 1 bytes ser 7 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 6 usec - -Empty Array[PackedFloat32Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedFloat64Array] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedStringArray] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedVector2Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[PackedVector3Array] - Size:0 - [GUS]: 1 bytes ser 27 usec deser 4 usec - [Native]: 8 bytes ser 4 usec deser 4 usec - [JSON]: 2 bytes ser 25 usec deser 5 usec - -Empty Array[PackedColorArray] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Array[bool] - Size:4096 - [GUS]: 4099 bytes ser 174 usec deser 483 usec - [Native]: 32776 bytes ser 371 usec deser 862 usec - [JSON]: 22489 bytes ser 4573 usec deser 6673 usec - -Array[int] - Size:4096 - [GUS]: 20349 bytes ser 307 usec deser 733 usec - [Native]: 40916 bytes ser 396 usec deser 884 usec - [JSON]: 44016 bytes ser 6665 usec deser 1415 usec - -Array[float] - Size:4096 - [GUS]: 32771 bytes ser 241 usec deser 682 usec - [Native]: 49160 bytes ser 395 usec deser 892 usec - [JSON]: 71205 bytes ser 10624 usec deser 1776 usec - -Array[String] - Size:4096 - [GUS]: 60336 bytes ser 14328 usec deser 3574 usec - [Native]: 97916 bytes ser 6063 usec deser 4316 usec - [JSON]: 68526 bytes ser 14677 usec deser 9917 usec - -Array[StringName] - Size:4096 - [GUS]: 80816 bytes ser 15728 usec deser 8368 usec - [Native]: 114660 bytes ser 7127 usec deser 7744 usec - [JSON]: 89006 bytes ser 14859 usec deser 12014 usec - -Array[Vector2] - Size:4096 - [GUS]: 32771 bytes ser 275 usec deser 707 usec - [Native]: 49160 bytes ser 356 usec deser 993 usec - [JSON]: 108871 bytes ser 30304 usec deser 13520 usec - -Array[Vector2i] - Size:4096 - [GUS]: 32771 bytes ser 279 usec deser 725 usec - [Native]: 49160 bytes ser 347 usec deser 1001 usec - [JSON]: 110355 bytes ser 30188 usec deser 13701 usec - -Array[Vector3] - Size:4096 - [GUS]: 49155 bytes ser 323 usec deser 780 usec - [Native]: 65544 bytes ser 438 usec deser 1246 usec - [JSON]: 157291 bytes ser 38420 usec deser 17914 usec - -Array[Vector3i] - Size:4096 - [GUS]: 49155 bytes ser 309 usec deser 765 usec - [Native]: 65544 bytes ser 409 usec deser 1349 usec - [JSON]: 159449 bytes ser 39000 usec deser 17880 usec - -Array[Vector4] - Size:4096 - [GUS]: 65539 bytes ser 306 usec deser 753 usec - [Native]: 81928 bytes ser 447 usec deser 1147 usec - [JSON]: 205632 bytes ser 46500 usec deser 21697 usec - -Array[Vector4i] - Size:4096 - [GUS]: 65539 bytes ser 308 usec deser 776 usec - [Native]: 81928 bytes ser 430 usec deser 1228 usec - [JSON]: 208552 bytes ser 46064 usec deser 21370 usec - -Array[Projection] - Size:4096 - [GUS]: 262147 bytes ser 664 usec deser 2017 usec - [Native]: 278536 bytes ser 754 usec deser 4059 usec - [JSON]: 787456 bytes ser 205315 usec deser 65828 usec - -Array[Rect2] - Size:4096 - [GUS]: 65539 bytes ser 319 usec deser 860 usec - [Native]: 81928 bytes ser 476 usec deser 1473 usec - [JSON]: 246734 bytes ser 59359 usec deser 24957 usec - -Array[Rect2i] - Size:4096 - [GUS]: 65539 bytes ser 335 usec deser 783 usec - [Native]: 81928 bytes ser 443 usec deser 1328 usec - [JSON]: 249476 bytes ser 58861 usec deser 25123 usec - -Array[Transform2D] - Size:4096 - [GUS]: 98307 bytes ser 369 usec deser 1785 usec - [Native]: 114696 bytes ser 455 usec deser 3035 usec - [JSON]: 363907 bytes ser 82450 usec deser 34703 usec - -Array[Plane] - Size:4096 - [GUS]: 65539 bytes ser 323 usec deser 786 usec - [Native]: 81928 bytes ser 476 usec deser 1457 usec - [JSON]: 238517 bytes ser 52076 usec deser 24104 usec - -Array[Quaternion] - Size:4096 - [GUS]: 65539 bytes ser 307 usec deser 749 usec - [Native]: 81928 bytes ser 450 usec deser 1133 usec - [JSON]: 132285 bytes ser 42360 usec deser 15375 usec - -Array[AABB] - Size:4096 - [GUS]: 98307 bytes ser 336 usec deser 1683 usec - [Native]: 114696 bytes ser 555 usec deser 3063 usec - [JSON]: 343269 bytes ser 75734 usec deser 32661 usec - -Array[Basis] - Size:4096 - [GUS]: 147459 bytes ser 399 usec deser 1700 usec - [Native]: 163848 bytes ser 504 usec deser 3277 usec - [JSON]: 321826 bytes ser 111807 usec deser 30873 usec - -Array[Transform3D] - Size:4096 - [GUS]: 196611 bytes ser 430 usec deser 1910 usec - [Native]: 213000 bytes ser 620 usec deser 3261 usec - [JSON]: 674307 bytes ser 140458 usec deser 75629 usec - -Array[Color] - Size:4096 - [GUS]: 65539 bytes ser 323 usec deser 794 usec - [Native]: 81928 bytes ser 466 usec deser 1239 usec - [JSON]: 140650 bytes ser 56070 usec deser 16271 usec - -Array[NodePath] - Size:4096 - [GUS]: 196611 bytes ser 37758 usec deser 41295 usec - [Native]: 327688 bytes ser 33466 usec deser 30390 usec - [JSON]: 204801 bytes ser 26301 usec deser 21529 usec - -Array[Array] - Size:4096 - [GUS]: 192218 bytes ser 73002 usec deser 29718 usec - [Native]: 319220 bytes ser 29915 usec deser 23864 usec - [JSON]: 388428 bytes ser 129866 usec deser 50159 usec - -Array[Dictionary] - Size:4096 - [GUS]: 229045 bytes ser 91394 usec deser 32654 usec - [Native]: 401192 bytes ser 41261 usec deser 29649 usec - [JSON]: 500707 bytes ser 178698 usec deser 71691 usec - -Array[PackedByteArray] - Size:4096 - [GUS]: 20467 bytes ser 1701 usec deser 6355 usec - [Native]: 49144 bytes ser 1125 usec deser 4015 usec - [JSON]: 87026 bytes ser 32037 usec deser 11987 usec - -Array[PackedInt32Array] - Size:4096 - [GUS]: 135043 bytes ser 6099 usec deser 6396 usec - [Native]: 98248 bytes ser 1167 usec deser 4195 usec - [JSON]: 188019 bytes ser 50042 usec deser 13243 usec - -Array[PackedInt64Array] - Size:4096 - [GUS]: 167779 bytes ser 2342 usec deser 6391 usec - [Native]: 196456 bytes ser 1554 usec deser 4490 usec - [JSON]: 416463 bytes ser 65267 usec deser 16791 usec - -Array[PackedFloat32Array] - Size:4096 - [GUS]: 85939 bytes ser 1948 usec deser 6187 usec - [Native]: 114616 bytes ser 1132 usec deser 4500 usec - [JSON]: 229645 bytes ser 77703 usec deser 14705 usec - -Array[PackedFloat64Array] - Size:4096 - [GUS]: 167779 bytes ser 2701 usec deser 6467 usec - [Native]: 196456 bytes ser 1650 usec deser 5091 usec - [JSON]: 399069 bytes ser 78333 usec deser 16594 usec - -Array[PackedStringArray] - Size:4096 - [GUS]: 73663 bytes ser 34877 usec deser 11118 usec - [Native]: 196456 bytes ser 13536 usec deser 12134 usec - [JSON]: 110497 bytes ser 74116 usec deser 24973 usec - -Array[PackedVector2Array] - Size:4096 - [GUS]: 135043 bytes ser 2321 usec deser 7095 usec - [Native]: 163720 bytes ser 1469 usec deser 5512 usec - [JSON]: 431431 bytes ser 95646 usec deser 39718 usec - -Array[PackedVector3Array] - Size:4096 - [GUS]: 200515 bytes ser 2756 usec deser 6747 usec - [Native]: 229192 bytes ser 2164 usec deser 4958 usec - [JSON]: 624635 bytes ser 128803 usec deser 54449 usec - -Array[PackedColorArray] - Size:4096 - [GUS]: 331459 bytes ser 2359 usec deser 6938 usec - [Native]: 360136 bytes ser 2229 usec deser 5728 usec - [JSON]: 698894 bytes ser 248205 usec deser 59321 usec -``` diff --git a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/README_zh_cn.md b/demo/addons/com.daylily_zeleen.godot_universal_serializer2/README_zh_cn.md deleted file mode 100644 index e30d126..0000000 --- a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/README_zh_cn.md +++ /dev/null @@ -1,674 +0,0 @@ - -# GUS - Godot Universal Serializer 2.1.5 - Godot的通用序列化器 - V2.1.5(Godot 4.1 stable) - -# `master`分支为C++ 源码,可以跳转到`plugin`分支直接查看已编译的插件,也可跳转到发布页面下载匹配您使用版本的插件。 - -![Image text](icon.png) - -[English doc](README.md) <- click here。 - -为序列化尺寸优化而构建的 Godot 4.x 通用序列化器。 -支持除了 `Object`、 `RID`、 `Callable` 以及 `Signal` 以外的 Godot4.x 的所有内建数据类型。 - -# 特点: - 1. 不丢失类型信息。在跨端传送时不需要类型检测和类型强制转换,就像本地传参一般。 - 2. 整形是变长序列化。 - 3. 相比 Godot 的原生序列化方法 `var_to_bytes()` 和转换成`JSON`再转`UTF8`数据, `GUS`的序列化后数据尺寸有显著的减少。尤其适用于多人游戏中需要传输的小型数据结构的序列化。 - 4. 多数情况下效率甚至比原生序列化更高。 - 5. `GDExtension` 插件,具有较高的性能。 - - 可以通过运行名为`GUS_benchmark.gd`的编辑器脚本来查看 `GUS`、`Native` 以及 `JSON` 这三种方式的剧烈话反序列化测试对比。 - -# 如何使用: - 1. 下载发布的插件包,像其他插件一样安装~~和启用~~即可(如果版本不匹配,请自行编译)。 - 2. ~~根据你的需求代码修改名为`GUS`的Autoload的属性.~~ - 3. 传递不包含`Object`、 `OID`、 `Callable`以及 `Signal`的变量给 `GUS.var_to_bytes()`并获取序列化后数据,然后发送给其他网络对等体。 - 4. 远端的网络对等体获取到序列化后数据,传递给`GUS.bytes_to_var()`,即可获得与序列化前相同的变量。 - - -# 注意: - 1. `Array` 和 `Dictionary` 不能包含 `Object`、`RID`、`Callable`以及`Signal`。 - 2. 该参考只编译了`windows`版本,如果您使用其他平台,需要自行构建(因为我没有其他平台的设备进行测试)。 - 3. ~~不同端的`GUS`属性必须保持一致才能正确反序列化。~~ - 4. ~~当前不支持`typeof double real_t`的自定义构建Godot 4.x版本。~~ - 5. ~~当前仅支持`windows`.~~ - - -# TODO: - 1. ~~如果我找到绑定静态方法给`GDScript`的办法,我将抛弃自动加载`GUS`, 改为静态方法的方式去实现功能。~~ - 2. ~~编译`linux`和`osx`版本。~~ - 3. ~~编译`typeof double real_t`版本以支持自定义构建Godot 4.x版本(但我碰上了我无法处理的编译错误)。~~ - 4. ~~处理 `Object`、`RID`、`Callable`以及`Signal`。~~ - 5. 处理大小端。 - - -# 如何编译: - 1. 根据[官方文档](https://docs.godotengine.org/zh_CN/stable/development/compiling/index.html)搭建你的编译环境。 - 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`两种版本。 - 5. 现在,你可以在`\demo\addons\com.daylily_zeleen.godot_universal_serializer`获得该插件,或在`bin\com.daylily_zeleen.godot_universal_serializer.zip`获得打包好的插件。 - (注意:如果你使用`scons`命令进行编译,你只能在`bin`文件夹下得到编译好的动态库。 -# 基准测试 2.1.5: -``` -null - value: - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 4 bytes ser 3 usec deser 3 usec - [JSON]: 4 bytes ser 18 usec deser 9 usec - -bool - value:true - [GUS]: 1 bytes ser 5 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 4 bytes ser 10 usec deser 6 usec - -bool - value:false - [GUS]: 1 bytes ser 4 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 2 usec - [JSON]: 5 bytes ser 9 usec deser 5 usec - -int1 - value:122 - [GUS]: 3 bytes ser 4 usec deser 1 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 3 bytes ser 9 usec deser 3 usec - -int2 - value:23611 - [GUS]: 4 bytes ser 3 usec deser 1 usec - [Native]: 8 bytes ser 3 usec deser 2 usec - [JSON]: 5 bytes ser 9 usec deser 4 usec - -int3 - value:-8016784 - [GUS]: 5 bytes ser 4 usec deser 2 usec - [Native]: 8 bytes ser 2 usec deser 2 usec - [JSON]: 8 bytes ser 23 usec deser 3 usec - -int4 - value:1783875844 - [GUS]: 6 bytes ser 7 usec deser 2 usec - [Native]: 8 bytes ser 4 usec deser 3 usec - [JSON]: 10 bytes ser 59 usec deser 6 usec - -int5 - value:-533449183297 - [GUS]: 7 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 3 usec - [JSON]: 13 bytes ser 21 usec deser 6 usec - -int6 - value:99315901321300 - [GUS]: 8 bytes ser 8 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 3 usec - [JSON]: 14 bytes ser 38 usec deser 7 usec - -int7 - value:17047537962766401 - [GUS]: 9 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 4 usec deser 4 usec - [JSON]: 17 bytes ser 19 usec deser 7 usec - -int8 - value:-8838969341549745360 - [GUS]: 11 bytes ser 21 usec deser 4 usec - [Native]: 12 bytes ser 5 usec deser 4 usec - [JSON]: 20 bytes ser 20 usec deser 21 usec - -float - value:-105.0532 - [GUS]: 9 bytes ser 8 usec deser 3 usec - [Native]: 12 bytes ser 5 usec deser 4 usec - [JSON]: 9 bytes ser 32 usec deser 8 usec - -String - value:test 测试 - [GUS]: 13 bytes ser 35 usec deser 6 usec - [Native]: 20 bytes ser 8 usec deser 7 usec - [JSON]: 13 bytes ser 26 usec deser 12 usec - -StringName - value:TestStringName - [GUS]: 16 bytes ser 17 usec deser 10 usec - [Native]: 24 bytes ser 8 usec deser 23 usec - [JSON]: 16 bytes ser 27 usec deser 25 usec - -Vector2 - value:(-423, 46.8005) - [GUS]: 9 bytes ser 9 usec deser 4 usec - [Native]: 12 bytes ser 6 usec deser 6 usec - [JSON]: 17 bytes ser 42 usec deser 12 usec - -Vector2i - value:(-423, 23611) - [GUS]: 9 bytes ser 7 usec deser 3 usec - [Native]: 12 bytes ser 6 usec deser 5 usec - [JSON]: 15 bytes ser 35 usec deser 12 usec - -Vector3 - value:(52011, -541.3327, 77441) - [GUS]: 13 bytes ser 9 usec deser 5 usec - [Native]: 16 bytes ser 7 usec deser 6 usec - [JSON]: 27 bytes ser 47 usec deser 20 usec - -Vector3i - value:(-423, 23611, 52011) - [GUS]: 13 bytes ser 8 usec deser 3 usec - [Native]: 16 bytes ser 6 usec deser 5 usec - [JSON]: 22 bytes ser 39 usec deser 16 usec - -Vector4 - value:(5211, -541.327, 7441, 1.23) - [GUS]: 17 bytes ser 10 usec deser 4 usec - [Native]: 20 bytes ser 5 usec deser 7 usec - [JSON]: 30 bytes ser 52 usec deser 15 usec - -Vector4i - value:(-42, 49947, 5211, 445) - [GUS]: 17 bytes ser 5 usec deser 2 usec - [Native]: 20 bytes ser 2 usec deser 3 usec - [JSON]: 25 bytes ser 23 usec deser 8 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 6 usec deser 3 usec - [Native]: 68 bytes ser 3 usec deser 6 usec - [JSON]: 110 bytes ser 64 usec deser 14 usec - -Rect2 - value:[P: (56.622, -77.85), S: (8740.237, 441.044)] - [GUS]: 17 bytes ser 5 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 3 usec - [JSON]: 47 bytes ser 33 usec deser 10 usec - -Rect2i - value:[P: (-1731580097, 1577736616), S: (622087478, 177854727)] - [GUS]: 17 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 59 bytes ser 26 usec deser 11 usec - -Transform2D - value:[X: (1, 0), Y: (0, -1), O: (513, 88.5)] - [GUS]: 25 bytes ser 5 usec deser 2 usec - [Native]: 28 bytes ser 3 usec deser 5 usec - [JSON]: 41 bytes ser 35 usec deser 9 usec - -Plane - value:[N: (-0.022075, 0.354495, 0.934797), D: 0.301078] - [GUS]: 17 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 51 bytes ser 31 usec deser 10 usec - -Quaternion - value:(-54.55, 876, 2310, 744) - [GUS]: 17 bytes ser 4 usec deser 3 usec - [Native]: 20 bytes ser 2 usec deser 3 usec - [JSON]: 26 bytes ser 25 usec deser 8 usec - -AABB - value:[P: (-77.85, 8740.237, 441.044), S: (105, 50, 68)] - [GUS]: 25 bytes ser 5 usec deser 3 usec - [Native]: 28 bytes ser 3 usec deser 5 usec - [JSON]: 52 bytes ser 35 usec deser 10 usec - -Basis - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1)] - [GUS]: 37 bytes ser 5 usec deser 3 usec - [Native]: 40 bytes ser 3 usec deser 4 usec - [JSON]: 45 bytes ser 35 usec deser 10 usec - -Transform3D - value:[X: (1, 0, 0), Y: (0, -1, 0), Z: (0, 0, 1), O: (513, -88.5, 105)] - [GUS]: 49 bytes ser 5 usec deser 3 usec - [Native]: 52 bytes ser 3 usec deser 5 usec - [JSON]: 67 bytes ser 48 usec deser 11 usec - -Color - value:(1, 1, 1, 1) - [GUS]: 33 bytes ser 4 usec deser 2 usec - [Native]: 20 bytes ser 3 usec deser 4 usec - [JSON]: 14 bytes ser 27 usec deser 7 usec - -NodePath - value:/root/@EditorNode@17637/@Control@697/@Panel@698 - [GUS]: 49 bytes ser 17 usec deser 20 usec - [Native]: 80 bytes ser 13 usec deser 13 usec - [JSON]: 49 bytes ser 21 usec deser 9 usec - -Array - value:[574, -21, (-423, 46.8005), (0, 1, 1, 1), "acxx"] - [GUS]: 62 bytes ser 16 usec deser 9 usec - [Native]: 68 bytes ser 7 usec deser 11 usec - [JSON]: 49 bytes ser 57 usec deser 16 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]: 175 bytes ser 59 usec deser 21 usec - [Native]: 236 bytes ser 30 usec deser 21 usec - [JSON]: 178 bytes ser 131 usec deser 40 usec - -Empty Array - value:[] - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 4 usec deser 5 usec - [JSON]: 2 bytes ser 12 usec deser 33 usec - -Empty Dictionary - value:{ } - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 4 usec deser 4 usec - [JSON]: 2 bytes ser 44 usec deser 5 usec - -Empty PackedByteArray - Size:0 - [GUS]: 1 bytes ser 5 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 14 usec deser 6 usec - -Empty PackedInt32Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 32 usec - [JSON]: 2 bytes ser 26 usec deser 4 usec - -Empty PackedInt64Array - Size:0 - [GUS]: 1 bytes ser 19 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 12 usec deser 4 usec - -Empty PackedFloat32Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 2 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 27 usec deser 5 usec - -Empty PackedFloat64Array - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 12 usec deser 5 usec - -Empty PackedStringArray - Size:0 - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 2 bytes ser 13 usec deser 5 usec - -Empty PackedVector2Array - Size:0 - [GUS]: 1 bytes ser 21 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 29 usec deser 5 usec - -Empty PackedVector3Array - Size:0 - [GUS]: 1 bytes ser 7 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 5 usec - [JSON]: 4 bytes ser 15 usec deser 5 usec - -Empty PackedColorArray - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 4 bytes ser 14 usec deser 5 usec - -PackedByteArray - Size:4096 - [GUS]: 4099 bytes ser 14 usec deser 3 usec - [Native]: 4104 bytes ser 5 usec deser 14 usec - [JSON]: 18727 bytes ser 3470 usec deser 1359 usec - -PackedInt32Array - Size:4096 - [GUS]: 16387 bytes ser 14 usec deser 5 usec - [Native]: 16392 bytes ser 40 usec deser 51 usec - [JSON]: 45003 bytes ser 6925 usec deser 1402 usec - -PackedInt64Array - Size:4096 - [GUS]: 32771 bytes ser 17 usec deser 8 usec - [Native]: 32776 bytes ser 71 usec deser 90 usec - [JSON]: 81490 bytes ser 8280 usec deser 1784 usec - -PackedFloat32Array - Size:4096 - [GUS]: 16387 bytes ser 15 usec deser 7 usec - [Native]: 16392 bytes ser 52 usec deser 58 usec - [JSON]: 73706 bytes ser 10798 usec deser 1777 usec - -PackedFloat64Array - Size:4096 - [GUS]: 32771 bytes ser 21 usec deser 8 usec - [Native]: 32776 bytes ser 81 usec deser 102 usec - [JSON]: 80060 bytes ser 11074 usec deser 1916 usec - -PackedStringArray - Size:4096 - [GUS]: 23472 bytes ser 11002 usec deser 1306 usec - [Native]: 48764 bytes ser 4673 usec deser 1933 usec - [JSON]: 31662 bytes ser 14393 usec deser 6405 usec - -PackedVector2Array - Size:4096 - [GUS]: 32771 bytes ser 21 usec deser 54 usec - [Native]: 32776 bytes ser 115 usec deser 155 usec - [JSON]: 89200 bytes ser 25615 usec deser 6728 usec - -PackedVector3Array - Size:4096 - [GUS]: 49155 bytes ser 22 usec deser 59 usec - [Native]: 49160 bytes ser 188 usec deser 204 usec - [JSON]: 129617 bytes ser 35702 usec deser 9644 usec - -PackedColorArray - Size:4096 - [GUS]: 65539 bytes ser 24 usec deser 41 usec - [Native]: 65544 bytes ser 230 usec deser 233 usec - [JSON]: 137434 bytes ser 45701 usec deser 10435 usec - -Empty Array[bool] - Size:0 - [GUS]: 1 bytes ser 13 usec deser 5 usec - [Native]: 8 bytes ser 4 usec deser 7 usec - [JSON]: 2 bytes ser 20 usec deser 8 usec - -Empty Array[int] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 9 usec deser 5 usec - -Empty Array[float] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 5 usec - -Empty Array[String] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[StringName] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 19 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Vector2] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[Vector2i] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[Vector3] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 19 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Vector3i] - Size:0 - [GUS]: 1 bytes ser 28 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 25 usec deser 5 usec - -Empty Array[Vector4] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 26 usec - -Empty Array[Vector4i] - Size:0 - [GUS]: 1 bytes ser 20 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Projection] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Rect2] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Rect2i] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 12 usec deser 6 usec - -Empty Array[Transform2D] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Plane] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Quaternion] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[AABB] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Basis] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 7 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Transform3D] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Color] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[NodePath] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 4 usec - -Empty Array[Dictionary] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedByteArray] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[PackedInt32Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 9 usec deser 4 usec - -Empty Array[PackedInt64Array] - Size:0 - [GUS]: 1 bytes ser 7 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 11 usec deser 6 usec - -Empty Array[PackedFloat32Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedFloat64Array] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedStringArray] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Empty Array[PackedVector2Array] - Size:0 - [GUS]: 1 bytes ser 5 usec deser 3 usec - [Native]: 8 bytes ser 2 usec deser 3 usec - [JSON]: 2 bytes ser 11 usec deser 5 usec - -Empty Array[PackedVector3Array] - Size:0 - [GUS]: 1 bytes ser 27 usec deser 4 usec - [Native]: 8 bytes ser 4 usec deser 4 usec - [JSON]: 2 bytes ser 25 usec deser 5 usec - -Empty Array[PackedColorArray] - Size:0 - [GUS]: 1 bytes ser 6 usec deser 4 usec - [Native]: 8 bytes ser 3 usec deser 4 usec - [JSON]: 2 bytes ser 10 usec deser 5 usec - -Array[bool] - Size:4096 - [GUS]: 4099 bytes ser 174 usec deser 483 usec - [Native]: 32776 bytes ser 371 usec deser 862 usec - [JSON]: 22489 bytes ser 4573 usec deser 6673 usec - -Array[int] - Size:4096 - [GUS]: 20349 bytes ser 307 usec deser 733 usec - [Native]: 40916 bytes ser 396 usec deser 884 usec - [JSON]: 44016 bytes ser 6665 usec deser 1415 usec - -Array[float] - Size:4096 - [GUS]: 32771 bytes ser 241 usec deser 682 usec - [Native]: 49160 bytes ser 395 usec deser 892 usec - [JSON]: 71205 bytes ser 10624 usec deser 1776 usec - -Array[String] - Size:4096 - [GUS]: 60336 bytes ser 14328 usec deser 3574 usec - [Native]: 97916 bytes ser 6063 usec deser 4316 usec - [JSON]: 68526 bytes ser 14677 usec deser 9917 usec - -Array[StringName] - Size:4096 - [GUS]: 80816 bytes ser 15728 usec deser 8368 usec - [Native]: 114660 bytes ser 7127 usec deser 7744 usec - [JSON]: 89006 bytes ser 14859 usec deser 12014 usec - -Array[Vector2] - Size:4096 - [GUS]: 32771 bytes ser 275 usec deser 707 usec - [Native]: 49160 bytes ser 356 usec deser 993 usec - [JSON]: 108871 bytes ser 30304 usec deser 13520 usec - -Array[Vector2i] - Size:4096 - [GUS]: 32771 bytes ser 279 usec deser 725 usec - [Native]: 49160 bytes ser 347 usec deser 1001 usec - [JSON]: 110355 bytes ser 30188 usec deser 13701 usec - -Array[Vector3] - Size:4096 - [GUS]: 49155 bytes ser 323 usec deser 780 usec - [Native]: 65544 bytes ser 438 usec deser 1246 usec - [JSON]: 157291 bytes ser 38420 usec deser 17914 usec - -Array[Vector3i] - Size:4096 - [GUS]: 49155 bytes ser 309 usec deser 765 usec - [Native]: 65544 bytes ser 409 usec deser 1349 usec - [JSON]: 159449 bytes ser 39000 usec deser 17880 usec - -Array[Vector4] - Size:4096 - [GUS]: 65539 bytes ser 306 usec deser 753 usec - [Native]: 81928 bytes ser 447 usec deser 1147 usec - [JSON]: 205632 bytes ser 46500 usec deser 21697 usec - -Array[Vector4i] - Size:4096 - [GUS]: 65539 bytes ser 308 usec deser 776 usec - [Native]: 81928 bytes ser 430 usec deser 1228 usec - [JSON]: 208552 bytes ser 46064 usec deser 21370 usec - -Array[Projection] - Size:4096 - [GUS]: 262147 bytes ser 664 usec deser 2017 usec - [Native]: 278536 bytes ser 754 usec deser 4059 usec - [JSON]: 787456 bytes ser 205315 usec deser 65828 usec - -Array[Rect2] - Size:4096 - [GUS]: 65539 bytes ser 319 usec deser 860 usec - [Native]: 81928 bytes ser 476 usec deser 1473 usec - [JSON]: 246734 bytes ser 59359 usec deser 24957 usec - -Array[Rect2i] - Size:4096 - [GUS]: 65539 bytes ser 335 usec deser 783 usec - [Native]: 81928 bytes ser 443 usec deser 1328 usec - [JSON]: 249476 bytes ser 58861 usec deser 25123 usec - -Array[Transform2D] - Size:4096 - [GUS]: 98307 bytes ser 369 usec deser 1785 usec - [Native]: 114696 bytes ser 455 usec deser 3035 usec - [JSON]: 363907 bytes ser 82450 usec deser 34703 usec - -Array[Plane] - Size:4096 - [GUS]: 65539 bytes ser 323 usec deser 786 usec - [Native]: 81928 bytes ser 476 usec deser 1457 usec - [JSON]: 238517 bytes ser 52076 usec deser 24104 usec - -Array[Quaternion] - Size:4096 - [GUS]: 65539 bytes ser 307 usec deser 749 usec - [Native]: 81928 bytes ser 450 usec deser 1133 usec - [JSON]: 132285 bytes ser 42360 usec deser 15375 usec - -Array[AABB] - Size:4096 - [GUS]: 98307 bytes ser 336 usec deser 1683 usec - [Native]: 114696 bytes ser 555 usec deser 3063 usec - [JSON]: 343269 bytes ser 75734 usec deser 32661 usec - -Array[Basis] - Size:4096 - [GUS]: 147459 bytes ser 399 usec deser 1700 usec - [Native]: 163848 bytes ser 504 usec deser 3277 usec - [JSON]: 321826 bytes ser 111807 usec deser 30873 usec - -Array[Transform3D] - Size:4096 - [GUS]: 196611 bytes ser 430 usec deser 1910 usec - [Native]: 213000 bytes ser 620 usec deser 3261 usec - [JSON]: 674307 bytes ser 140458 usec deser 75629 usec - -Array[Color] - Size:4096 - [GUS]: 65539 bytes ser 323 usec deser 794 usec - [Native]: 81928 bytes ser 466 usec deser 1239 usec - [JSON]: 140650 bytes ser 56070 usec deser 16271 usec - -Array[NodePath] - Size:4096 - [GUS]: 196611 bytes ser 37758 usec deser 41295 usec - [Native]: 327688 bytes ser 33466 usec deser 30390 usec - [JSON]: 204801 bytes ser 26301 usec deser 21529 usec - -Array[Array] - Size:4096 - [GUS]: 192218 bytes ser 73002 usec deser 29718 usec - [Native]: 319220 bytes ser 29915 usec deser 23864 usec - [JSON]: 388428 bytes ser 129866 usec deser 50159 usec - -Array[Dictionary] - Size:4096 - [GUS]: 229045 bytes ser 91394 usec deser 32654 usec - [Native]: 401192 bytes ser 41261 usec deser 29649 usec - [JSON]: 500707 bytes ser 178698 usec deser 71691 usec - -Array[PackedByteArray] - Size:4096 - [GUS]: 20467 bytes ser 1701 usec deser 6355 usec - [Native]: 49144 bytes ser 1125 usec deser 4015 usec - [JSON]: 87026 bytes ser 32037 usec deser 11987 usec - -Array[PackedInt32Array] - Size:4096 - [GUS]: 135043 bytes ser 6099 usec deser 6396 usec - [Native]: 98248 bytes ser 1167 usec deser 4195 usec - [JSON]: 188019 bytes ser 50042 usec deser 13243 usec - -Array[PackedInt64Array] - Size:4096 - [GUS]: 167779 bytes ser 2342 usec deser 6391 usec - [Native]: 196456 bytes ser 1554 usec deser 4490 usec - [JSON]: 416463 bytes ser 65267 usec deser 16791 usec - -Array[PackedFloat32Array] - Size:4096 - [GUS]: 85939 bytes ser 1948 usec deser 6187 usec - [Native]: 114616 bytes ser 1132 usec deser 4500 usec - [JSON]: 229645 bytes ser 77703 usec deser 14705 usec - -Array[PackedFloat64Array] - Size:4096 - [GUS]: 167779 bytes ser 2701 usec deser 6467 usec - [Native]: 196456 bytes ser 1650 usec deser 5091 usec - [JSON]: 399069 bytes ser 78333 usec deser 16594 usec - -Array[PackedStringArray] - Size:4096 - [GUS]: 73663 bytes ser 34877 usec deser 11118 usec - [Native]: 196456 bytes ser 13536 usec deser 12134 usec - [JSON]: 110497 bytes ser 74116 usec deser 24973 usec - -Array[PackedVector2Array] - Size:4096 - [GUS]: 135043 bytes ser 2321 usec deser 7095 usec - [Native]: 163720 bytes ser 1469 usec deser 5512 usec - [JSON]: 431431 bytes ser 95646 usec deser 39718 usec - -Array[PackedVector3Array] - Size:4096 - [GUS]: 200515 bytes ser 2756 usec deser 6747 usec - [Native]: 229192 bytes ser 2164 usec deser 4958 usec - [JSON]: 624635 bytes ser 128803 usec deser 54449 usec - -Array[PackedColorArray] - Size:4096 - [GUS]: 331459 bytes ser 2359 usec deser 6938 usec - [Native]: 360136 bytes ser 2229 usec deser 5728 usec - [JSON]: 698894 bytes ser 248205 usec deser 59321 usec -``` diff --git a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/gus.gdextension b/demo/addons/com.daylily_zeleen.godot_universal_serializer2/gus.gdextension deleted file mode 100644 index 0811316..0000000 --- a/demo/addons/com.daylily_zeleen.godot_universal_serializer2/gus.gdextension +++ /dev/null @@ -1,19 +0,0 @@ -[configuration] - -entry_symbol = "gus_library_init" -compatibility_minimum = 4.1 - -[libraries] - -macos.debug = "bin/libgus2.macos.template_debug.framework" -macos.release = "bin/libgus2.macos.template_release.framework" -windows.debug.x86_32 = "bin/libgus2.windows.template_debug.x86_32.dll" -windows.release.x86_32 = "bin/libgus2.windows.template_release.x86_32.dll" -windows.debug.x86_64 = "bin/libgus2.windows.template_debug.x86_64.dll" -windows.release.x86_64 = "bin/libgus2.windows.template_release.x86_64.dll" -linux.debug.x86_64 = "bin/libgus2.linux.template_debug.x86_64.so" -linux.release.x86_64 = "bin/libgus2.linux.template_release.x86_64.so" -android.debug.x86_64 = "bin/libgus2.android.template_debug.x86_64.so" -android.release.x86_64 = "bin/libgus2.android.template_release.x86_64.so" -android.debug.arm64 = "bin/libgus2.android.template_debug.arm64.so" -android.release.arm64 = "bin/libgus2.android.template_release.arm64.so" diff --git a/demo/icon.png b/demo/icon.png deleted file mode 100644 index 2dce082..0000000 Binary files a/demo/icon.png and /dev/null differ diff --git a/demo/icon.png.import b/demo/icon.png.import deleted file mode 100644 index 8da4368..0000000 --- a/demo/icon.png.import +++ /dev/null @@ -1,34 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://fn31cpvle1sw" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] - -[params] - -compress/mode=0 -compress/high_quality=false -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=false -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=1 diff --git a/demo/project.godot b/demo/project.godot deleted file mode 100644 index cbfd088..0000000 --- a/demo/project.godot +++ /dev/null @@ -1,27 +0,0 @@ -; Engine configuration file. -; It's best edited using the editor UI and not directly, -; since the parameters that go here are not all obvious. -; -; Format: -; [section] ; section goes between [] -; param=value ; assign values to parameters - -config_version=5 - -[application] - -config/name="GUS TEST" -config/features=PackedStringArray("4.1") -config/icon="res://icon.png" - -[dotnet] - -project/assembly_name="GUS TEST" - -[editor_plugins] - -enabled=PackedStringArray("res://addons/com.daylily_zeleen.godot_universal_serializer/plugin.cfg") - -[native_extensions] - -paths=["res://example.gdextension"]