R Under development (unstable) (2024-01-23 r85822 ucrt) -- "Unsuffered Consequences" Copyright (C) 2024 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > library("R.oo") Loading required package: R.methodsS3 R.methodsS3 v1.8.2 (2022-06-13 22:00:14 UTC) successfully loaded. See ?R.methodsS3 for help. R.oo v1.26.0 successfully loaded. See ?R.oo for help. Attaching package: 'R.oo' The following object is masked from 'package:R.methodsS3': throw The following objects are masked from 'package:methods': getClasses, getMethods The following objects are masked from 'package:base': attach, detach, load, save > > oopts <- options(warn=1L) > > message("TESTING: finalize() on Object ...") TESTING: finalize() on Object ... > > setConstructorS3("MyClass", function() { + extend(Object(), "MyClass") + }) > > setMethodS3("finalize", "MyClass", function(this, ...) { + cat(as.character(this), "is about to be removed from the memory!\n") + }) NULL > > o <- MyClass() > o <- MyClass() > o <- MyClass() > o <- MyClass() > gc() MyClass: 0x000001cee5c34ea0 is about to be removed from the memory! MyClass: 0x000001cee5c1ea78 is about to be removed from the memory! MyClass: 0x000001cee741c1f0 is about to be removed from the memory! used (Mb) gc trigger (Mb) max used (Mb) Ncells 395846 21.2 814050 43.5 633877 33.9 Vcells 740943 5.7 8388608 64.0 2002881 15.3 > > ## MyClass: 0x01BE602C is about to be removed from the memory! > ## MyClass: 0x01BFF634 is about to be removed from the memory! > ## MyClass: 0x01C13584 is about to be removed from the memory! > ## used (Mb) gc trigger (Mb) > ## Ncells 229903 6.2 467875 12.5 > ## Vcells 53725 0.5 786432 6.0 > > rm(o) > ## MyClass: 0x01C578B0 is about to be removed from the memory! > ## used (Mb) gc trigger (Mb) > ## Ncells 229903 6.1 467875 12.3 > ## Vcells 53725 0.5 786432 6.0 > > message("TESTING: finalize() on Object ... DONE") TESTING: finalize() on Object ... DONE > > options(oopts) > > proc.time() user system elapsed 0.28 0.09 0.36