Как я могу «освободить» переменные в Юлии?

Я кодирую процедуру машинного обучения, которая работает с большими наборами данных и некоторыми другими связанными вычислениями. Поскольку наборы данных могут быть очень большими, некоторые вычисления приводят к очень большим матрицам (например, 29 000 x 29 000 Array {Float64,2}), и им требуется большой объем памяти (ОЗУ). Позже в этой процедуре некоторые элементы (например, начальный набор данных) больше не требуются, но они все еще тратят пространство памяти.

Есть ли способ освободить переменные в какой-то момент? Или вместо этого есть способ поделиться какой-то частью жесткого диска, например, разделом подкачки?

7 голосов | спросил David 4 J0000006Europe/Moscow 2014, 02:41:14

2 ответа


0

Просто, чтобы обернуть это ... типичный подход - переписать объекты, которые излишне потребляют память, на объекты, которые требуют очень мало памяти. Взято из FAQ (как указано выше):

  

Например, если A - это массив размером в гигабайты, который вам больше не нужен, вы можете освободить память с A = 0. Память будет освобождена при следующем запуске сборщика мусора; Вы можете заставить это произойти с помощью gc ().

Если вы хотите создать новое рабочее пространство (т.е. очистить все переменные), это делается с помощью

    workspace()
ответил Kino 23 J0000006Europe/Moscow 2015, 01:44:34
0

Вы также можете запустить сборщик мусора Джулии (чтобы удалить вещи, которые в конечном итоге будут удалены): gc ()

ответил Zack 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 02:49:06 +0300000000amTue, 02 Feb 2016 02:49:06 +030016 2016, 02:49:06

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132