1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-01 06:27:03 +03:00

More RTREE performance optimizations related to decoding values.

FossilOrigin-Name: c5395e7496d0cd593f5e16ee5f6719d020dc0c66
This commit is contained in:
drh
2017-02-01 02:25:28 +00:00
parent 35497fccbe
commit 14494fa712
3 changed files with 24 additions and 8 deletions

View File

@ -370,12 +370,20 @@ static int readInt16(u8 *p){
return (p[0]<<8) + p[1]; return (p[0]<<8) + p[1];
} }
static void readCoord(u8 *p, RtreeCoord *pCoord){ static void readCoord(u8 *p, RtreeCoord *pCoord){
#if defined(SQLITE_BYTEORDER) && SQLITE_BYTEORDER==1234
memcpy(&pCoord->u, p, 4);
pCoord->u = ((pCoord->u>>24)&0xff)|((pCoord->u>>8)&0xff00)|
((pCoord->u&0xff)<<24)|((pCoord->u&0xff00)<<8);
#elif defined(SQLITE_BYTEORDER) && SQLITE_BYTEORDER==4321
memcpy(&pCoord->u, p, 4);
#else
pCoord->u = ( pCoord->u = (
(((u32)p[0]) << 24) + (((u32)p[0]) << 24) +
(((u32)p[1]) << 16) + (((u32)p[1]) << 16) +
(((u32)p[2]) << 8) + (((u32)p[2]) << 8) +
(((u32)p[3]) << 0) (((u32)p[3]) << 0)
); );
#endif
} }
static i64 readInt64(u8 *p){ static i64 readInt64(u8 *p){
return ( return (
@ -736,13 +744,21 @@ static void nodeGetCell(
){ ){
u8 *pData; u8 *pData;
RtreeCoord *pCoord; RtreeCoord *pCoord;
int ii; int ii = 0;
pCell->iRowid = nodeGetRowid(pRtree, pNode, iCell); pCell->iRowid = nodeGetRowid(pRtree, pNode, iCell);
pData = pNode->zData + (12 + pRtree->nBytesPerCell*iCell); pData = pNode->zData + (12 + pRtree->nBytesPerCell*iCell);
pCoord = pCell->aCoord; pCoord = pCell->aCoord;
do{
readCoord(pData, &pCoord[ii]);
readCoord(pData+4, &pCoord[ii+1]);
pData += 8;
ii += 2;
}while( ii<pRtree->nDim*2 );
#if 0
for(ii=0; ii<pRtree->nDim*2; ii++){ for(ii=0; ii<pRtree->nDim*2; ii++){
readCoord(&pData[ii*4], &pCoord[ii]); readCoord(&pData[ii*4], &pCoord[ii]);
} }
#endif
} }

View File

@ -1,5 +1,5 @@
C Improved\scomments\son\sthe\sstatGet()\simplementation\sin\sANALYZE.\s\sNo\schanges\nto\scode. C More\sRTREE\sperformance\soptimizations\srelated\sto\sdecoding\svalues.
D 2017-02-01T01:34:15.043 D 2017-02-01T02:25:28.535
F Makefile.in 5f415e7867296d678fed2e6779aea10c1318b4bc F Makefile.in 5f415e7867296d678fed2e6779aea10c1318b4bc
F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da F Makefile.msc b8ca53350ae545e3562403d5da2a69cec79308da
@ -264,7 +264,7 @@ F ext/rbu/sqlite3rbu.c bb0de6cdbdb14a7d55a097238a434b7e99caf318
F ext/rbu/sqlite3rbu.h 6fb6294c34a9ca93b5894a33bca530c6f08decba F ext/rbu/sqlite3rbu.h 6fb6294c34a9ca93b5894a33bca530c6f08decba
F ext/rbu/test_rbu.c 5aa22616afac6f71ebd3d9bc9bf1006cfabcca88 F ext/rbu/test_rbu.c 5aa22616afac6f71ebd3d9bc9bf1006cfabcca88
F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761 F ext/rtree/README 6315c0d73ebf0ec40dedb5aa0e942bc8b54e3761
F ext/rtree/rtree.c 81fea8b100c6195f8a42119109d6ec2016e613f3 F ext/rtree/rtree.c f66b3d232ea98285548107caaac55f110a0b6709
F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e F ext/rtree/rtree.h 834dbcb82dc85b2481cde6a07cdadfddc99e9b9e
F ext/rtree/rtree1.test 42dadfc7b44a436cd74a1bebc0b9b689e4eaf7ec F ext/rtree/rtree1.test 42dadfc7b44a436cd74a1bebc0b9b689e4eaf7ec
F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba F ext/rtree/rtree2.test acbb3a4ce0f4fbc2c304d2b4b784cfa161856bba
@ -1549,7 +1549,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
P 0bf7b51896ec441f62490964c7a44a3c75c6b7e2 P 9663eea2a16bb4eec71476d307a3722a768308c3
R bb550435b988e435dcc2fd1779602487 R 5d2055e5a67aa8455e161eeb4945e6a1
U drh U drh
Z 36c251bda157d6101f2fb97842697f89 Z 3923bc85bfbb1c570a9230cd663fc66b

View File

@ -1 +1 @@
9663eea2a16bb4eec71476d307a3722a768308c3 c5395e7496d0cd593f5e16ee5f6719d020dc0c66