diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-21 09:42:26 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-21 09:42:26 +0900 |
| commit | 1be106ac53caa019a8912af932a43570fa8c052d (patch) | |
| tree | 09cdabe6b2cb5af4ce20656ed37a52ae66b278b5 /backend/game | |
| parent | aa25d66376f30c590c697a2c7eb981a24e1057bb (diff) | |
| download | phperkaigi-2026-albatross-1be106ac53caa019a8912af932a43570fa8c052d.tar.gz phperkaigi-2026-albatross-1be106ac53caa019a8912af932a43570fa8c052d.tar.zst phperkaigi-2026-albatross-1be106ac53caa019a8912af932a43570fa8c052d.zip | |
perf(game): compile whitespace regex once at package level
Move regexp.MustCompile out of CalcCodeSize to avoid recompiling
on every call.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'backend/game')
| -rw-r--r-- | backend/game/hub.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/backend/game/hub.go b/backend/game/hub.go index 9c193f2..8c0a574 100644 --- a/backend/game/hub.go +++ b/backend/game/hub.go @@ -20,6 +20,8 @@ type TaskWorkerInterface interface { Results() chan taskqueue.TaskResult } +var whitespaceRe = regexp.MustCompile(`\s+`) + type Hub struct { q db.Querier txm db.TxManager @@ -50,8 +52,7 @@ func (hub *Hub) Run() { } func (hub *Hub) CalcCodeSize(code string, language string) int { - re := regexp.MustCompile(`\s+`) - trimmed := re.ReplaceAllString(code, "") + trimmed := whitespaceRe.ReplaceAllString(code, "") if language == "php" { return len(strings.TrimSuffix(strings.TrimPrefix(strings.TrimPrefix(trimmed, "<?php"), "<?"), "?>")) } |
