- Notifications
You must be signed in to change notification settings - Fork65
Commit98fd158
committed
Optimization for grapheme iteration.
Typical text involves a lot of chars one-after-another thatare in a similar scalar value range and in the same category. Thiscommit takes advantage of that to speed up grapheme iteration bycaching the range and category of the last char, and always checkingagainst that cache first before doing a binary search on the wholegrapheme category table.This results in significant speed ups on many texts, in some casesup to 2x faster.1 parentac54e2d commit98fd158
File tree
5 files changed
+89
-46
lines changed- scripts
- src
5 files changed
+89
-46
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
280 | 280 | | |
281 | 281 | | |
282 | 282 | | |
283 | | - | |
| 283 | + | |
284 | 284 | | |
285 | 285 | | |
286 | 286 | | |
287 | 287 | | |
288 | 288 | | |
289 | 289 | | |
290 | 290 | | |
291 | | - | |
292 | | - | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
293 | 300 | | |
294 | | - | |
295 | 301 | | |
296 | 302 | | |
297 | 303 | | |
298 | | - | |
| 304 | + | |
299 | 305 | | |
300 | 306 | | |
301 | 307 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
178 | 178 | | |
179 | 179 | | |
180 | 180 | | |
| 181 | + | |
| 182 | + | |
181 | 183 | | |
182 | 184 | | |
183 | 185 | | |
| |||
276 | 278 | | |
277 | 279 | | |
278 | 280 | | |
| 281 | + | |
279 | 282 | | |
280 | 283 | | |
281 | 284 | | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
282 | 295 | | |
283 | 296 | | |
284 | 297 | | |
| |||
349 | 362 | | |
350 | 363 | | |
351 | 364 | | |
352 | | - | |
| 365 | + | |
353 | 366 | | |
354 | 367 | | |
355 | 368 | | |
| |||
359 | 372 | | |
360 | 373 | | |
361 | 374 | | |
362 | | - | |
| 375 | + | |
363 | 376 | | |
364 | 377 | | |
365 | 378 | | |
| |||
393 | 406 | | |
394 | 407 | | |
395 | 408 | | |
396 | | - | |
| 409 | + | |
397 | 410 | | |
398 | 411 | | |
399 | 412 | | |
| |||
413 | 426 | | |
414 | 427 | | |
415 | 428 | | |
416 | | - | |
| 429 | + | |
417 | 430 | | |
418 | 431 | | |
419 | 432 | | |
420 | 433 | | |
421 | 434 | | |
422 | | - | |
| 435 | + | |
423 | 436 | | |
424 | 437 | | |
425 | 438 | | |
| |||
481 | 494 | | |
482 | 495 | | |
483 | 496 | | |
484 | | - | |
| 497 | + | |
485 | 498 | | |
486 | 499 | | |
487 | 500 | | |
| |||
497 | 510 | | |
498 | 511 | | |
499 | 512 | | |
500 | | - | |
| 513 | + | |
501 | 514 | | |
502 | 515 | | |
503 | 516 | | |
| |||
562 | 575 | | |
563 | 576 | | |
564 | 577 | | |
565 | | - | |
| 578 | + | |
566 | 579 | | |
567 | 580 | | |
568 | 581 | | |
569 | 582 | | |
570 | 583 | | |
571 | 584 | | |
572 | | - | |
| 585 | + | |
573 | 586 | | |
574 | 587 | | |
575 | 588 | | |
| |||
578 | 591 | | |
579 | 592 | | |
580 | 593 | | |
581 | | - | |
| 594 | + | |
582 | 595 | | |
583 | 596 | | |
584 | 597 | | |
| |||
644 | 657 | | |
645 | 658 | | |
646 | 659 | | |
647 | | - | |
| 660 | + | |
648 | 661 | | |
649 | 662 | | |
650 | 663 | | |
| |||
654 | 667 | | |
655 | 668 | | |
656 | 669 | | |
657 | | - | |
| 670 | + | |
658 | 671 | | |
659 | 672 | | |
660 | 673 | | |
661 | 674 | | |
662 | | - | |
| 675 | + | |
663 | 676 | | |
664 | 677 | | |
665 | 678 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
| 118 | + | |
119 | 119 | | |
120 | 120 | | |
121 | 121 | | |
| |||
182 | 182 | | |
183 | 183 | | |
184 | 184 | | |
185 | | - | |
| 185 | + | |
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
345 | 345 | | |
346 | 346 | | |
347 | 347 | | |
348 | | - | |
| 348 | + | |
349 | 349 | | |
350 | 350 | | |
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
354 | 354 | | |
355 | 355 | | |
356 | | - | |
357 | | - | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
358 | 365 | | |
359 | | - | |
360 | 366 | | |
361 | 367 | | |
362 | 368 | | |
363 | | - | |
| 369 | + | |
364 | 370 | | |
365 | 371 | | |
366 | 372 | | |
| |||
980 | 986 | | |
981 | 987 | | |
982 | 988 | | |
983 | | - | |
| 989 | + | |
984 | 990 | | |
985 | 991 | | |
986 | 992 | | |
987 | 993 | | |
988 | 994 | | |
989 | 995 | | |
990 | 996 | | |
991 | | - | |
992 | | - | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
993 | 1006 | | |
994 | | - | |
995 | 1007 | | |
996 | 1008 | | |
997 | 1009 | | |
998 | | - | |
| 1010 | + | |
999 | 1011 | | |
1000 | 1012 | | |
1001 | 1013 | | |
| |||
1439 | 1451 | | |
1440 | 1452 | | |
1441 | 1453 | | |
1442 | | - | |
| 1454 | + | |
1443 | 1455 | | |
1444 | 1456 | | |
1445 | 1457 | | |
1446 | 1458 | | |
1447 | 1459 | | |
1448 | 1460 | | |
1449 | 1461 | | |
1450 | | - | |
1451 | | - | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
1452 | 1471 | | |
1453 | | - | |
1454 | 1472 | | |
1455 | 1473 | | |
1456 | 1474 | | |
1457 | | - | |
| 1475 | + | |
1458 | 1476 | | |
1459 | 1477 | | |
1460 | 1478 | | |
| |||
1535 | 1553 | | |
1536 | 1554 | | |
1537 | 1555 | | |
1538 | | - | |
| 1556 | + | |
1539 | 1557 | | |
1540 | 1558 | | |
1541 | 1559 | | |
1542 | 1560 | | |
1543 | 1561 | | |
1544 | 1562 | | |
1545 | 1563 | | |
1546 | | - | |
1547 | | - | |
| 1564 | + | |
| 1565 | + | |
| 1566 | + | |
| 1567 | + | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
1548 | 1573 | | |
1549 | | - | |
1550 | 1574 | | |
1551 | 1575 | | |
1552 | 1576 | | |
1553 | | - | |
| 1577 | + | |
1554 | 1578 | | |
1555 | 1579 | | |
1556 | 1580 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
| 128 | + | |
129 | 129 | | |
130 | 130 | | |
131 | 131 | | |
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
167 | | - | |
| 167 | + | |
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| |||
391 | 391 | | |
392 | 392 | | |
393 | 393 | | |
394 | | - | |
| 394 | + | |
395 | 395 | | |
396 | 396 | | |
397 | 397 | | |
| |||
533 | 533 | | |
534 | 534 | | |
535 | 535 | | |
536 | | - | |
| 536 | + | |
537 | 537 | | |
538 | 538 | | |
539 | 539 | | |
| |||
624 | 624 | | |
625 | 625 | | |
626 | 626 | | |
627 | | - | |
| 627 | + | |
628 | 628 | | |
629 | 629 | | |
630 | 630 | | |
| |||
635 | 635 | | |
636 | 636 | | |
637 | 637 | | |
638 | | - | |
| 638 | + | |
639 | 639 | | |
640 | 640 | | |
641 | 641 | | |
| |||
0 commit comments
Comments
(0)