Comaprison for string marshalling approaches. * the first one is to convert string to byte[] via String.getBytes() then write raw bytes to row buffer. * the second one (current one) is to use CharsetEncoder and write string directly to row buffer avoiding additional byte[] allocation. -- Reference benchamark for raw byte arrays. Benchmark (dataSize) (fieldsCount) (type) Mode Cnt Score Error Units TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 2 bytes avgt 0.370 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 10 bytes avgt 0.906 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 100 bytes avgt 7.566 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 2 bytes avgt 11.761 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 10 bytes avgt 11.602 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 100 bytes avgt 17.875 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 2 bytes avgt 5.789 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 10 bytes avgt 5.874 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 100 bytes avgt 11.445 us/op -- Latin1 strings. First approach. Benchmark (dataSize) (fieldsCount) (type) Mode Cnt Score Error Units TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 2 string avgt 0.424 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 10 string avgt 1.109 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 100 string avgt 8.865 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 2 string avgt 15.746 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 10 string avgt 15.229 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 100 string avgt 19.623 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 2 string avgt 15.326 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 10 string avgt 14.428 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 100 string avgt 19.079 us/op -- Latin1 strings. First approach. Benchmark (dataSize) (fieldsCount) (type) Mode Cnt Score Error Units TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 2 string avgt 1.329 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 10 string avgt 1.949 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 100 string avgt 9.215 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 2 string avgt 435.366 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 10 string avgt 378.285 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 100 string avgt 272.919 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 2 string avgt 468.960 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 10 string avgt 417.880 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 100 string avgt 240.450 us/op -- Non-latin1 strings. First approach. Benchmark (dataSize) (fieldsCount) (type) Mode Cnt Score Error Units TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 2 string avgt 1.232 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 10 string avgt 1.834 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 100 string avgt 9.270 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 2 string avgt 191.281 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 10 string avgt 192.167 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 100 string avgt 201.926 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 2 string avgt 196.574 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 10 string avgt 197.160 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 100 string avgt 205.009 us/op -- Non-latin1 strings. Second approach. Benchmark (dataSize) (fieldsCount) (type) Mode Cnt Score Error Units TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 2 string avgt 1.883 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 10 string avgt 2.445 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 250 100 string avgt 9.964 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 2 string avgt 707.292 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 10 string avgt 666.904 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 64000 100 string avgt 432.061 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 2 string avgt 729.053 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 10 string avgt 593.664 us/op TupleMarshallerVarlenOnlyBenchmark.measureTupleBuildAndMarshallerCost 66000 100 string avgt 343.405 us/op