Почему скобки замедляют мою программу в R - PullRequest
2 голосов
/ 31 мая 2019

Я поймал несколько лишних скобок в коде моего друга, и это действительно замедлило время выполнения. Если есть какое-либо объяснение этому. Пожалуйста, проверьте этот пример кода

Python также является (заданным) интерпретируемым языком и не страдает от этой программы.

# 0.370 seconds
x <- 0
while (x < 100000) {
    10
    x = x + 1
}
# 0.743 seconds
x <- 0
while (x < 100000) {
    ((((((((((10))))))))))
    x = x + 1
}

1 Ответ

1 голос
/ 31 мая 2019

Хотя комментарий Акруна говорит о R v2.11.1, на самом деле ничего не изменилось.

Справка для ? Paren (скобки и скобки) говорит, что в отличие от некоторых других языков скобки и скобки являются примитивными функциями в R. Что означает, что когда вы пишете a <- 1,1 - это просто 1. Однако, если вы напишите a <- (1), 1 будет внутри функции.

Поэтому, если вы будете выполнять даже простые вычисления, скобки займут больше времени (когда вы оцениваете функцию и число).

library(microbenchmark)

microbenchmark("simple" = {a <- 1},
                      "parentheses" = {
                        a <- (1)})

Unit: nanoseconds
        expr min  lq mean median  uq   max neval cld
      simple   0 100   89    100 100   700   100   a
 parentheses 100 100  310    200 200 16000   100   a

sessionInfo()

R version 3.5.3 (2019-03-11)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...