[Rd] Speed question: passing arguments vs environment
Eric Berger
er|cjberger @end|ng |rom gm@||@com
Tue Dec 2 13:48:14 CET 2025
While not directly answering your question, what about collecting all these
arguments into an env object? Then you are just passing one argument in the
... and it is passed by reference, which is fast.
On Tue, Dec 2, 2025 at 2:42 PM Therneau, Terry M., Ph.D. via R-devel <
r-devel using r-project.org> wrote:
> I have a complex likelihood function f() to maximize, with lots of
> arguments (some of which set up indexes for derivatives, for instance).
> When using something like optim(), one can pass these arguments through
> via its … arg, or could make the likelihood function f() live in the same
> environment as the main routine so they are found directly. Is there any
> advantage of one versus the other wrt speed? At the end of the day, f()
> may get called thousands of times in a Hamiltonian MCMC.
>
> Since R does not replicate arguments that are used in a read-only fashion,
> one might expect little to no penalty for having them on the call chain,
> unless the bookkeeping for copy-on-write is itself time consuming.
>
> Terry T.
>
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
[[alternative HTML version deleted]]
More information about the R-devel
mailing list