summaryrefslogtreecommitdiffstats
path: root/src/network/socket/qabstractsocket.h
diff options
context:
space:
mode:
authorMilian Wolff <milian.wolff@kdab.com>2014-12-22 18:25:13 +0100
committerSérgio Martins <sergio.martins@kdab.com>2015-08-13 16:53:45 +0000
commit194403a3483b7317cc9511bc8b2ab307775643c5 (patch)
treecc223d55f395e24d8f74c9cf371ac02fe0b48256 /src/network/socket/qabstractsocket.h
parent807ec8ea48281d5dbe365895fd9679da5b6753a5 (diff)
Remove temporary string allocations when reading prepared statement.
Instead, we use the binary MySQL encoding and copy the data directly into the QVariant of the desired type. This gets rid of the temporary string allocations and greatly improves the performance of the added benchmark. On my machine, the results are: Before: 0.562 msecs per iteration (total: 563, iterations: 1000) 1,922,479.330 instructions per iteration (total: 1,922,479,330, iterations: 1000) After: 0.381 msecs per iteration (total: 381, iterations: 1000) 774,132.957 instructions per iteration (total: 774,132,958, iterations: 1000) Note that the same could be applied to floating point data types in the future. Additionally, special support for MYSQL_TIME structure coult be added to get rid of the string conversions there. To ensure everything keeps working, a new auto test is added as well that verifies the select statements and insertions of integral data into a MySql table works as intended. [ChangeLog][QtSql] Improve performance when reading integer values from MySQL databases via prepared statements. Change-Id: I21dd9277661971ded934546f09535014b63f8eb8 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/network/socket/qabstractsocket.h')
0 files changed, 0 insertions, 0 deletions