Если я открываю FSI и вставьте следующее:F # Interactive Memory Leak
[1..10000000];;
[1..10000000];;
[1..10000000];;
[1..10000000];;
[1..10000000];;
[1..10000000];;
[1..10000000];;
[1..10000000];;
[1..10000000];;
я получаю:
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
То же самое, если я префикс let x =
. Кажется, что ссылки на высший уровень продолжают проводиться, какими бы недоступными они ни были. Есть ли способ очистить эти вещи, не теряя при этом удобства прохождения данных? Прямо сейчас я просто перезагружаюсь, чтобы очистить, но это неудобно.
немного педантическую, но т шляпа не является утечкой памяти, ее просто как функции fsi. – mydogisbox
@mydogisbox Согласно Википедии, «утечка памяти может произойти, когда объект хранится в памяти, но не может быть запущен текущим кодом». «Как он функционирует», в этом случае - утечка памяти. – Lamarth
Ну, если вы выполняете тот же код не в fsi.exe, а в своей собственной исполняемой программе, он будет вести себя одинаково. – Petr