尝试通过将Collection
列表直接传递给Models
或使用Collection.reset
来尝试实例化6000ms
时遇到了性能障碍。使用4800 Models
初始化它需要大约Collection.models
,每个属性大约有200个属性。这不是很大,所以开始时有点令人惊讶,但是我想通过将models
直接设置为Collection.length
数组来加快速度,并将length
设置为reset
。
问题,除了初始排序之外,这两种方法之间的区别是什么以及资源花费在哪里?我使用getscore <- function(www0) {
require(rvest)
require(dplyr)
www <- html(www0)
boxscore <- www %>% html_table(fill = TRUE) %>% .[[1]]
names(boxscore)[3] <- "VG"
names(boxscore)[5] <- "HG"
names(boxscore)[6] <- "Type"
return(boxscore)
}
初始化Collection,因此无需删除模型上的事件处理程序或清理任何内容。
使用案例:
尝试显示具有无限滚动的表,其中每一行都是Model,而Collection是行的集合。每行可以有大约200列。这是一个静态表,除了包含复选框的单个列。模特没有做任何事情。
答案 0 :(得分:2)
收藏品比models
和length
更多。
直接分配时,我们绕过了集合定义的任何其他行为(排序,存在检查等)。 reset
和构造函数(最终委托给reset
)都使用集合的重载set
方法来确保添加与集合设计行为一致的新模型。
如果模型始终为reset
(即,未单独添加或删除),则直接分配可能没问题,但如果模型不是set
,则某些集合功能可能会出现意外行为。