Хобрук: Ваш путь к мастерству в программировании

Локальная сборка сайта Jekyll занимает 12-40 минут — проблема с сообщениями и связанными с ними файлами сообщений?

У меня есть небольшой личный блог, созданный с использованием страниц Jekyll и GitHub. В последнее время при создании/обслуживании сайта локально сборка иногда занимает 12-40 минут. Раньше на этом ПК это занимало минуту или две, хотя с тех пор я добавил около 10 постов. Два файла, которые занимают больше всего времени, не менялись долгое время, но я понимаю, что они являются основными шаблонами для построения.

Я запускал тег --profile несколько раз, и проблема связана с моими _layouts/post.html и _includes/post/related_posts.html, вот моя последняя сборка:

>jekyll build --profile
Configuration file: C:/Users/twulz/Documents/GitHub/Twulz.github.io/_config.yml
            Source: C:/Users/twulz/Documents/GitHub/Twulz.github.io
       Destination: C:/Users/twulz/Documents/GitHub/Twulz.github.io/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
  Populating LSI...
Rebuilding index...


| Filename                                                   | Count |    Bytes |     Time |
+------------------------------------------------------------+-------+----------+----------+
| _layouts/post.html                                         |    44 |  559.39K |  769.523 |
| _includes/post/related_posts.html                          |    47 |   49.21K |  769.309 |
| _layouts/default.html                                      |    70 | 2448.54K |    1.615 |
| _includes/asides.html                                      |    70 | 1218.71K |    1.115 |
| _includes/asides/archive_tabs.html                         |    70 |  926.82K |    0.556 |
| _includes/asides/recent_posts.html                         |    70 |  223.95K |    0.383 |
| _includes/libs/list_tags                                   |   115 |  626.27K |    0.325 |
| _includes/libs/list_categories                             |   115 |  319.43K |    0.219 |
| index.html                                                 |     1 |    9.07K |    0.185 |
| _includes/libs/list_pages                                  |    96 |   63.14K |    0.164 |
| page3/index.html                                           |     1 |    9.35K |    0.153 |
| page4/index.html                                           |     1 |    8.19K |    0.146 |
| blog/tags.html                                             |     1 |   53.22K |    0.137 |
| atom.xml                                                   |     1 |  505.68K |    0.127 |
| page2/index.html                                           |     1 |    8.91K |    0.115 |
| _includes/navbar.html                                      |    72 |  207.96K |    0.108 |
| _includes/post/post_meta.html                              |    47 |   62.26K |    0.085 |
| blog/categories.html                                       |     1 |   26.61K |    0.073 |
| _layouts/single-with-sidebar.html                          |     3 |    9.25K |    0.067 |
| page5/index.html                                           |     1 |    3.56K |    0.062 |
| assets/bootstrap-2.3.2/js/bootstrap.custom.js              |     1 |   27.96K |    0.058 |
| assets/bootstrap-2.1.1/js/bootstrap.custom.js              |     1 |   18.45K |    0.057 |
| _includes/libs/truncate_exec                               |     5 |    1.49K |    0.049 |
| _includes/bottom.html                                      |    72 |   95.14K |    0.043 |
| _includes/head.html                                        |    72 |  132.24K |    0.042 |
| blog/archives.html                                         |     1 |   11.13K |    0.034 |
| _includes/post/post_pagenation.html                        |    47 |   22.74K |    0.029 |
| sitemap.xml                                                |     1 |   10.63K |    0.026 |
| assets/js/script.js                                        |     1 |    4.50K |    0.022 |
| _includes/footer.html                                      |    72 |   13.08K |    0.018 |
| assets/bootstrap-2.3.2/css/bootstrap.custom.css            |     1 |  103.51K |    0.017 |
| assets/css/style.css                                       |     1 |    9.11K |    0.016 |
| _includes/asides/tweets.html                               |    70 |   38.62K |    0.016 |
| _layouts/single-no-sidebar.html                            |     2 |   20.16K |    0.013 |
| assets/bootstrap-2.3.2/css/bootstrap-responsive.custom.css |     1 |   16.57K |    0.013 |
| _includes/script.html                                      |    72 |   23.91K |    0.010 |
| _includes/header.html                                      |    72 |   12.16K |    0.009 |
| rss.xml                                                    |     1 |    7.57K |    0.006 |
| home.html                                                  |     1 |    2.01K |    0.006 |
| _includes/asides/about.html                                |    70 |   13.95K |    0.004 |
| _includes/libs/thumbnail                                   |    44 |    0.00K |    0.003 |
| _posts/2016-08-17-prusa3dPrinter-electronics.md            |     1 |    4.21K |    0.003 |
| engprojects/other/index.html                               |     1 |    1.58K |    0.003 |
| engprojects/printer/index.html                             |     1 |    1.51K |    0.002 |
| _posts/2016-02-18-rediscovering-the-blog.md                |     1 |   18.79K |    0.002 |
| engprojects/cube4x4x4/index.html                           |     1 |    1.39K |    0.002 |
| _posts/2018-10-10-Building-a-smart-parking-demo.md         |     1 |    5.36K |    0.002 |
| _includes/libs/truncate_start                              |     5 |    0.00K |    0.002 |
| _includes/post/socials_large.html                          |     3 |    3.71K |    0.002 |
| _includes/bootstrap-2.3.2/css/bootstrap.min.css            |     1 |  103.51K |    0.002 |
+------------------------------------------------------------+-------+----------+----------+
| TOTAL (for 50 files)                                       |  1450 | 8064.52K | 1544.978 |

                    done in 794.05 seconds.
 Auto-regeneration: disabled. Use --watch to enable.

вот _layouts/post.html - я уже удалил теги социальных сетей (если сравнить с моим репозиторием Github )

---
layout: default
group: Blog
---
            <article class="single post">
                <header>
                    <h1>
                        <a href="{{ site.baseurl }}{{ page.url }}" rel="bookmark" title="Permanent link">{{ page.title }}</a>
                    </h1>
                    <p class="meta">
                        <time datetime="{{ page.date | date_to_xmlschema }}">{{ page.date | date: site.date_format }}</time>
                    </p>
                </header>
                <div class="content">
{{ content }}
<br>
                </div>
                <footer>
{% include post/post_pagenation.html %}
{% include post/post_meta.html %}
{% include post/related_posts.html %}
                </footer>
            </article>

_includes/post/related_posts.html, я попытался сделать так, чтобы связанный цикл сообщений выводил только 1 сообщение - другие сообщения показывают, что циклы увеличивают время сборки в области от 1 до 60 секунд, но это не сильно изменило время сборки для меня.

                    <nav id="related-posts" class="well">
                        <h3>You might also like</h3>
                        <ul>
{% for post in site.related_posts limit:5 %}
                            <li class="related-post">
                                <span>{{ post.date | date: site.date_format }}</span> - 
                                <a href="{{ site.baseurl }}{{ post.url }}">{{ post.title }}</a>
                            </li>
{% endfor %}
                        </ul>
                    </nav>

Я удалил и переустановил Jekyll, но без изменений. Что я здесь сделал не так - что еще я могу посмотреть, чтобы попытаться сократить это локальное время сборки?


  • Я знаю, что это не тот ответ, который вы ищете. Но установка lsi: false резко сократит время сборки. 21.11.2019
  • lsi: false на самом деле сократило related_posts до 0,063 секунды! Проблема определенно заключалась в цикле в related_posts, даже ограниченном 1 постом, это все равно занимало 8 минут, но когда весь цикл был удален, время сборки вернулось к норме. Когда я оставляю цикл с ограничением 5 и lsi:false, время сборки составляет 15 секунд, что гораздо более приемлемо. Вы бы предпочли опубликовать свой ответ как ответ, чтобы я мог его отметить? 23.11.2019
  • Технически вы используете lsi: true уже более 7 лет. Тем не менее, вы заметили падение производительности только недавно, и это также касается самой быстрой версии Jekyll (Jekyll v4.0.0). Таким образом, я бы точно не хотел посылать неправильное сообщение читателям, наткнувшимся на этот вопрос и увидевшим, что lsi: false является ответом.. Если вы должны отметить этот вопрос как решенный, я предлагаю вам ответить на него самостоятельно. Существует гем под названием gsl, который может ускорить сборку lsi: true, но мне никогда не удавалось чтобы успешно установить его в Windows... 23.11.2019

Ответы:


1

Как GitHub Pages все равно не поддерживает lsi, установки lsi:false в моем файле _config.yml было достаточно, чтобы мои локальные сборки сократились до 15 секунд.

Как показал выше пользователь ashmaroli, это не истинный ответ на вопрос, почему время моей сборки внезапно увеличилось, но поскольку мой вопрос был "На что еще я могу обратить внимание, чтобы попытаться сбить эту локальную сборку?" время?" этого исправления достаточно для моих нужд, чтобы позволить мне редактировать и обслуживать локально в более разумные сроки (и теперь оно соответствует рабочему сайту), поэтому я отмечаю это как решенное.

24.11.2019
Новые материалы

мои январские чтения по программированию
Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

Искусственный интеллект в юридической отрасли - пример прогнозирования судебных решений с помощью глубокого обучения
На протяжении всей истории люди полагались на суды, присяжных, королей и королев в отправлении правосудия. Сегодня способность судов обеспечивать справедливое и быстрое правосудие для своих..

Введение в машинное обучение для обнаружения аномалий (часть 1)
Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

Начало работы с Pulumi в Digital Ocean
Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..

#Day68 из #100days_of_coding
Вчера был мой 68-й день кодинга. я решил один вопрос Проблема: Разбить двоичную строку на подстроки с равным количеством нулей и единиц Дана двоичная строка str длины N . Задача состоит..

Воспроизведение теперь возможно с помощью React
Как я реализовал Reparenting с помощью нескольких строк кода Я разрабатываю приложение, похожее на Trello . На главной странице мне нужны несколько вертикальных списков и несколько..