Медленная отправка метода S4?

В моем классе S4 есть метод, который вызывается много раз. Я заметил, что время выполнения намного медленнее, чем было бы, если бы подобная функция была вызвана независимо. Поэтому я добавил слот с типом "функция» в мой класс и использовал эту функцию вместо метода. В приведенном ниже примере показаны два способа сделать это, и оба они работают намного быстрее, чем соответствующий метод. Кроме того, в примере предполагается, что более низкая скорость метода не связана с тем, что метод должен извлекать данные из класса, поскольку функции работают быстрее, даже если они это делают.

Конечно, такой способ не идеален. Интересно, есть ли способ ускорить отправку метода. Какие-либо предложения?

    setClass(Class = "SpeedTest", 
      representation = representation(
        x = "numeric",
        foo1 = "function",
        foo2 = "function"
      )
    )

    speedTest  system.time(for (i in seq(iters)) method.foo(st)) # slowest by far
       user  system elapsed 
       3.26    0.00    3.27 

    > # much faster 
    > system.time({foo1  system.time({foo1  # same speed as foo1 although no explicit argument
    > system.time({foo2  system.time({foo 

Ответы на вопрос(2)

Ваш ответ на вопрос