[ 
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)

Reply via email to