2014-03-25 3 views

ответ

7

Смотрите последний ответ на этот вопрос здесь: http://docs.julialang.org/en/latest/manual/faq/#how-do-i-delete-an-object-in-memory

Получено из документации:

Julia does not have an analog of MATLAB’s clear function; once a name is defined in a Julia session (technically, in module Main), it is always present.

If memory usage is your concern, you can always replace objects with ones that consume less memory. For example, if A is a gigabyte-sized array that you no longer need, you can free the memory with A = 0. The memory will be released the next time the garbage collector runs; you can force this to happen with gc().

9

По состоянию на 0,3 .9, можно очистить все глобальные переменные (получить новое рабочее пространство) через функцию workspace().

Также можно получить переменные из последней рабочей области, используя LastMain (например, LastMain.foobar).

Так что в настоящее время единственный способ сделать то, что вы хотите, - это очистить все и передать все, кроме переменной, которую вы хотите создать в новом рабочем пространстве.

5

В Julia 0.6 (не уверен, поддерживает ли эта версия более старая версия или нет). Вы можете удалить переменную и освободить ее память, вызвав clear!().

Вы должны позвонить ясно! на символическом имени переменной:

julia> x = 5 
5 

julia> sizeof(x) 
8 

julia> clear!(:x) 

julia> sizeof(x) 
0 

Как DFN отметил, что это не будет фактически удалить объекты, но установить их на nothing. Это полезно для освобождения памяти из рабочей области, поскольку вы можете «удалить» объем памяти для непостоянных объектов.

+1

Это интересно, но, к сожалению, оно не полностью очищено. Значение просто устанавливается на 'nothing'. Например, вы не можете выполнить 'julia> const x = 3', потому что тогда вы получите' ERROR: не можете объявить x константой; он уже имеет значение'. – DNF

+0

Достаточно честный. Я решил, что это полезно для освобождения некоторой памяти от не постоянных объектов. – niczky12

+0

Это абсолютно полезно, и, я думаю, это близко к официальному решению, которое есть. У него просто эта слабость. И это было ново для меня :) – DNF

1

Абсолютно clear! (: X) не работает с julia 0.6.0 в блокноте (IJulia)! В качестве альтернативы вы можете использовать x = 0.

Смежные вопросы