首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在julia中清除或删除全局变量?

如何在julia中清除或删除全局变量?
EN

Stack Overflow用户
提问于 2014-03-26 05:53:10
回答 6查看 27.3K关注 0票数 30

有没有类似于MATLAB的"clear“的语法,比如如果我有一个全局变量"a”。我该怎么摆脱它呢?我如何做模拟

代码语言:javascript
运行
复制
clear a
EN

回答 6

Stack Overflow用户

发布于 2014-03-26 22:08:32

点击这里查看这个问题的最新答案:https://docs.julialang.org/en/v1/manual/faq/#How-do-I-delete-an-object-in-memory%3F

从文档中检索:

MATLAB Julia没有类似

的clear函数;一旦在Julia会话中定义了一个名称(从技术上讲,在module Main中),它总是存在的。

如果您关心内存使用情况,您可以始终将对象替换为使用较少内存的对象。例如,如果A是一个不再需要的千兆字节大小的数组,则可以使用A= 0来释放内存。内存将在下次运行垃圾收集器时释放;您可以使用gc()强制执行此操作。

票数 14
EN

Stack Overflow用户

发布于 2015-06-08 21:07:04

从0.3.9开始,可以通过workspace()函数清除所有全局变量(获得一个新的工作区)。

也可以通过使用LastMain (例如LastMain.foobar)从最后一个工作区获取变量。

因此,目前做你想做的事情的唯一方法是清除所有东西,并将除了你想要的变量之外的所有东西转移到你的新工作区。

票数 10
EN

Stack Overflow用户

发布于 2017-09-08 21:39:40

Julia 0.6 < 1.0

在Julia 0.6中。您可以通过调用clear!()来删除该变量并释放其内存。

你必须呼叫放行!在变量的符号名称上:

代码语言:javascript
运行
复制
julia> x = 5
5

julia> sizeof(x)
8

julia> clear!(:x)

julia> sizeof(x)
0

正如DFN所指出的,这实际上不会删除对象,而是将它们设置为nothing。这对于从您的工作区释放内存非常有用,因为您可以“删除”非常数对象的内存占用。

Julia 1.0+

这在Julia 1.0+中不起作用。如果您使用的是1.0+,则必须将对象设置为Nothing,并让垃圾收集器从那里获取它。这来自官方文档here

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22647105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档