>>>>> Alexander Kaever
>>>>> on Thu, 16 Sep 2021 14:00:03 +0000 writes:
> Hi,
> It seems like a try(do.call(f, args)) can be very slow on error
depending on the args size. This is related to a complete deparse of the call
using deparse(call)[1L] within the try function. How about replacing
deparse(call)[1L] by deparse(call, nlines = 1)?
> Best,
> Alex
an *excellent* idea!
I have checked that the resulting try() object continues to contain the
long large call; indeed that is not the problem, but the
deparse()ing *is* as you say above.
{The experts typically use tryCatch() directly, instead of try() ,
which may be the reason other experienced R developers have not
stumbled over this ...}
Thanks a lot, notably also for the clear repr.ex. below.
Best regards,
Martin
> Example:
> fun <- function(x) {
> stop("testing")
> }
> d <- rep(list(mtcars), 10000)
> object.size(d)
> # 72MB
> system.time({
> try(do.call(fun, args = list(x = d)))
> })
> # 8s
> Unsere Informationen zum Datenschutz finden Sie
hier<https://www.evotec.com/de/about/site-information/datenschutzbestimmungen>.
> Evotec International GmbH, Hamburg. Amtsgericht Hamburg HRB 72242
> Gesch?ftsf?hrung: Dr. Cord Dohrmann, Dr. Craig Johnstone, Enno Spillner
> STATEMENT OF CONFIDENTIALITY.
> This email and any attachments may contain confidential, proprietary,
privileged and/or private information.
> If received in error, please notify us immediately by reply email and
then delete this email and any attachments from your system. Thank you.
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel