Эффективность выполнения по сравнению с эффективностью программиста в R

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

Я думал об этом при работе над превращением некоторого "программиста, эффективного" R код в "в вычислительном отношении и обслуживающий эффективный" код.

Каковы некоторые интересные и полезные подсказки для стиля R вдоль этих строк? Какие методы являются максимально эффективным программистом, и каковы эквивалентные методы, которые обращаются к другим понятиям эффективности?

12
задан 2 revs, 2 users 100% 31 January 2012 в 06:48
поделиться

3 ответа

 Эффективность работы программиста | Эффективность вычислений
 |
Напишите все в R | Звоните по телефону C/Fortran.
Код повторного использования | Пользовательские создать все 
 (функции не скрипты, |
 пакеты, а не отдельные функции) |
Использовать высокоуровневые функции | Использовать низкоуровневые функции
Написать то, что работает | Написать, профилировать, оптимизировать.
 | Повторить ad infinitum.
20
ответ дан 2 December 2019 в 06:45
поделиться

На медленность можно рассчитывать только в том случае, если в цикле происходит перекомпиляция данных, например, добавление элементов в вектор, , если это сделано много .

2
ответ дан 2 December 2019 в 06:45
поделиться

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

Сложнее добиться эффективности исполнения декретом. Возможно, вам придется вернуться к практическим правилам («векторизация»), а также к профилированию.

1
ответ дан 2 December 2019 в 06:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: