Commit 3d94d83
Optimize ReadPackedVarint
Count the number of varints before allocating in ReadPackedVarint.
This is pretty cheap, so we save more on avoiding realloctions.
BM_ParsePacked/1 524.2Mi ± 2% 532.2Mi ± 2% +1.53% (p=0.041 n=6)
BM_ParsePacked/8 758.2Mi ± 2% 1163.7Mi ± 1% +53.48% (p=0.002 n=6)
BM_ParsePacked/64 1.582Gi ± 2% 2.656Gi ± 2% +67.94% (p=0.002 n=6)
BM_ParsePacked/512 2.014Gi ± 3% 3.377Gi ± 4% +67.66% (p=0.002 n=6)
BM_ParsePacked/4k 2.009Gi ± 2% 3.358Gi ± 2% +67.10% (p=0.002 n=6)
BM_ParsePacked/32k 1.882Gi ± 2% 3.151Gi ± 3% +67.46% (p=0.002 n=6)
BM_ParsePacked/256k 1.338Gi ± 15% 2.408Gi ± 8% +80.03% (p=0.002 n=6)
Memory usage is also 25% lower
BM_ParsePacked/1 192.0 ± 0% 192.0 ± 0% ~ (p=1.000 n=6) ¹
BM_ParsePacked/8 2.048k ± 0% 1.568k ± 0% -23.44% (p=0.002 n=6)
BM_ParsePacked/64 16.19k ± 0% 12.05k ± 0% -25.59% (p=0.002 n=6)
BM_ParsePacked/512 130.69k ± 0% 98.69k ± 0% -24.49% (p=0.002 n=6)
BM_ParsePacked/4k 1048.6k ± 0% 795.9k ± 0% -24.10% (p=0.002 n=6)
BM_ParsePacked/32k 8.045M ± 0% 5.677M ± 0% -29.43% (p=0.002 n=6)
BM_ParsePacked/256k 64.01M ± 0% 44.67M ± 0% -30.21% (p=0.002 n=6)
PiperOrigin-RevId: 8134304571 parent 76c2b20 commit 3d94d83
File tree
2 files changed
+99
-14
lines changed- src/google/protobuf
2 files changed
+99
-14
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1225 | 1225 | | |
1226 | 1226 | | |
1227 | 1227 | | |
1228 | | - | |
1229 | | - | |
1230 | | - | |
1231 | | - | |
1232 | | - | |
1233 | | - | |
1234 | | - | |
1235 | | - | |
1236 | | - | |
1237 | | - | |
1238 | | - | |
1239 | | - | |
1240 | | - | |
1241 | | - | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
1242 | 1245 | | |
1243 | 1246 | | |
1244 | 1247 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
260 | 260 | | |
261 | 261 | | |
262 | 262 | | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
263 | 268 | | |
264 | 269 | | |
265 | 270 | | |
| |||
1362 | 1367 | | |
1363 | 1368 | | |
1364 | 1369 | | |
| 1370 | + | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
| 1376 | + | |
| 1377 | + | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
| 1391 | + | |
| 1392 | + | |
| 1393 | + | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
1365 | 1447 | | |
1366 | 1448 | | |
1367 | 1449 | | |
| |||
0 commit comments