Project1

标题: 请问下释放窗口是不是就是关闭窗口的意思啊? [打印本页]

作者: taeckle    时间: 2021-7-5 06:20
标题: 请问下释放窗口是不是就是关闭窗口的意思啊?
经常在 def main 看到注释释放窗口四个字,请问下释放窗口是不是就是关闭当前窗口的意思啊?
作者: RyanBern    时间: 2021-7-5 09:25
更准确来说是删除窗口并释放该窗口占用的内存资源。这样执行后窗口会立即消失,看着像关闭了。
作者: 喵呜喵5    时间: 2021-7-5 12:50
表现上是关闭窗口

但从概念上来看,被关闭的窗口可以重新打开
而被释放的窗口表示这个窗口以后再也用不到了,需要的时候必须重新创建一个新的

  1. def hello
  2.   a = 123456789
  3. end
  4. hello
复制代码


就像这个 hello 方法里面的 a 一样,hello 方法执行完,这个 a 就再也用不到了,这个 a 就可以释放了,释放了的 a 也不再占用内存存着了
程序代码自动把用不上的 a 释放掉的功能叫“垃圾回收(GC)”,ruby 支持垃圾回收

而窗口精灵这些不是 ruby 自带的,所以 ruby 没法自动垃圾回收,
因此需要手动调用释放来通知程序这个变量再也用不到可以回收了

如果一个变量再也用不到了,但是又没有代码通知程序这个变量可以回收,那么程序占用的内存就会因为这些用不到的变量而越来越大,这就是“内存泄漏”




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1