Commit 3283b55
committed
fix: reduce canvas and bitmap memory by lazy-caching grids and shrinking scroll buffer
- Remove eager bitmap.cache() from _createGrid() — 8 grids were each
allocating a 1200x900x4 (~4.3 MB) backing canvas at startup even
though at most 1 grid is visible at a time (~35 MB wasted)
- Add cache(0,0,1200,900) in _show*() methods so grids are only cached
when made visible, and uncache() in _hide*() to free the backing
canvas immediately when hidden
- Skip trashed blocks in clearCache() to avoid re-creating backing
canvases for invisible blocks on every theme/resize event
- Uncache trashed block containers in sendStackToTrash() and delete
their blockArt/blockCollapseArt SVG strings to free memory
- Cap trashStacks undo history at 100 entries to prevent unbounded
growth during long editing sessions
- Reduce scroll canvas from 3x to 2x viewport dimensions in
doScrollXY(), saving ~40 MB at 1920x1080 (75 MB -> 33 MB)
- Update scroll boundary clamps to match the new 2x canvas size
Estimated RAM savings: ~70-120 MB depending on viewport size and
number of trashed blocks.1 parent 81cefcb commit 3283b55
3 files changed
+62
-25
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2665 | 2665 | | |
2666 | 2666 | | |
2667 | 2667 | | |
2668 | | - | |
| 2668 | + | |
| 2669 | + | |
| 2670 | + | |
| 2671 | + | |
2669 | 2672 | | |
2670 | 2673 | | |
2671 | 2674 | | |
2672 | 2675 | | |
2673 | 2676 | | |
2674 | | - | |
2675 | 2677 | | |
2676 | 2678 | | |
2677 | 2679 | | |
| |||
4269 | 4271 | | |
4270 | 4272 | | |
4271 | 4273 | | |
| 4274 | + | |
| 4275 | + | |
| 4276 | + | |
| 4277 | + | |
| 4278 | + | |
4272 | 4279 | | |
4273 | 4280 | | |
4274 | 4281 | | |
| |||
5427 | 5434 | | |
5428 | 5435 | | |
5429 | 5436 | | |
5430 | | - | |
| 5437 | + | |
5431 | 5438 | | |
5432 | 5439 | | |
5433 | 5440 | | |
| |||
5436 | 5443 | | |
5437 | 5444 | | |
5438 | 5445 | | |
| 5446 | + | |
5439 | 5447 | | |
5440 | 5448 | | |
5441 | 5449 | | |
| |||
5445 | 5453 | | |
5446 | 5454 | | |
5447 | 5455 | | |
5448 | | - | |
| 5456 | + | |
5449 | 5457 | | |
5450 | 5458 | | |
5451 | 5459 | | |
| |||
5454 | 5462 | | |
5455 | 5463 | | |
5456 | 5464 | | |
| 5465 | + | |
5457 | 5466 | | |
5458 | 5467 | | |
5459 | 5468 | | |
| |||
5514 | 5523 | | |
5515 | 5524 | | |
5516 | 5525 | | |
5517 | | - | |
| 5526 | + | |
5518 | 5527 | | |
5519 | 5528 | | |
5520 | 5529 | | |
| |||
5524 | 5533 | | |
5525 | 5534 | | |
5526 | 5535 | | |
| 5536 | + | |
5527 | 5537 | | |
5528 | 5538 | | |
5529 | 5539 | | |
| |||
5573 | 5583 | | |
5574 | 5584 | | |
5575 | 5585 | | |
5576 | | - | |
| 5586 | + | |
5577 | 5587 | | |
5578 | 5588 | | |
5579 | 5589 | | |
| |||
5583 | 5593 | | |
5584 | 5594 | | |
5585 | 5595 | | |
| 5596 | + | |
5586 | 5597 | | |
5587 | 5598 | | |
5588 | 5599 | | |
| |||
5631 | 5642 | | |
5632 | 5643 | | |
5633 | 5644 | | |
5634 | | - | |
| 5645 | + | |
5635 | 5646 | | |
5636 | 5647 | | |
5637 | 5648 | | |
| |||
5640 | 5651 | | |
5641 | 5652 | | |
5642 | 5653 | | |
| 5654 | + | |
5643 | 5655 | | |
5644 | 5656 | | |
5645 | 5657 | | |
| |||
5689 | 5701 | | |
5690 | 5702 | | |
5691 | 5703 | | |
5692 | | - | |
| 5704 | + | |
5693 | 5705 | | |
5694 | 5706 | | |
5695 | 5707 | | |
| |||
5703 | 5715 | | |
5704 | 5716 | | |
5705 | 5717 | | |
| 5718 | + | |
5706 | 5719 | | |
5707 | 5720 | | |
5708 | 5721 | | |
| |||
5752 | 5765 | | |
5753 | 5766 | | |
5754 | 5767 | | |
5755 | | - | |
| 5768 | + | |
5756 | 5769 | | |
5757 | 5770 | | |
5758 | 5771 | | |
| |||
5761 | 5774 | | |
5762 | 5775 | | |
5763 | 5776 | | |
| 5777 | + | |
5764 | 5778 | | |
5765 | 5779 | | |
5766 | 5780 | | |
| |||
5810 | 5824 | | |
5811 | 5825 | | |
5812 | 5826 | | |
5813 | | - | |
| 5827 | + | |
5814 | 5828 | | |
5815 | 5829 | | |
5816 | 5830 | | |
| |||
5820 | 5834 | | |
5821 | 5835 | | |
5822 | 5836 | | |
| 5837 | + | |
5823 | 5838 | | |
5824 | 5839 | | |
5825 | 5840 | | |
| |||
7796 | 7811 | | |
7797 | 7812 | | |
7798 | 7813 | | |
7799 | | - | |
7800 | | - | |
7801 | | - | |
7802 | | - | |
7803 | | - | |
| 7814 | + | |
| 7815 | + | |
| 7816 | + | |
| 7817 | + | |
| 7818 | + | |
| 7819 | + | |
7804 | 7820 | | |
7805 | 7821 | | |
7806 | 7822 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6921 | 6921 | | |
6922 | 6922 | | |
6923 | 6923 | | |
| 6924 | + | |
| 6925 | + | |
| 6926 | + | |
| 6927 | + | |
| 6928 | + | |
| 6929 | + | |
| 6930 | + | |
6924 | 6931 | | |
6925 | 6932 | | |
6926 | 6933 | | |
| |||
6966 | 6973 | | |
6967 | 6974 | | |
6968 | 6975 | | |
| 6976 | + | |
| 6977 | + | |
| 6978 | + | |
| 6979 | + | |
| 6980 | + | |
| 6981 | + | |
| 6982 | + | |
| 6983 | + | |
| 6984 | + | |
| 6985 | + | |
| 6986 | + | |
| 6987 | + | |
| 6988 | + | |
| 6989 | + | |
| 6990 | + | |
6969 | 6991 | | |
6970 | 6992 | | |
6971 | 6993 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1358 | 1358 | | |
1359 | 1359 | | |
1360 | 1360 | | |
1361 | | - | |
1362 | | - | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
1363 | 1365 | | |
1364 | 1366 | | |
1365 | 1367 | | |
1366 | 1368 | | |
1367 | | - | |
1368 | | - | |
| 1369 | + | |
| 1370 | + | |
1369 | 1371 | | |
1370 | 1372 | | |
1371 | 1373 | | |
| |||
1375 | 1377 | | |
1376 | 1378 | | |
1377 | 1379 | | |
| 1380 | + | |
1378 | 1381 | | |
1379 | | - | |
1380 | | - | |
1381 | | - | |
| 1382 | + | |
1382 | 1383 | | |
1383 | 1384 | | |
1384 | | - | |
1385 | | - | |
1386 | | - | |
| 1385 | + | |
1387 | 1386 | | |
1388 | 1387 | | |
1389 | 1388 | | |
| |||
0 commit comments