Frontmatter
| id | 8551 |
| title | Refactor TicketCanvas: Performance optimization and cleanup |
| state | Closed |
| labels | airefactoringperformance |
| assignees | tobiu |
| createdAt | Jan 11, 2026, 5:49 PM |
| updatedAt | Jan 11, 2026, 5:52 PM |
| githubUrl | https://github.com/neomjs/neo/issues/8551 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | 8398 |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Jan 11, 2026, 5:52 PM |
Refactor TicketCanvas: Performance optimization and cleanup
tobiu assigned to @tobiu on Jan 11, 2026, 5:51 PM

tobiu
Jan 11, 2026, 5:51 PM
Input from Gemini 3 Pro:
✦ Refactoring complete.
- Memory Optimization: Replaced
me.render.bind(me)with a singleme.renderLoopinstance, eliminating per-frame allocation.- Code Cleanup: Extracted physics and color constants to file-level
const.- Documentation: Added explanatory comments to
initGraphregarding polling behavior.- Performance: Verified render loop efficiency.
tobiu added parent issue #8398 on Jan 11, 2026, 5:52 PM
tobiu closed this issue on Jan 11, 2026, 5:52 PM
Optimize
apps/portal/canvas/TicketCanvas.mjsto resolve identified technical debt.setTimeout(me.render.bind(me), ...)with a pre-boundthis.renderLoopto prevent garbage collection pressure.influenceRange,minMod,maxMod; Colors:neoBlue) intostatic configor file-level constants.initGraphexplaining the polling logic (waiting forOffscreenCanvastransfer).