setTimeLimit如何在R中工作?

我想在R中掌握setTimeLimit() ,并且我的经验已经导致了几个相关的问题,所以也许最基本的问题是:这是如何工作的? (我一直在寻找来自R.utils evalWithTimeout() ,它可能适合我的目的稍微好一些,但是它建立在这个函数上。)

以下是我想要弄清楚的关键事项:

  • 它如何监控经过的时间? 即它似乎被插入到流量控制中,那么它是如何做到的? 能够拥有“背景”流程非常酷,可以用于报告状态,检查点等等。

  • 我能确定有多少时间才会被触发吗? 我意识到我可以将它包装起来并在某处存储大约在调用点(即proc.time()的输出proc.time()消耗的耗用时间和CPU时间。 但是,这个函数已经存储了这些地方,我想知道在哪里,或者至少如何确定剩余时间。

  • 如果R控制台闲置,是否可以做一些有用的事情? 能够监视elapsed.time()cpu.time()非常有用。 我希望能够监视R什么时候处于空闲状态,但从修补程序看来,它需要提交或完成一个命令。 而且,仅输出错误不会触发后续操作。 (也许我需要更多地关注evalWithTimeout 。)

  • 帮助信息表明它可以适用于C或Fortran,但不提供示例。 有关如何完成这件事的任何建议?


  • 为了显示在C函数调用期间setTimeLimit不起作用:

    rfunction <- function(){
        repeat{
            x <- rnorm(100);
        }
    }
    
    cfunction <- function(){
        x <- eigen(matrix(rnorm(1e6), 1e3));
    }
    
    setTimeLimit(3);
    system.time(try(rfunction(), silent=TRUE))
    system.time(try(cfunction(), silent=TRUE))
    
    链接地址: http://www.djcxy.com/p/9869.html

    上一篇: How does setTimeLimit work in R?

    下一篇: Facebook apps (iframes) and third party cookies