我在S3和S4类的上下文中进行了一些分析,并观察了以下内容:
与相应普通列表上的相同操作相比,对S3对象元素的简单值赋值大约慢2-3倍.
从我的角度来看,S3类是一个带有附加属性的列表,元素只是一个数字.那么,哪些机制消耗额外的时间?
value <- 1
obj_list <- list( a = 0 )
obj_s3 <- structure( obj_list, class = "myclass" )
system.time(
replicate( 100000, obj_list$a <- value)
) # ~180 ms
system.time(
replicate( 100000, obj_s3$a <- value)
) # ~420 ms
Run Code Online (Sandbox Code Playgroud)