Skip to content
Prev 8243 / 12125 Next

[R-pkg-devel] Slow down in R 4.2.x

On 7/1/22 11:10, Johannes Ranke wrote:
I can reproduce slowdown in one of your tests:

library(mkin)
FOCUS_D <- subset(FOCUS_2006_D, value != 0)
SFO_SFO <- mkinmod(
 ? parent = mkinsub("SFO", "m1"),
 ? m1 = mkinsub("SFO"))
FOMC_SFO <- mkinmod(
 ? parent = mkinsub("FOMC", "m1"),
 ? m1 = mkinsub("SFO"))
DFOP_SFO <- mkinmod(
 ? parent = mkinsub("FOMC", "m1"),
 ? m1 = mkinsub("SFO"))

mmkin_bench <- function(models, datasets, error_model = "const") {
 ? mmkin(models, datasets, error_model = error_model, cores = 1, quiet = 
TRUE)
}

t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), 
list(FOCUS_D), error_model = "tc"))[["elapsed"]]

This is slower in R 4-devel than R 4.1 because of bug fixes in DLL info 
interface (PR#16446, r80285). "perf" tool on Linux shows extra time 
spent in R_registerSymbolEptr and R_WeakRefKey. This is because of 
repeated calls to getLoadedDLLs(), via repeated calls to 
inline::getDynLib(x$cf)[["name"]]

Perhaps one could save dll_info, once computed in mkin, alongside "cf" 
in the model, instead of re-computing it every time?

Best
Tomas