如果我在计算 属性 中创建模型, ember 会泄漏内存吗?
Will ember leak memory if I create a Model in a computed property?
我正在创建一个 "scrambler",它接受一个文本数组和一个图像数组,然后将叉积计算为推文。我担心的函数如下所示:
combinations: (->
tweet_texts = @get('tweet_texts')
tweet_images = @get('tweet_images')
# return empty array unless we have texts
return Em.A([]) unless tweet_texts.length
# handle the case when we don't have images
unless tweet_images.length
combinations = tweet_texts.map (text) =>
TwitterPost.create
text : text
newtwork_user : @get('account.twitter_handle')
return Em.A(combinations)
# handle texts and images
combinations = tweet_images.map (image) =>
tweet_texts.map (text) =>
TwitterPost.create
text : text
image : image
network_user : @get('account.twitter_handle')
return Em.A([].concat(combinations...))
).property('tweet_texts.@each','tweet_images.@each')
我担心的是我创建了很多模型,但我并不真正了解 Ember 的垃圾收集。
那么,我这里是否存在内存泄漏的风险?
谢谢!
Ember 不执行任何类型的垃圾收集。在一些涉及 DOM 的实例中,它确实删除了它对项目的引用以确保它被垃圾收集。
Ember 不会创建对使用 Foo.create() 创建的对象的任何类型的全局引用。因此,当不再有对该对象的引用并且您的浏览器决定它有心情收集时,它将被收集。
将其设为计算 属性 类似于将其设为任何对象的 属性。一旦对象不再被引用,它就会被标记为收集,属性也会随之而来。
我正在创建一个 "scrambler",它接受一个文本数组和一个图像数组,然后将叉积计算为推文。我担心的函数如下所示:
combinations: (->
tweet_texts = @get('tweet_texts')
tweet_images = @get('tweet_images')
# return empty array unless we have texts
return Em.A([]) unless tweet_texts.length
# handle the case when we don't have images
unless tweet_images.length
combinations = tweet_texts.map (text) =>
TwitterPost.create
text : text
newtwork_user : @get('account.twitter_handle')
return Em.A(combinations)
# handle texts and images
combinations = tweet_images.map (image) =>
tweet_texts.map (text) =>
TwitterPost.create
text : text
image : image
network_user : @get('account.twitter_handle')
return Em.A([].concat(combinations...))
).property('tweet_texts.@each','tweet_images.@each')
我担心的是我创建了很多模型,但我并不真正了解 Ember 的垃圾收集。
那么,我这里是否存在内存泄漏的风险?
谢谢!
Ember 不执行任何类型的垃圾收集。在一些涉及 DOM 的实例中,它确实删除了它对项目的引用以确保它被垃圾收集。
Ember 不会创建对使用 Foo.create() 创建的对象的任何类型的全局引用。因此,当不再有对该对象的引用并且您的浏览器决定它有心情收集时,它将被收集。
将其设为计算 属性 类似于将其设为任何对象的 属性。一旦对象不再被引用,它就会被标记为收集,属性也会随之而来。