[
https://issues.apache.org/jira/browse/IGNITE-24038?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17906650#comment-17906650
]
Ivan Bessonov commented on IGNITE-24038:
----------------------------------------
Results are mostly visible in following cases:
* short strings
* ASCII strings
* small number of columns
There's too much fluctuation in other cases, with no visible improvements or
degradations
Before:
{noformat}
Benchmark
(character) (dataSize) (fieldsCount) (type) Mode Cnt Score
Error Units
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 250 2 PREDEFINED_STRING avgt 20 0.498 ± 0.016
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 250 10 PREDEFINED_STRING avgt 20 1.418 ± 0.102
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 250 100 PREDEFINED_STRING avgt 20 12.907 ± 1.436
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 64000 2 PREDEFINED_STRING avgt 20 15.699 ± 0.789
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 64000 10 PREDEFINED_STRING avgt 20 15.971 ± 0.676
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 64000 100 PREDEFINED_STRING avgt 20 25.853 ± 1.280
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 66000 2 PREDEFINED_STRING avgt 20 15.962 ± 0.536
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 66000 10 PREDEFINED_STRING avgt 20 15.776 ± 0.543
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 66000 100 PREDEFINED_STRING avgt 20 26.140 ± 1.239
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 250 2 PREDEFINED_STRING avgt 20 0.707 ± 0.062
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 250 10 PREDEFINED_STRING avgt 20 1.788 ± 0.126
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 250 100 PREDEFINED_STRING avgt 20 12.813 ± 1.060
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 64000 2 PREDEFINED_STRING avgt 20 59.809 ± 4.710
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 64000 10 PREDEFINED_STRING avgt 20 57.558 ± 3.222
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 64000 100 PREDEFINED_STRING avgt 20 64.131 ± 5.388
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 66000 2 PREDEFINED_STRING avgt 20 94.396 ± 11.496
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 66000 10 PREDEFINED_STRING avgt 20 86.280 ± 6.008
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 66000 100 PREDEFINED_STRING avgt 20 65.233 ± 6.452
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 250 2 PREDEFINED_STRING avgt 20 0.840 ± 0.076
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 250 10 PREDEFINED_STRING avgt 20 1.712 ± 0.139
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 250 100 PREDEFINED_STRING avgt 20 10.714 ± 0.636
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 64000 2 PREDEFINED_STRING avgt 20 80.581 ± 3.812
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 64000 10 PREDEFINED_STRING avgt 20 72.638 ± 5.612
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 64000 100 PREDEFINED_STRING avgt 20 87.390 ± 4.255
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 66000 2 PREDEFINED_STRING avgt 20 85.694 ± 7.318
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 66000 10 PREDEFINED_STRING avgt 20 79.962 ± 5.914
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 66000 100 PREDEFINED_STRING avgt 20 88.072 ± 7.219
us/op{noformat}
After:
{noformat}
Benchmark
(character) (dataSize) (fieldsCount) (type) Mode Cnt Score
Error Units
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 250 2 PREDEFINED_STRING avgt 20 0.438 ± 0.015
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 250 10 PREDEFINED_STRING avgt 20 1.175 ± 0.095
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 250 100 PREDEFINED_STRING avgt 20 11.034 ± 0.787
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 64000 2 PREDEFINED_STRING avgt 20 8.719 ± 0.735
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 64000 10 PREDEFINED_STRING avgt 20 9.011 ± 0.368
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 64000 100 PREDEFINED_STRING avgt 20 18.896 ± 1.470
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 66000 2 PREDEFINED_STRING avgt 20 8.717 ± 0.697
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 66000 10 PREDEFINED_STRING avgt 20 8.971 ± 0.597
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
a 66000 100 PREDEFINED_STRING avgt 20 20.234 ± 0.755
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 250 2 PREDEFINED_STRING avgt 20 0.674 ± 0.019
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 250 10 PREDEFINED_STRING avgt 20 1.594 ± 0.141
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 250 100 PREDEFINED_STRING avgt 20 12.879 ± 0.725
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 64000 2 PREDEFINED_STRING avgt 20 59.058 ± 2.645
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 64000 10 PREDEFINED_STRING avgt 20 59.983 ± 3.967
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 64000 100 PREDEFINED_STRING avgt 20 63.452 ± 1.991
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 66000 2 PREDEFINED_STRING avgt 20 97.175 ± 5.943
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 66000 10 PREDEFINED_STRING avgt 20 86.479 ± 4.171
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
ж 66000 100 PREDEFINED_STRING avgt 20 66.857 ± 5.153
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 250 2 PREDEFINED_STRING avgt 20 0.778 ± 0.063
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 250 10 PREDEFINED_STRING avgt 20 1.556 ± 0.100
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 250 100 PREDEFINED_STRING avgt 20 11.038 ± 0.521
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 64000 2 PREDEFINED_STRING avgt 20 77.487 ± 4.029
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 64000 10 PREDEFINED_STRING avgt 20 72.840 ± 1.818
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 64000 100 PREDEFINED_STRING avgt 20 85.687 ± 6.392
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 66000 2 PREDEFINED_STRING avgt 20 85.365 ± 2.926
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 66000 10 PREDEFINED_STRING avgt 20 77.414 ± 3.179
us/op
TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost
我 66000 100 PREDEFINED_STRING avgt 20 88.073 ± 3.473
us/op{noformat}
> Optimize marshaling according to TupleMarshallerVarlenOnlyBenchmark
> -------------------------------------------------------------------
>
> Key: IGNITE-24038
> URL: https://issues.apache.org/jira/browse/IGNITE-24038
> Project: Ignite
> Issue Type: Improvement
> Reporter: Ivan Bessonov
> Assignee: Ivan Bessonov
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> There are a few things that could be easily optimized:
> * Some string manipulations in column names are obviously inefficient
> * Adding string to binary tuple always leads to array allocation, it might
> be avoided
> *
> {{BinaryTupleSchema.createKeySchema}} is called for every tuple, but it's
> always the same
--
This message was sent by Atlassian Jira
(v8.20.10#820010)