You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -40,21 +40,35 @@ The benchmarks were executed on the following system:
40
40
41
41
## RFC 6902 Compliance Test Results
42
42
43
+
The compliance test strictly checks if the output json of each library is consistent with the RFC and if the library performs atomic operations. \
44
+
Many libraries implicitly converts objects into arrays and while this make the compliace test fail it is still fine if you just have to consume the document in PHP.
> **Note:** Libraries that fails this test will be benchmarked as well if no error occurs
54
57
55
-
## Benchmark Results
58
+
## Benchmark Results
59
+
60
+
The following table shows the average time each library took to apply a patch with 1000 operations to a target document as summary of the performance. \
61
+
The actual benchmark data is available [here](https://docs.google.com/spreadsheets/d/1ZTDWh1k-zzhYHqZB3JMD2WRV0bPRIWUMRbLiMJhMLHk/edit?usp=sharing).
Benchmark configuration is located at `./src/config.php`\
109
+
The following constants are available to customize the benchmark behavior:
110
+
111
+
*`THREADS` the number of concurrent processes to spawn. \
112
+
_The benchmark is CPU intensive, do not put a value here higher than your processor logical cores_
113
+
114
+
115
+
*`MAX_PATCHSIZE` the maximum number of operations for a single patch to benchmark
116
+
117
+
118
+
*`ITERATIONS_PER_PATCH` how many times each patch size is benchmarked before moving to the next
119
+
120
+
121
+
*`PATCH_NESTED_LEVEL` the number of tokens of the JSON pointer for each patch operation
122
+
123
+
124
+
*`OUTPUT_FOLDER` folder where the benchmark results will be stored
125
+
126
+
92
127
## Contributing
93
128
94
129
Contributions are welcome! If you know of another JSON Patch library that should be included in these benchmarks or have suggestions for improving the benchmarking process, please open an issue or submit a pull request.
0 commit comments