Сравнительный тест присяжного острослова, кто-либо?

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

library(dplyr)
library(tidyr)

df <- df %>%
mutate(Flag = ifelse(Status == lag(Status), 0, 1),
    Flag = ifelse(is.na(Flag), 1, Flag),
    CumSum = cumsum(Flag)) %>%
group_by(Date, `Mac address`, Status, CumSum) %>%
summarize(Out = paste(Link, collapse = "_")) %>%
ungroup() %>%
arrange(CumSum)

df

РЕДАКТИРОВАТЬ: вот вывод, который я получаю, который идентичен тому, что вы сказали, что ожидали. Не уверен, что вы имеете в виду в комментарии об этом до сих пор не

# output
# A tibble: 10 x 5
   Date    `Mac address`   Status CumSum Out                                   
<chr>   <chr>           <lgl>   <dbl> <chr>                                 
 1 1/15/2~ 00:00:00:00:00~ FALSE       1 247-237                               
 2 1/15/2~ 00:00:00:00:00~ TRUE        2 237-235                               
 3 1/15/2~ 00:00:00:00:00~ FALSE       3 235-109                               
 4 1/15/2~ 00:00:00:00:00~ TRUE        4 214-106                               
 5 1/15/2~ 00:00:00:00:00~ FALSE       5 106-215                               
 6 1/15/2~ 00:00:00:00:00~ TRUE        6 215-253_253-245                       
 7 1/15/2~ 00:00:00:00:00~ FALSE       7 245-238_238-243_241-233_233-248_248-2~
 8 1/15/2~ 00:00:00:00:00~ TRUE        8 239-230                               
 9 1/15/2~ 00:00:00:00:00~ FALSE       9 230-229_229-252                       
10 1/15/2~ 00:00:00:00:00~ TRUE       10 252-244_244-232  
8
задан gnosis 13 December 2008 в 08:15
поделиться

9 ответов

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

14
ответ дан 5 December 2019 в 05:57
поделиться

Просто найденный этим очень простым сравнительным тестом - propably не очень значительный.

3
ответ дан 5 December 2019 в 05:57
поделиться

Вы могли бы также хотеть взять в новой библиотеке шаблонов, которая подобна Присяжному острослову по имени Dwoo

4
ответ дан 5 December 2019 в 05:57
поделиться

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

Я использовал его некоторое время, и это было достаточно быстро, но в конце я выгрузил его для простых файлов PHP, потому что это немного ограничивало (слишком много PHP4-измов).

1
ответ дан 5 December 2019 в 05:57
поделиться

Присяжный острослов самостоятельно является скорее крупной библиотекой... Если Ваша попытка использовать Присяжного острослова, я предлагаю, чтобы Вы использовали APC для кэширования скомпилированной версии.. Это сместит довольно большой размер библиотеки Smarty...

1
ответ дан 5 December 2019 в 05:57
поделиться

Это зависит от того, как Вы используете Присяжного острослова, потому что поток Ваших страниц может измениться

Классический простой поток PHP:

  • Вывод
  • $ дескриптора _REQUEST данные
  • Вывод
  • Запросы базы данных дескриптора
  • Вывод
  • $ дескриптора _REQUEST данные
  • Вывод
  • ...

Классический поток Присяжного острослова:

  • Обработайте весь $ _REQUEST данные
  • Обработайте все запросы базы данных
  • Произведите все

Если простой PHP занял 1,0 секунды для этой страницы, страница Smarty также занимает 1,0 секунды. НО если мы предполагаем, что вся база данных и $ _request handeling занимают 0,7 секунды. Простой PHP запускает вывод непосредственно, в то время как версия Присяжного острослова запускает вывод после 0,7 секунд. Для этого браузер может начать загружать таблицы стилей и отображает быстрее. Никакой вывод также не означает, что кнопка "Stop" не имеет никакого эффекта.

Однако в Присяжном острослове можно вызвать функции и методы из шаблона. Задержка медленной части туда, где данные необходимы.

1
ответ дан 5 December 2019 в 05:57
поделиться

Существует понижение замены для Присяжного острослова под названием Шаблон, Облегченный, который намного более легок относительно размера файла библиотеки. Тем не менее я использовал исходного Присяжного острослова в некоторых чрезвычайно высоких ситуациях с загрузкой, не будучи должен загрузить эту библиотеку.

0
ответ дан 5 December 2019 в 05:57
поделиться

На основе моих собственных событий и неофициальных сравнительных тестов, Присяжный острослов отдельно не вызывает основных сокращений производительности. Однако при вхождении в запись пользовательских плагинов вещи спускаются.

Шаблон Smarty компилируется и кэшируется как PHP, но пользовательский плагин всегда загружается и выполняется во времени выполнения и всегда медленнее, чем выполнение того же кода в простом файле PHP. Вы не собираетесь замечать это слишком много с плагином форматирования пользовательской строки, но Вы будете определенно видеть его, когда выполнение базы данных запрашивает в плагине.

В целом, я настоятельно рекомендую Присяжному острослову. Вытаскивание дисплея из PHP сделало наш код настолько более читаемым и удобным в сопровождении. Просто необходимо удостовериться, что Вы осторожны относительно того, что Вы вставляете плагины.

0
ответ дан 5 December 2019 в 05:57
поделиться

вот еще одно решение для создания шаблонов XSLT. Вот мои тесты для одной из преобразованных страниц (это простая страница):

// with smarty (baseline)
    0.014 seconds

// with xsl/xslt-clientside
    0.008 seconds
    42% decrease in server stress

// with xsl/xslt-serverside
// this process would only be done if the users browser doesn't support client-side XSLT
    0.016 seconds
    14% increase in server stress

Это не для всех, но если производительность является вашей главной заботой:)

Кроме того, вы позволяете клиенту кэшировать ваш шаблон.

вот пример того, что я делаю (это один из моих сайтов): http://pixao.com

и вот еще один пример этого на крупномасштабном сайте: http://worldofwarcraft.com

пока что я еще не сталкивался ни с какими ограничителями шоу

2
ответ дан 5 December 2019 в 05:57
поделиться
Другие вопросы по тегам:

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