Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

load_all(reset = FALSE): locked binding #237

Open
kummerer94 opened this issue Mar 8, 2023 · 12 comments
Open

load_all(reset = FALSE): locked binding #237

kummerer94 opened this issue Mar 8, 2023 · 12 comments

Comments

@kummerer94
Copy link

Hello,

I want to report the following bug / weird behaviour:

  1. I do pkgload::load_all() once.
  2. Then I change something in any file. Just a small change.
  3. Then I try to run pkgload::load_all(reset = FALSE).
  4. I get this error:
Error in `load_all()`:
! Failed to load R/test.R
Caused by error:
! cannot change value of locked binding for 'test'
Run `rlang::last_error()` to see where the error occurred.
  • I can reproduce this in any R repository and it does not depend on my actual code. Even if I only place on R file in my package (see below), I still get this error.

R file:

test <- function() {
	message("THIS IS MY TEST")
	message("HIER")
}

I have pkgload version 1.3.2 installed. I also tested it with the current development version of the repository here and it produced the same error. I suspect there to be a problem with the recently changed way of locking the bindings when doing pkgload::load_all() but I am by no means an expert.

I would appreciate any kind of help greatly and I am happy to help to reproduce this issue. Thanks!

@lionel-
Copy link
Member

lionel- commented Mar 8, 2023

Can you post a sessionInfo() please?

@kummerer94
Copy link
Author

Of course, sorry for not including that in the first place.

R version 4.2.2 (2022-10-31 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)

Matrix products: default

locale:
[1] LC_COLLATE=English_Germany.utf8  LC_CTYPE=English_Germany.utf8    LC_MONETARY=English_Germany.utf8 LC_NUMERIC=C                     LC_TIME=English_Germany.utf8

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base

other attached packages:
[1] MyPackage_1.0.0   httpuv_1.6.9        keyring_1.3.1       AzureKeyVault_1.0.5

loaded via a namespace (and not attached):
 [1] AzureGraph_1.3.2   AzureAuth_1.3.3    Rcpp_1.0.10        AzureRMR_2.4.3     magrittr_2.0.3     rappdirs_0.3.3     pkgload_1.3.2.9000 R6_2.5.1           rlang_1.0.6
[10] tools_4.2.2        pkgbuild_1.4.0     data.table_1.14.8  cli_3.6.0          withr_2.5.0        assertthat_0.2.1   rprojroot_2.0.3    crayon_1.5.2       processx_3.8.0
[19] callr_3.7.3        later_1.3.0        promises_1.2.0.1   ps_1.7.2           compiler_4.2.2     desc_1.4.2         prettyunits_1.1.1  renv_0.15.4

@lionel-
Copy link
Member

lionel- commented Mar 9, 2023

So that's with a recent version of R. I'm not sure how to help since I can't reproduce.

@lionel-
Copy link
Member

lionel- commented Mar 9, 2023

oops sorry now I see the reset = FALSE, I'll take a look.

@lionel-
Copy link
Member

lionel- commented Mar 9, 2023

Why are you using reset = FALSE by the way? If it ends up being broken and almost no one noticed, maybe we should remove that option.

@kummerer94
Copy link
Author

I am working with a large package daily and this option speeds up pkgload::load_all() from 10-12 seconds to 1-2 seconds which makes the development experience much nicer.

@lionel-
Copy link
Member

lionel- commented Mar 9, 2023

When did this command start breaking for you?

You can try out my WIP at r-lib/pkgload@fix-lock. But I kept finding out new issues with this approach. For instance with purrr:

Warning messages:
1: failed to assign RegisteredNativeSymbol for coerce_impl to coerce_impl since coerce_impl is already defined in the ‘purrr’ namespace 

I work with large packages too without issues. Could you maybe profile a load_all() to see where the time is spent? Maybe we can fix the reset = TRUE path, because I'm tempted to just deprecate reset = FALSE given that it's a completely different code path to support, including all the different edge cases a package can have.

@kummerer94
Copy link
Author

You can try out my WIP at r-lib/pkgload@fix-lock.

For me, your fix seems to have done the trick (we are not using purrr). But I do understand your concern and also the amount of work necessary to maintain a feature that (apparently) only a few people really use.

I will profile our package and let you know the results. Maybe something special about our package setup makes it slow.

@kummerer94
Copy link
Author

Sorry, forgot about this:

When did this command start breaking for you?

I think we recently upgraded pkgload and version 1.3.0 was probably the point when the problem first occurred.

@kummerer94
Copy link
Author

This is the result from the profiling I did:

$by.self
                                  self.time self.pct total.time total.pct
"parse"                                0.82    10.99       0.84     11.26
"lazyLoadDBfetch"                      0.68     9.12       0.72      9.65
"is"                                   0.42     5.63       1.70     22.79
"readLines"                            0.38     5.09       0.40      5.36
"stopifnot"                            0.34     4.56       0.54      7.24
".getClassesFromCache"                 0.22     2.95       0.22      2.95
"getClassDef"                          0.20     2.68       0.46      6.17
".resetInheritedMethods"               0.18     2.41       0.52      6.97
"FUN"                                  0.18     2.41       0.44      5.90
"...elt"                               0.18     2.41       0.18      2.41
"as.list"                              0.18     2.41       0.18      2.41
"doTryCatch"                           0.16     2.14       6.94     93.03
"<Anonymous>"                          0.12     1.61       2.34     31.37
"validObject"                          0.12     1.61       0.50      6.70
".identC"                              0.12     1.61       0.12      1.61
"paste"                                0.10     1.34       0.12      1.61
"length"                               0.10     1.34       0.10      1.34
"initialize"                           0.08     1.07       1.12     15.01
"@<-"                                  0.08     1.07       0.08      1.07
"gettext"                              0.08     1.07       0.08      1.07
".getGeneric"                          0.06     0.80       0.30      4.02
".mergeMethodsTable"                   0.06     0.80       0.22      2.95
"readRDS"                              0.06     0.80       0.12      1.61
".methodPackageSlots"                  0.06     0.80       0.10      1.34
"exists"                               0.06     0.80       0.10      1.34
"get"                                  0.06     0.80       0.10      1.34
".getMethodsTable"                     0.06     0.80       0.08      1.07
"structure"                            0.06     0.80       0.08      1.07
"class"                                0.06     0.80       0.06      0.80
"file.exists"                          0.06     0.80       0.06      0.80
"gzfile"                               0.06     0.80       0.06      0.80
"inDL"                                 0.06     0.80       0.06      0.80
"tryCatchList"                         0.04     0.54       6.94     93.03
"tryCatchOne"                          0.04     0.54       6.94     93.03
"eval"                                 0.04     0.54       3.48     46.65
"getGeneric"                           0.04     0.54       0.40      5.36
"setGeneric"                           0.04     0.54       0.34      4.56
"asMethod"                             0.04     0.54       0.22      2.95
"matchSignature"                       0.04     0.54       0.18      2.41
".MakeSignature"                       0.04     0.54       0.16      2.14
"getSlots"                             0.04     0.54       0.14      1.88
"remove"                               0.04     0.54       0.14      1.88
".cacheClass"                          0.04     0.54       0.10      1.34
"methodsPackageMetaName"               0.04     0.54       0.06      0.80
"unique.default"                       0.04     0.54       0.06      0.80
".requirePackage"                      0.04     0.54       0.04      0.54
"assign"                               0.04     0.54       0.04      0.54
"class<-"                              0.04     0.54       0.04      0.54
"grepl"                                0.04     0.54       0.04      0.54
"isFALSE"                              0.04     0.54       0.04      0.54
"matchDefaults"                        0.04     0.54       0.04      0.54
"read.dcf"                             0.04     0.54       0.04      0.54
"tryCatch"                             0.02     0.27       6.94     93.03
"methods::cacheMetaData"               0.02     0.27       1.68     22.52
"asMethodDefinition"                   0.02     0.27       0.74      9.92
"makeGeneric"                          0.02     0.27       0.32      4.29
"unique"                               0.02     0.27       0.22      2.95
"makeExtends"                          0.02     0.27       0.20      2.68
"body<-"                               0.02     0.27       0.18      2.41
"setDataPart"                          0.02     0.27       0.18      2.41
"extends"                              0.02     0.27       0.14      1.88
".combineExtends"                      0.02     0.27       0.12      1.61
".matchSigLength"                      0.02     0.27       0.12      1.61
"makePrototypeFromClassDef"            0.02     0.27       0.12      1.61
"reconcilePropertiesAndPrototype"      0.02     0.27       0.12      1.61
"as.function"                          0.02     0.27       0.10      1.34
"registerS3methods"                    0.02     0.27       0.10      1.34
".getGenericSigLength"                 0.02     0.27       0.08      1.07
"classGeneratorFunction"               0.02     0.27       0.08      1.07
"srcfilecopy"                          0.02     0.27       0.08      1.07
".findInheritedMethods"                0.02     0.27       0.06      0.80
"order"                                0.02     0.27       0.06      0.80
"setdiff"                              0.02     0.27       0.06      0.80
"%in%"                                 0.02     0.27       0.04      0.54
".addToMetaTable"                      0.02     0.27       0.04      0.54
".getGenericFromCacheTable"            0.02     0.27       0.04      0.54
"get0"                                 0.02     0.27       0.04      0.54
"getClass"                             0.02     0.27       0.04      0.54
"grep"                                 0.02     0.27       0.04      0.54
"slot"                                 0.02     0.27       0.04      0.54
"sub"                                  0.02     0.27       0.04      0.54
".assignMethodsTableMetaData"          0.02     0.27       0.02      0.27
".findAll"                             0.02     0.27       0.02      0.27
".fixPackageSlot"                      0.02     0.27       0.02      0.27
".noMlists"                            0.02     0.27       0.02      0.27
".Primitive"                           0.02     0.27       0.02      0.27
".registerS3method"                    0.02     0.27       0.02      0.27
"[.data.frame"                         0.02     0.27       0.02      0.27
"all"                                  0.02     0.27       0.02      0.27
"as.environment"                       0.02     0.27       0.02      0.27
"as.function.default"                  0.02     0.27       0.02      0.27
"as.vector"                            0.02     0.27       0.02      0.27
"attr"                                 0.02     0.27       0.02      0.27
"basename"                             0.02     0.27       0.02      0.27
"bindTranslations"                     0.02     0.27       0.02      0.27
"cb$putcode"                           0.02     0.27       0.02      0.27
"duplicated"                           0.02     0.27       0.02      0.27
"environment"                          0.02     0.27       0.02      0.27
"file"                                 0.02     0.27       0.02      0.27
"formals<-"                            0.02     0.27       0.02      0.27
"getDataPart"                          0.02     0.27       0.02      0.27
"getOption"                            0.02     0.27       0.02      0.27
"gsub"                                 0.02     0.27       0.02      0.27
"is.list"                              0.02     0.27       0.02      0.27
"isBaseNamespace"                      0.02     0.27       0.02      0.27
"isS4"                                 0.02     0.27       0.02      0.27
"list2env"                             0.02     0.27       0.02      0.27
"mget"                                 0.02     0.27       0.02      0.27
"packageSlot<-"                        0.02     0.27       0.02      0.27
"setup_handlers"                       0.02     0.27       0.02      0.27
"Sys.getenv"                           0.02     0.27       0.02      0.27
"sys.parent"                           0.02     0.27       0.02      0.27

$by.total
                                   total.time total.pct self.time self.pct
"devtools::load_all"                     7.46    100.00      0.00     0.00
"pkgload::load_all"                      7.46    100.00      0.00     0.00
"doTryCatch"                             6.94     93.03      0.16     2.14
"tryCatchList"                           6.94     93.03      0.04     0.54
"tryCatchOne"                            6.94     93.03      0.04     0.54
"tryCatch"                               6.94     93.03      0.02     0.27
"load_code"                              4.70     63.00      0.00     0.00
".External"                              4.66     62.47      0.00     0.00
"force"                                  4.66     62.47      0.00     0.00
"source_many"                            4.66     62.47      0.00     0.00
"source_one"                             4.66     62.47      0.00     0.00
"try_fetch"                              4.66     62.47      0.00     0.00
"withCallingHandlers"                    4.66     62.47      0.00     0.00
"withr_with_dir"                         4.66     62.47      0.00     0.00
"eval"                                   3.48     46.65      0.04     0.54
"<Anonymous>"                            2.34     31.37      0.12     1.61
"do.call"                                2.24     30.03      0.00     0.00
"load_imports"                           2.22     29.76      0.00     0.00
"loadNamespace"                          2.22     29.76      0.00     0.00
"requireNamespace"                       2.22     29.76      0.00     0.00
"check_installed"                        2.20     29.49      0.00     0.00
"deps_check_installed"                   2.20     29.49      0.00     0.00
"detect_installed"                       2.20     29.49      0.00     0.00
"flatten_lgl"                            2.20     29.49      0.00     0.00
"mapply"                                 2.20     29.49      0.00     0.00
"pmap"                                   2.20     29.49      0.00     0.00
"setMethod"                              1.96     26.27      0.00     0.00
"is"                                     1.70     22.79      0.42     5.63
"methods::cacheMetaData"                 1.68     22.52      0.02     0.27
".updateMethodsInTable"                  1.58     21.18      0.00     0.00
"namespaceImportFrom"                    1.44     19.30      0.00     0.00
"asNamespace"                            1.38     18.50      0.00     0.00
"initialize"                             1.12     15.01      0.08     1.07
"new"                                    1.04     13.94      0.00     0.00
"setClass"                               1.00     13.40      0.00     0.00
"parse"                                  0.84     11.26      0.82    10.99
"asMethodDefinition"                     0.74      9.92      0.02     0.27
"lazyLoadDBfetch"                        0.72      9.65      0.68     9.12
"try"                                    0.60      8.04      0.00     0.00
"stopifnot"                              0.54      7.24      0.34     4.56
".resetInheritedMethods"                 0.52      6.97      0.18     2.41
"makeClassRepresentation"                0.52      6.97      0.00     0.00
"validObject"                            0.50      6.70      0.12     1.61
"resetGeneric"                           0.50      6.70      0.00     0.00
"lapply"                                 0.48      6.43      0.00     0.00
"getClassDef"                            0.46      6.17      0.20     2.68
"FUN"                                    0.44      5.90      0.18     2.41
"readLines"                              0.40      5.36      0.38     5.09
"getGeneric"                             0.40      5.36      0.04     0.54
"read_lines_enc"                         0.36      4.83      0.00     0.00
"setIs"                                  0.36      4.83      0.00     0.00
"setGeneric"                             0.34      4.56      0.04     0.54
".checkGroupSigLength"                   0.34      4.56      0.00     0.00
"makeGeneric"                            0.32      4.29      0.02     0.27
".getGeneric"                            0.30      4.02      0.06     0.80
"setup_ns_exports"                       0.30      4.02      0.00     0.00
"add_classes_to_exports"                 0.28      3.75      0.00     0.00
"as<-"                                   0.26      3.49      0.00     0.00
"setAs"                                  0.26      3.49      0.00     0.00
"unlist"                                 0.26      3.49      0.00     0.00
".cacheMethodInTable"                    0.24      3.22      0.00     0.00
".getClassesFromCache"                   0.22      2.95      0.22     2.95
".mergeMethodsTable"                     0.22      2.95      0.06     0.80
"asMethod"                               0.22      2.95      0.04     0.54
"unique"                                 0.22      2.95      0.02     0.27
"as"                                     0.22      2.95      0.00     0.00
"namespaceImport"                        0.22      2.95      0.00     0.00
"Recall"                                 0.22      2.95      0.00     0.00
"makeExtends"                            0.20      2.68      0.02     0.27
".recMembers"                            0.20      2.68      0.00     0.00
"getGroupMembers"                        0.20      2.68      0.00     0.00
"newClassRepresentation"                 0.20      2.68      0.00     0.00
"...elt"                                 0.18      2.41      0.18     2.41
"as.list"                                0.18      2.41      0.18     2.41
"matchSignature"                         0.18      2.41      0.04     0.54
"body<-"                                 0.18      2.41      0.02     0.27
"setDataPart"                            0.18      2.41      0.02     0.27
"completeSubclasses"                     0.18      2.41      0.00     0.00
"ensureGeneric.fdef"                     0.18      2.41      0.00     0.00
"implicitGeneric"                        0.18      2.41      0.00     0.00
"isSealedMethod"                         0.18      2.41      0.00     0.00
".MakeSignature"                         0.16      2.14      0.04     0.54
".genericOrImplicit"                     0.16      2.14      0.00     0.00
"fun"                                    0.16      2.14      0.00     0.00
"getMethod"                              0.16      2.14      0.00     0.00
"runHook"                                0.16      2.14      0.00     0.00
"getSlots"                               0.14      1.88      0.04     0.54
"remove"                                 0.14      1.88      0.04     0.54
"extends"                                0.14      1.88      0.02     0.27
"isClassDef"                             0.14      1.88      0.00     0.00
"methods:::.getGenerics"                 0.14      1.88      0.00     0.00
"setClassUnion"                          0.14      1.88      0.00     0.00
".identC"                                0.12      1.61      0.12     1.61
"paste"                                  0.12      1.61      0.10     1.34
"readRDS"                                0.12      1.61      0.06     0.80
".combineExtends"                        0.12      1.61      0.02     0.27
".matchSigLength"                        0.12      1.61      0.02     0.27
"makePrototypeFromClassDef"              0.12      1.61      0.02     0.27
"reconcilePropertiesAndPrototype"        0.12      1.61      0.02     0.27
".prototype"                             0.12      1.61      0.00     0.00
"callback"                               0.12      1.61      0.00     0.00
"completeClassDefinition"                0.12      1.61      0.00     0.00
"prototype"                              0.12      1.61      0.00     0.00
"run_on_load"                            0.12      1.61      0.00     0.00
"length"                                 0.10      1.34      0.10     1.34
".methodPackageSlots"                    0.10      1.34      0.06     0.80
"exists"                                 0.10      1.34      0.06     0.80
"get"                                    0.10      1.34      0.06     0.80
".cacheClass"                            0.10      1.34      0.04     0.54
"as.function"                            0.10      1.34      0.02     0.27
"registerS3methods"                      0.10      1.34      0.02     0.27
".findMethodInTable"                     0.10      1.34      0.00     0.00
"assignClassDef"                         0.10      1.34      0.00     0.00
"assignMethodsMetaData"                  0.10      1.34      0.00     0.00
"generic.skeleton"                       0.10      1.34      0.00     0.00
"library.dynam"                          0.10      1.34      0.00     0.00
"@<-"                                    0.08      1.07      0.08     1.07
"gettext"                                0.08      1.07      0.08     1.07
".getMethodsTable"                       0.08      1.07      0.06     0.80
"structure"                              0.08      1.07      0.06     0.80
".getGenericSigLength"                   0.08      1.07      0.02     0.27
"classGeneratorFunction"                 0.08      1.07      0.02     0.27
"srcfilecopy"                            0.08      1.07      0.02     0.27
".GenericAssign"                         0.08      1.07      0.00     0.00
".sigLabel"                              0.08      1.07      0.00     0.00
".walkClassGraph"                        0.08      1.07      0.00     0.00
"cmpfun"                                 0.08      1.07      0.00     0.00
"compiler:::tryCmpfun"                   0.08      1.07      0.00     0.00
"description$new"                        0.08      1.07      0.00     0.00
"find.package"                           0.08      1.07      0.00     0.00
"idesc_create"                           0.08      1.07      0.00     0.00
"idesc_create_file"                      0.08      1.07      0.00     0.00
"tryNew"                                 0.08      1.07      0.00     0.00
"class"                                  0.06      0.80      0.06     0.80
"file.exists"                            0.06      0.80      0.06     0.80
"gzfile"                                 0.06      0.80      0.06     0.80
"inDL"                                   0.06      0.80      0.06     0.80
"methodsPackageMetaName"                 0.06      0.80      0.04     0.54
"unique.default"                         0.06      0.80      0.04     0.54
".findInheritedMethods"                  0.06      0.80      0.02     0.27
"order"                                  0.06      0.80      0.02     0.27
"setdiff"                                0.06      0.80      0.02     0.27
".getGenerics"                           0.06      0.80      0.00     0.00
".newOrMultipleMethod"                   0.06      0.80      0.00     0.00
".quickCoerceSelect"                     0.06      0.80      0.00     0.00
".transitiveExtends"                     0.06      0.80      0.00     0.00
".transitiveSubclasses"                  0.06      0.80      0.00     0.00
"create_ns_env"                          0.06      0.80      0.00     0.00
"dyn.load"                               0.06      0.80      0.00     0.00
"getFunction"                            0.06      0.80      0.00     0.00
"getMethodsForDispatch"                  0.06      0.80      0.00     0.00
"idesc_create_text"                      0.06      0.80      0.00     0.00
"read_dcf"                               0.06      0.80      0.00     0.00
".requirePackage"                        0.04      0.54      0.04     0.54
"assign"                                 0.04      0.54      0.04     0.54
"class<-"                                0.04      0.54      0.04     0.54
"grepl"                                  0.04      0.54      0.04     0.54
"isFALSE"                                0.04      0.54      0.04     0.54
"matchDefaults"                          0.04      0.54      0.04     0.54
"read.dcf"                               0.04      0.54      0.04     0.54
"%in%"                                   0.04      0.54      0.02     0.27
".addToMetaTable"                        0.04      0.54      0.02     0.27
".getGenericFromCacheTable"              0.04      0.54      0.02     0.27
"get0"                                   0.04      0.54      0.02     0.27
"getClass"                               0.04      0.54      0.02     0.27
"grep"                                   0.04      0.54      0.02     0.27
"slot"                                   0.04      0.54      0.02     0.27
"sub"                                    0.04      0.54      0.02     0.27
".classEnv"                              0.04      0.54      0.00     0.00
".derivedDefaultMethod"                  0.04      0.54      0.00     0.00
".getGenericFromCache"                   0.04      0.54      0.00     0.00
".recacheSubclasses"                     0.04      0.54      0.00     0.00
".TableMetaName"                         0.04      0.54      0.00     0.00
">="                                     0.04      0.54      0.00     0.00
"add_handler"                            0.04      0.54      0.00     0.00
"as.data.frame"                          0.04      0.54      0.00     0.00
"as.data.frame.list"                     0.04      0.54      0.00     0.00
"changed_files"                          0.04      0.54      0.00     0.00
"character"                              0.04      0.54      0.00     0.00
"cmp"                                    0.04      0.54      0.00     0.00
"cmpCall"                                0.04      0.54      0.00     0.00
"defer"                                  0.04      0.54      0.00     0.00
"desc_desc"                              0.04      0.54      0.00     0.00
"desc_desc_get"                          0.04      0.54      0.00     0.00
"dispatchIsInternal"                     0.04      0.54      0.00     0.00
"find_root_file"                         0.04      0.54      0.00     0.00
"genCode"                                0.04      0.54      0.00     0.00
"getPackageName"                         0.04      0.54      0.00     0.00
"is.factor"                              0.04      0.54      0.00     0.00
"isTRUE"                                 0.04      0.54      0.00     0.00
"isVirtualClass"                         0.04      0.54      0.00     0.00
"make.names"                             0.04      0.54      0.00     0.00
"match.arg"                              0.04      0.54      0.00     0.00
"md5"                                    0.04      0.54      0.00     0.00
"Ops.numeric_version"                    0.04      0.54      0.00     0.00
"path"                                   0.04      0.54      0.00     0.00
"pkg_desc"                               0.04      0.54      0.00     0.00
"pkg_name"                               0.04      0.54      0.00     0.00
"pkg_path"                               0.04      0.54      0.00     0.00
"rprojroot_find_package_root_file"       0.04      0.54      0.00     0.00
"split"                                  0.04      0.54      0.00     0.00
"tryInline"                              0.04      0.54      0.00     0.00
".assignMethodsTableMetaData"            0.02      0.27      0.02     0.27
".findAll"                               0.02      0.27      0.02     0.27
".fixPackageSlot"                        0.02      0.27      0.02     0.27
".noMlists"                              0.02      0.27      0.02     0.27
".Primitive"                             0.02      0.27      0.02     0.27
".registerS3method"                      0.02      0.27      0.02     0.27
"[.data.frame"                           0.02      0.27      0.02     0.27
"all"                                    0.02      0.27      0.02     0.27
"as.environment"                         0.02      0.27      0.02     0.27
"as.function.default"                    0.02      0.27      0.02     0.27
"as.vector"                              0.02      0.27      0.02     0.27
"attr"                                   0.02      0.27      0.02     0.27
"basename"                               0.02      0.27      0.02     0.27
"bindTranslations"                       0.02      0.27      0.02     0.27
"cb$putcode"                             0.02      0.27      0.02     0.27
"duplicated"                             0.02      0.27      0.02     0.27
"environment"                            0.02      0.27      0.02     0.27
"file"                                   0.02      0.27      0.02     0.27
"formals<-"                              0.02      0.27      0.02     0.27
"getDataPart"                            0.02      0.27      0.02     0.27
"getOption"                              0.02      0.27      0.02     0.27
"gsub"                                   0.02      0.27      0.02     0.27
"is.list"                                0.02      0.27      0.02     0.27
"isBaseNamespace"                        0.02      0.27      0.02     0.27
"isS4"                                   0.02      0.27      0.02     0.27
"list2env"                               0.02      0.27      0.02     0.27
"mget"                                   0.02      0.27      0.02     0.27
"packageSlot<-"                          0.02      0.27      0.02     0.27
"setup_handlers"                         0.02      0.27      0.02     0.27
"Sys.getenv"                             0.02      0.27      0.02     0.27
"sys.parent"                             0.02      0.27      0.02     0.27
"%||%"                                   0.02      0.27      0.00     0.00
".assignOverBinding"                     0.02      0.27      0.00     0.00
".class1"                                0.02      0.27      0.00     0.00
".encode_numeric_version"                0.02      0.27      0.00     0.00
".extendsForS3"                          0.02      0.27      0.00     0.00
".External2"                             0.02      0.27      0.00     0.00
".findOrCopyClass"                       0.02      0.27      0.00     0.00
".getGlobalFuns"                         0.02      0.27      0.00     0.00
".hasCodeTools"                          0.02      0.27      0.00     0.00
".mergeImportMethods"                    0.02      0.27      0.00     0.00
".removePreviousCoerce"                  0.02      0.27      0.00     0.00
".resetTable"                            0.02      0.27      0.00     0.00
".validDataPartClass"                    0.02      0.27      0.00     0.00
"["                                      0.02      0.27      0.00     0.00
"addImports"                             0.02      0.27      0.00     0.00
"app$add_theme"                          0.02      0.27      0.00     0.00
"app$new"                                0.02      0.27      0.00     0.00
"as.factor"                              0.02      0.27      0.00     0.00
"assign_crayon_styles"                   0.02      0.27      0.00     0.00
"c"                                      0.02      0.27      0.00     0.00
"c.numeric_version"                      0.02      0.27      0.00     0.00
"classMetaName"                          0.02      0.27      0.00     0.00
"cli::cli_inform"                        0.02      0.27      0.00     0.00
"cli__fmt"                               0.02      0.27      0.00     0.00
"cli_fmt"                                0.02      0.27      0.00     0.00
"cliapp"                                 0.02      0.27      0.00     0.00
"clii_add_theme"                         0.02      0.27      0.00     0.00
"clii_init"                              0.02      0.27      0.00     0.00
"cmpCallArgs"                            0.02      0.27      0.00     0.00
"cmpCallSymFun"                          0.02      0.27      0.00     0.00
"cmpForBody"                             0.02      0.27      0.00     0.00
"cmpPrim1"                               0.02      0.27      0.00     0.00
"completeExtends"                        0.02      0.27      0.00     0.00
"data.frame"                             0.02      0.27      0.00     0.00
"description$get_deps"                   0.02      0.27      0.00     0.00
"env_coalesce"                           0.02      0.27      0.00     0.00
"eval.parent"                            0.02      0.27      0.00     0.00
"exit_frame"                             0.02      0.27      0.00     0.00
"export_lazydata"                        0.02      0.27      0.00     0.00
"f"                                      0.02      0.27      0.00     0.00
"find_code"                              0.02      0.27      0.00     0.00
"find_description"                       0.02      0.27      0.00     0.00
"findClass"                              0.02      0.27      0.00     0.00
"findLocalsList"                         0.02      0.27      0.00     0.00
"findLocalsList1"                        0.02      0.27      0.00     0.00
"format_message"                         0.02      0.27      0.00     0.00
"funEnv"                                 0.02      0.27      0.00     0.00
"getInlineHandler"                       0.02      0.27      0.00     0.00
"h"                                      0.02      0.27      0.00     0.00
"I"                                      0.02      0.27      0.00     0.00
"idesc_get_deps"                         0.02      0.27      0.00     0.00
"importIntoEnv"                          0.02      0.27      0.00     0.00
"initDefaultClusterOptions"              0.02      0.27      0.00     0.00
"inject"                                 0.02      0.27      0.00     0.00
"is.numeric_version"                     0.02      0.27      0.00     0.00
"isS3Generic"                            0.02      0.27      0.00     0.00
"lazyLoad"                               0.02      0.27      0.00     0.00
"lazyLoadDBexec"                         0.02      0.27      0.00     0.00
"list.files"                             0.02      0.27      0.00     0.00
"load_data"                              0.02      0.27      0.00     0.00
"load_depends"                           0.02      0.27      0.00     0.00
"local"                                  0.02      0.27      0.00     0.00
"make.functionContext"                   0.02      0.27      0.00     0.00
"make_style_fast"                        0.02      0.27      0.00     0.00
"match.call"                             0.02      0.27      0.00     0.00
"match_contents"                         0.02      0.27      0.00     0.00
"mayCallBrowser"                         0.02      0.27      0.00     0.00
"mayCallBrowserList"                     0.02      0.27      0.00     0.00
"methods::getFunction"                   0.02      0.27      0.00     0.00
"methods::is"                            0.02      0.27      0.00     0.00
"packageSlot"                            0.02      0.27      0.00     0.00
"parse_deps"                             0.02      0.27      0.00     0.00
"parse_ns_file"                          0.02      0.27      0.00     0.00
"parseNamespaceFile"                     0.02      0.27      0.00     0.00
"populate_pkg_env"                       0.02      0.27      0.00     0.00
"possibleExtends"                        0.02      0.27      0.00     0.00
"process_imports"                        0.02      0.27      0.00     0.00
"register_s3"                            0.02      0.27      0.00     0.00
"rlang::inform"                          0.02      0.27      0.00     0.00
"rlang::local_options"                   0.02      0.27      0.00     0.00
"rprojroot::find_root"                   0.02      0.27      0.00     0.00
"selectMethod"                           0.02      0.27      0.00     0.00
"set_handlers"                           0.02      0.27      0.00     0.00
"setOldClass"                            0.02      0.27      0.00     0.00
"setup_pkg_env"                          0.02      0.27      0.00     0.00
"sort.int"                               0.02      0.27      0.00     0.00
"sort.list"                              0.02      0.27      0.00     0.00
"source_frame"                           0.02      0.27      0.00     0.00
"split.default"                          0.02      0.27      0.00     0.00
"start_app"                              0.02      0.27      0.00     0.00
"sys.function"                           0.02      0.27      0.00     0.00
"Sys.setenv"                             0.02      0.27      0.00     0.00
"sys.source"                             0.02      0.27      0.00     0.00
"system.file"                            0.02      0.27      0.00     0.00
"theme_all_null"                         0.02      0.27      0.00     0.00
"theme_create"                           0.02      0.27      0.00     0.00
"tools::list_files_with_type"            0.02      0.27      0.00     0.00
"topenv"                                 0.02      0.27      0.00     0.00
"uses_testthat"                          0.02      0.27      0.00     0.00
"vapply"                                 0.02      0.27      0.00     0.00
"with_locale"                            0.02      0.27      0.00     0.00
"withr::local_envvar"                    0.02      0.27      0.00     0.00
"withr_with_collate"                     0.02      0.27      0.00     0.00

Our codebase uses S4 classes and methods heavily and we have lots and lots of them.

@lionel-
Copy link
Member

lionel- commented Mar 9, 2023

Thank you. Could you also show the profvis output please:

options(profvis.aggregate = TRUE)

profvis::profvis(
  pkgload::load_all()
)

For instance this is what I get:
Screenshot 2023-03-09 at 11 07 36

@kummerer94
Copy link
Author

I actually tried to use profvis in the first place but then had to use Rprof since the result file from profvis is too large to work with. Neither the browser nor RStudio will open it for me (RStudio will just stop working and show me a blank screen).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants