# FMOD Studio 2.03.08 – memory never released after each scripting terminal evaluation (TCP 3663)

**URL:** <https://qa.fmod.com/t/fmod-studio-2-03-08-memory-never-released-after-each-scripting-terminal-evaluation-tcp-3663/24592>\
**Category:** FMOD Studio\
**Created:** [November 3, 2026, 11:21am UTC](https://qa.fmod.com/t/fmod-studio-2-03-08-memory-never-released-after-each-scripting-terminal-evaluation-tcp-3663/24592 "2026-11-03T11:21:17Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Vincent59](https://avatars.discourse-cdn.com/v4/letter/v/35a633/32.png) [@Vincent59](https://qa.fmod.com/u/Vincent59)\
**Post date:** [November 3, 2026, 11:21am UTC](https://qa.fmod.com/t/fmod-studio-2-03-08-memory-never-released-after-each-scripting-terminal-evaluation-tcp-3663/24592/1 "2026-11-03T11:21:17Z")

</div>

FMOD Studio 2.03.08 – memory never released after each scripting terminal evaluation (TCP 3663)

Environment: FMOD Studio 2.03.08 (64-bit, Qt 6.5.3, build #153137), Windows 11 Pro (22000), 32 GB RAM.

Summary  
Every expression evaluated through the scripting terminal port (3663) grows Studio’s private memory by  
about 12-20 KB, and this memory is never released: not by studio.\_internal.runGC(), not by  
Scripts \> Reload, not by closing the TCP connection. Only quitting Studio frees it.  
Our tool polls Studio’s profiler state 20 times per second (cursor/playhead sync with a video player),  
which grew Studio by ~1.2 GB per hour. Over a work day this exhausted Windows’ commit memory and froze  
the machine (Resource-Exhaustion-Detector events listing FMOD Studio.exe at up to 12.7 GB).

Steps to reproduce

1. Open any project in Studio 2.03.08.

2. Run this Python 3 script (standard library only):

3. Watch FMOD Studio’s commit size (Task Manager \> Details \> Commit size).

Measurements (same Studio instance)

- 5,000 evaluations of “1”: +58 MB (~12 KB each)
- 20,000 evaluations of a small JSON.stringify(…): +387 MB (~20 KB each)
- Polling at 20 Hz: ~19 MB/min; at 5 Hz: 4.7 MB/min; no polling: 0 MB/min
- studio.\_internal.runGC(): no change
- Scripts \> Reload (menu): no change (993 → 996 MB).  
studio.window.triggerAction(studio.window.actions.ScriptReload) is refused  
(“does not support the ScriptReload action”).
- Closing the socket: no change

Expected: memory used by an evaluation is released once it completes, or at least by GC / script reload.

Question: is there a supported way to follow profiler session state (cursor, playhead, recording)  
without polling, e.g. a callback a script can register to push changes to a terminal client?

---

<div class="post-metadata">

**Author:** ![Connor\_FMOD](https://yyz2.discourse-cdn.com/flex036/user_avatar/qa.fmod.com/connor_fmod/32/3685_2.png) [@Connor\_FMOD](https://qa.fmod.com/u/Connor_FMOD)\
**Post date:** [November 4, 2026, 1:46am UTC](https://qa.fmod.com/t/fmod-studio-2-03-08-memory-never-released-after-each-scripting-terminal-evaluation-tcp-3663/24592/2 "2026-11-04T01:46:21Z")

</div>

Hi,

Thank you for bringing this to our attention. I have tried the code and cannot see an increase in the commit size within task manager. I increased the loop count to 100k → 1 million but did not see any increase in commit size.

I may be missing something to reproduce the issue? I have tried both 2.03.08 and 2.03.15 and our set ups are very similar.
