cockroachdb / docs

CockroachDB user documentation
https://cockroachlabs.com/docs
Creative Commons Attribution 4.0 International
188 stars 456 forks source link

Jekyll serve --incremental is very slow, making a live edit workflow very difficult #9928

Closed rmloveland closed 3 years ago

rmloveland commented 3 years ago

It takes over 30 seconds to see one edit to a page go live. This is slow enough that it makes the incremental "write-and-check, write-and-check" style of working very difficult and frustrating.

Running as:

bundle exec jekyll serve --port 4000 --incremental --trace --config _config_base.yml,_config_cockroachdb.yml

The performance on a brand new MBP with 1TB SSD and 16 GB RAM is ... very bad. As shown below I am making small edits to one file and it takes 30+ seconds to show me the changes.

      Regenerating: 1 file(s) changed at 2021-03-04 10:36:24
                    v21.1/set-locality.md
                    ...done in 32.932964 seconds.

      Regenerating: 1 file(s) changed at 2021-03-04 10:36:57
                    v21.1/set-locality.md
                    ...done in 32.305148 seconds.

      Regenerating: 2 file(s) changed at 2021-03-04 10:39:43
                    v21.1/set-locality.md
                    v21.1/.#set-locality.md
                    ...done in 33.882001 seconds.

      Regenerating: 1 file(s) changed at 2021-03-04 10:40:17
                    v21.1/set-locality.md
                    ...done in 33.165183 seconds.

      Regenerating: 2 file(s) changed at 2021-03-04 10:41:10
                    v21.1/set-locality.md
                    v21.1/.#set-locality.md
                    ...done in 31.34292 seconds.

Possibly related old issues:

Seems like it would be fixed by:

jseldess commented 3 years ago

This surprised me, @rmloveland. If you use make standard, that uses https://github.com/cockroachdb/docs/blob/master/_config_cockroachdb_local.yml, which excludes everything for the stable and dev versions from getting build, and that should keep it pretty fast. Are you not using make standard? Also, it's important to rm -rf _site every so often. The build is slower right after doing that, but it can often improve things thereafter. Can you try that?

rmloveland commented 3 years ago

Sure!

Just did the following:

rm -rf _site
make standard

Long output pasted below. tl;dr: on a single edit of one file it's taking about 18 seconds to reload.

I think the other day when I created this issue I had multiple files (about 10) in various states of edited-ness, and hadn't deleted _site in a while. I wouldn't be surprised if this creeps back up into the near 30s range if I were to work on multiple edits for a couple hours tho without restarting Jekyll.

Maybe I'm the only one experiencing it? But maybe folks are just used to it - Not sure. Could be something in my setup as well. I'll ask in the chat.

make standard
bundle install
Using public_suffix 4.0.6
Using addressable 2.7.0
Using json 2.5.1
Using racc 1.5.2
Using nokogiri 1.11.1 (x86_64-darwin)
Using algolia_html_extractor 2.6.4
Using httpclient 2.8.3
Using algoliasearch 1.27.5
Using bundler 2.2.11
Using colorator 1.1.0
Using concurrent-ruby 1.1.8
Using eventmachine 1.2.7
Using http_parser.rb 0.6.0
Using em-websocket 0.5.2
Using ffi 1.14.2
Using filesize 0.2.0
Using forwardable-extended 2.6.0
Using i18n 1.8.9
Using sassc 2.4.0
Using jekyll-sass-converter 2.1.0
Using rb-fsevent 0.10.4
Using rb-inotify 0.10.1
Using listen 3.4.1
Using jekyll-watch 2.2.1
Using rexml 3.2.4
Using kramdown 2.3.0
Using kramdown-parser-gfm 1.1.0
Using liquid 4.0.3
Using mercenary 0.4.0
Using pathutil 0.16.2
Using rouge 3.26.0
Using safe_yaml 1.0.5
Using unicode-display_width 1.7.0
Using terminal-table 2.0.0
Using jekyll 4.2.0
Using progressbar 1.11.0
Using verbal_expressions 0.1.5
Using jekyll-algolia 1.6.0 from source at `jekyll-algolia-dev`
Using jekyll-redirect-from 0.16.0
Using jekyll-remote-include 1.1.3 from https://github.com/ianjevans/jekyll-remote-include.git
Using jekyll-sitemap 1.3.1
Using liquid-c 4.0.0
Using redcarpet 3.5.1
Using rss 0.2.9
Using webrick 1.7.0
Updating files in vendor/cache
Bundle complete! 10 Gemfile dependencies, 45 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
touch bootstrap
bundle exec jekyll serve --port 4000 --incremental --trace --config _config_base.yml,_config_cockroachdb.yml,_config_cockroachdb_local.yml 
Configuration file: /Users/rloveland/work/code/docs/_config_base.yml
Configuration file: /Users/rloveland/work/code/docs/_config_cockroachdb.yml
Configuration file: /Users/rloveland/work/code/docs/_config_cockroachdb_local.yml
            Source: /Users/rloveland/work/code/docs
       Destination: /Users/rloveland/work/code/docs/_site/docs
 Incremental build: enabled
      Generating... 
                    done in 34.659 seconds.
 Auto-regeneration: enabled for '/Users/rloveland/work/code/docs'
    Server address: http://127.0.0.1:4000/docs/
  Server running... press ctrl-c to stop.
      Regenerating: 2 file(s) changed at 2021-03-08 11:20:50
                    v21.1/add-region.md
                    v21.1/.#add-region.md
                    ...done in 18.482852 seconds.

[2021-03-08 11:21:10] ERROR `/apple-touch-icon-precomposed.png' not found.
[2021-03-08 11:21:10] ERROR `/apple-touch-icon.png' not found.
      Regenerating: 2 file(s) changed at 2021-03-08 11:21:26
                    v21.1/add-region.md
                    v21.1/.#add-region.md
                    ...done in 18.792359 seconds.
ianjevans commented 3 years ago

Just a heads up that resetting your local Jekyll environment is now easier with make clean.

make clean && make standard

I, too, have noticed the longer regeneration times.

ianjevans commented 3 years ago

According to this SO question, there's --profile option for Jekyll that shows what page or step is taking up time.

So you could edit your Makefile thusly:

.PHONY: cockroachdb
cockroachdb: jekyll-action := serve --port 4000
cockroachdb: bootstrap
    bundle exec jekyll $(jekyll-action) --incremental --trace --config --profile _config_base.yml,_config_cockroachdb.yml,_config_cockroachdb_local.yml$(extra-config) $(JEKYLLFLAGS)
rmloveland commented 3 years ago

thanks, I'll take a look at that Ian!

rmloveland commented 3 years ago

I have also discovered that my editor was creating "auto-save" backup files in these directories, adding to the number of files it has to scan. I will run the profile and check back

yzdocs commented 3 years ago

Hi Rich! I am (slowly) taking a look at this. Can you please help answer a few questions?

  1. What is your base build time? (i.e. when you don't make any changes and just rebuild what was previously generated)
  2. What is your Ruby version?
  3. Can you paste your --profile output as discussed with Ian above?
  4. Do you see an improvement if you swap out v20.2 for another version from local builds?

For me, 4. is "yes." If that is also the case for you, then a next step might be to understand what's special about that version. Meanwhile I am also looking into other ways we might be able to speed up the build in general.

yzdocs commented 3 years ago

It looks like remote_include may be slowing down the build. In a few quick tests, not using remote_include shaves up to 7 seconds (from 13-ish secs to 6-ish secs). Replications welcome!

rmloveland commented 3 years ago

Hi Rich! I am (slowly) taking a look at this. Can you please help answer a few questions?

Yes! and thanks!

What is your base build time? (i.e. when you don't make any changes and just rebuild what was previously generated)

make cockroachdb-build 
touch bootstrap
bundle exec jekyll build --incremental --trace --config _config_base.yml,_config_cockroachdb.yml 
Configuration file: /Users/rloveland/work/code/docs/_config_base.yml
Configuration file: /Users/rloveland/work/code/docs/_config_cockroachdb.yml
            Source: /Users/rloveland/work/code/docs
       Destination: /Users/rloveland/work/code/docs/_site/docs
 Incremental build: enabled
      Generating... 
                    done in 64.448 seconds.
 Auto-regeneration: disabled. Use --watch to enable.

What is your Ruby version?

ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]

Can you paste your --profile output as discussed with Ian above?

I edited the Makefile to use Ian's text for the cockroachdb Makefile target and it throws an error as shown below.

(I also got a new laptop recently and Homebrew defaulted me to Ruby 3.0.0 so I've been running with some stashed changes to the Gemfile* files to "get things working", which may be affecting things)

make standard 
bundle exec jekyll serve --port 4000 --incremental --trace --config --profile _config_base.yml,_config_cockroachdb.yml,_config_cockroachdb_local.yml 
           WARNING: Error reading configuration. Using defaults (and options).
No parser for '/Users/rloveland/work/code/docs/--profile' is available. Use a .y(a)ml or .toml file instead.
bundler: failed to load command: jekyll (/usr/local/lib/ruby/gems/3.0.0/bin/jekyll)
/Users/rloveland/work/code/docs/_plugins/versions/config.rb:7:in `block in initialize': Config missing `versions` key (RuntimeError)
    from /Users/rloveland/work/code/docs/_plugins/versions/config.rb:6:in `each'
    from /Users/rloveland/work/code/docs/_plugins/versions/config.rb:6:in `initialize'
    from /Users/rloveland/work/code/docs/_plugins/versions/generator.rb:11:in `new'
    from /Users/rloveland/work/code/docs/_plugins/versions/generator.rb:11:in `initialize'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:321:in `new'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:321:in `block (2 levels) in instantiate_subclasses'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:321:in `map!'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:321:in `block in instantiate_subclasses'
    from <internal:kernel>:90:in `tap'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:319:in `instantiate_subclasses'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:134:in `setup'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:36:in `initialize'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/build.rb:30:in `new'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/build.rb:30:in `process'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `each'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
    from /usr/local/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
    from /usr/local/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
    from /usr/local/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
    from /usr/local/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
    from /usr/local/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
    from /usr/local/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/exe/jekyll:15:in `<top (required)>'
    from /usr/local/lib/ruby/gems/3.0.0/bin/jekyll:23:in `load'
    from /usr/local/lib/ruby/gems/3.0.0/bin/jekyll:23:in `<top (required)>'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/cli/exec.rb:63:in `load'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/cli/exec.rb:63:in `kernel_load'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/cli/exec.rb:28:in `run'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/cli.rb:494:in `exec'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/cli.rb:30:in `dispatch'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/cli.rb:24:in `start'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/exe/bundle:49:in `block in <top (required)>'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
    from /usr/local/lib/ruby/gems/3.0.0/gems/bundler-2.2.11/exe/bundle:37:in `<top (required)>'
    from /usr/local/lib/ruby/gems/3.0.0/bin/bundle:23:in `load'
    from /usr/local/lib/ruby/gems/3.0.0/bin/bundle:23:in `<main>'
make: *** [cockroachdb] Error 1

Do you see an improvement if you swap out v20.2 for another version from local builds?

By "swap out" do you mean I add v20.2 to the list of things we don't build in _config_cockroachdb_local.yml?

If so, here is the output when I add v20.2 to the list of "ignored things":

make cockroachdb-build 
bundle exec jekyll build --incremental --trace --config _config_base.yml,_config_cockroachdb.yml 
Configuration file: /Users/rloveland/work/code/docs/_config_base.yml
Configuration file: /Users/rloveland/work/code/docs/_config_cockroachdb.yml
            Source: /Users/rloveland/work/code/docs
       Destination: /Users/rloveland/work/code/docs/_site/docs
 Incremental build: enabled
      Generating... 
                    done in 62.191 seconds.
 Auto-regeneration: disabled. Use --watch to enable.

For me, 4. is "yes." If that is also the case for you, then a next step might be to understand what's special about that version. Meanwhile I am also looking into other ways we might be able to speed up the build in general.

It does not appear to be the case for me - still about 60 seconds.

Thank you for looking into this!

ianjevans commented 3 years ago

My mistake on the location of --profile. This will work.

cockroachdb-build: bootstrap
    bundle exec jekyll $(jekyll-action) --incremental --profile --trace --config _config_base.yml,_config_cockroachdb.yml$(extra-config) $(JEKYLLFLAGS)
ianjevans commented 3 years ago

@yz If we determine that remote_include is bogging down the build and the only solution is to modify the plugin, it looks like Jekyll exposes a Cache API: https://jekyllrb.com/tutorials/cache-api/

ianjevans commented 3 years ago

And if I'm reading this right, I think the modification to my remote_include plugin would be super straightforward:

    def cache
      @@cache ||= Jekyll::Cache.new("RemoteInclude")
    end

...

    def open(url)
      cache.getset(url) do
        Net::HTTP.get(URI.parse(url.strip)).force_encoding 'utf-8'
      end
    end
yzdocs commented 3 years ago

Hi Ian, thanks! I did take a brief look at the Cache API, but I was under the impression we want to pull in changes when content that we remote_include changes? Is that not the case, or is that only sometimes the case?

yzdocs commented 3 years ago

Thanks, Rich! I wonder why your base build time is so much longer than mine =( Thanks for the other info, good to know.

ianjevans commented 3 years ago

Hi Ian, thanks! I did take a brief look at the Cache API, but I was under the impression we want to pull in changes when content that we remote_include changes? Is that not the case, or is that only sometimes the case?

For TeamCity/netlify builds, it will always pull in the remote content because it will be a fresh bootstrap/cache.

For local builds, the content would be cached unless you specify --disable-disk-cache or set disable_disk_cache: true in a config file. https://jekyllrb.com/docs/configuration/options/

So we could have a Makefile target or options file that would take longer but disable caching to ensure you're always looking at the latest content.

yzdocs commented 3 years ago

I don't think we want to disable cache for local builds because then it doesn't help with the issue reported on this ticket, which is focused on local builds?

ianjevans commented 3 years ago

I agree, but if there were an alternate make target that would mimic a fresh build by disabling caching that would capture all the use-cases, I think.

The tradeoff for faster local incremental builds would be potentially having stale remote content, so it wouldn't match the output from TeamCity/netlify. To ensure you're seeing locally what TeamCity/netlify is seeing, run e.g. make cockroachdb-prod.

yzdocs commented 3 years ago

Sounds good if the tradeoff works for docs! I defer to writers of course.

ianjevans commented 3 years ago

I pushed a new 1.1.4 version of jekyll-remote-include that adds caching. Here's the profile output from the first build with a clean cache:

Build Process Summary:

| PHASE      |    TIME |
+------------+---------+
| RESET      |  0.0002 |
| READ       |  1.9888 |
| GENERATE   |  0.9864 |
| RENDER     | 17.6679 |
| CLEANUP    |  0.0550 |
| WRITE      |  2.2707 |
+------------+---------+
| TOTAL TIME | 22.9690 |

Site Render Stats:

| Filename                                                           | Count |      Bytes |   Time |
+--------------------------------------------------------------------+-------+------------+--------+
| sitemap.xml                                                        |     1 |    274.76K |  1.680 |
| v21.1/build-a-spring-app-with-cockroachdb-jpa.md                   |     1 |     69.28K |  1.599 |
| v1.1/functions-and-operators.md                                    |     1 |      2.95K |  1.088 |
| v1.0/functions-and-operators.md                                    |     1 |      2.62K |  0.988 |
| _layouts/default.html                                              |  3143 | 430026.45K |  0.974 |
| _layouts/page.html                                                 |  3142 | 110011.39K |  0.849 |
| v20.2/build-a-spring-app-with-cockroachdb-mybatis.md               |     1 |     55.80K |  0.843 |
| v21.1/build-a-spring-app-with-cockroachdb-jdbc.md                  |     1 |     96.22K |  0.821 |
| v21.1/functions-and-operators.md                                   |     1 |    542.60K |  0.416 |
| v20.2/functions-and-operators.md                                   |     1 |    480.04K |  0.385 |
| v19.1/functions-and-operators.md                                   |     1 |    251.28K |  0.380 |
| v2.1/functions-and-operators.md                                    |     1 |    241.52K |  0.379 |
| v20.1/functions-and-operators.md                                   |     1 |    303.01K |  0.360 |
| v19.2/functions-and-operators.md                                   |     1 |    257.32K |  0.338 |
| v21.1/build-a-python-app-with-cockroachdb-django.md                |     1 |     37.90K |  0.276 |
| v2.0/functions-and-operators.md                                    |     1 |    179.48K |  0.264 |
| v21.1/build-a-ruby-app-with-cockroachdb-activerecord.md            |     1 |     21.69K |  0.195 |
| _includes/copy-clipboard.html                                      | 29630 |  18258.33K |  0.166 |
| v20.2/build-a-ruby-app-with-cockroachdb.md                         |     1 |     19.47K |  0.164 |
| v2.1/sql-grammar.md                                                |     1 |   1020.80K |  0.094 |
| v21.1/build-a-go-app-with-cockroachdb-pq.md                        |     1 |     20.31K |  0.093 |
| _includes/v2.1/sql/diagrams/stmt_block.html                        |     1 |   1019.92K |  0.092 |
| v19.1/cluster-settings.md                                          |     1 |     27.19K |  0.091 |
| v20.2/build-a-java-app-with-cockroachdb.md                         |     1 |     44.74K |  0.089 |
| v21.1/build-a-java-app-with-cockroachdb-hibernate.md               |     1 |     34.25K |  0.088 |
| v21.1/build-a-go-app-with-cockroachdb-gorm.md                      |     1 |     20.38K |  0.088 |
| v2.1/cluster-settings.md                                           |     1 |     17.11K |  0.086 |
| v19.2/cluster-settings.md                                          |     1 |     29.44K |  0.085 |
| v21.1/build-a-spring-app-with-cockroachdb-mybatis.md               |     1 |     56.75K |  0.085 |
| v21.1/cluster-settings.md                                          |     1 |     23.86K |  0.085 |
| v21.1/build-a-nodejs-app-with-cockroachdb.md                       |     1 |     19.86K |  0.083 |
| v21.1/build-a-python-app-with-cockroachdb.md                       |     1 |     24.35K |  0.081 |
| v20.1/cluster-settings.md                                          |     1 |     16.86K |  0.081 |
| v21.1/build-a-go-app-with-cockroachdb.md                           |     1 |     20.52K |  0.078 |
| v21.1/build-a-nodejs-app-with-cockroachdb-sequelize.md             |     1 |     17.78K |  0.075 |
| v20.2/cluster-settings.md                                          |     1 |     21.56K |  0.075 |
| v2.1/create-and-manage-users.md                                    |     1 |     15.43K |  0.052 |
| v2.1/deploy-cockroachdb-on-premises.md                             |     1 |     67.75K |  0.029 |
| _includes/v2.1/prod-deployment/secure-scale-cluster.md             |     5 |     56.41K |  0.028 |
| jekyll-redirect-from-0.15.0/lib/jekyll-redirect-from/redirect.html |   476 |    283.16K |  0.016 |
| v21.1/orchestrate-a-local-cluster-with-kubernetes.md               |     1 |    136.20K |  0.012 |
| v19.2/sql-grammar.md                                               |     1 |   1129.42K |  0.010 |
| releases/index.md                                                  |     1 |    263.52K |  0.010 |
| _includes/head.html                                                |     5 |     16.37K |  0.010 |
| v21.1/orchestrate-cockroachdb-with-kubernetes.md                   |     1 |    241.27K |  0.009 |
| v20.1/configure-replication-zones.md                               |     1 |     82.53K |  0.009 |
| v20.2/orchestrate-cockroachdb-with-kubernetes.md                   |     1 |    241.56K |  0.008 |
| v2.1/build-a-ruby-app-with-cockroachdb.md                          |     1 |     26.87K |  0.008 |
| v19.2/admin-ui-access-and-navigate.md                              |     1 |      8.91K |  0.008 |
| v20.2/build-a-php-app-with-cockroachdb.md                          |     1 |     23.35K |  0.008 |
+--------------------------------------------------------------------+-------+------------+--------+
| TOTAL (for 50 files)                                               | 36445 | 566160.54K | 13.832 |

                    done in 22.992 seconds.

And here's the profile output from a subsequent build, where remote_includes are now hitting the cache.

Build Process Summary:

| PHASE      |    TIME |
+------------+---------+
| RESET      |  0.0002 |
| READ       |  1.4033 |
| GENERATE   |  1.0310 |
| RENDER     |  7.4597 |
| CLEANUP    |  0.0672 |
| WRITE      |  1.0844 |
+------------+---------+
| TOTAL TIME | 11.0458 |

Site Render Stats:

| Filename                                                           | Count |      Bytes |  Time |
+--------------------------------------------------------------------+-------+------------+-------+
| sitemap.xml                                                        |     1 |    274.76K | 1.684 |
| _layouts/default.html                                              |  3143 | 430026.45K | 1.078 |
| _layouts/page.html                                                 |  3142 | 110011.39K | 0.822 |
| _includes/copy-clipboard.html                                      | 29630 |  18258.33K | 0.188 |
| v20.2/orchestrate-cockroachdb-with-kubernetes.md                   |     1 |    241.56K | 0.063 |
| v20.1/deploy-cockroachdb-on-microsoft-azure.md                     |     1 |     69.34K | 0.020 |
| jekyll-redirect-from-0.15.0/lib/jekyll-redirect-from/redirect.html |   476 |    283.16K | 0.015 |
| v21.1/build-a-java-app-with-cockroachdb-jooq.md                    |     1 |     44.90K | 0.013 |
| v21.1/orchestrate-cockroachdb-with-kubernetes-insecure.md          |     1 |    158.24K | 0.012 |
| v21.1/sql-grammar.md                                               |     1 |   1425.01K | 0.012 |
| releases/index.md                                                  |     1 |    263.52K | 0.011 |
| v20.1/admin-ui-hardware-dashboard.md                               |     1 |     10.04K | 0.010 |
| v19.2/orchestrate-cockroachdb-with-kubernetes-insecure.md          |     1 |    114.98K | 0.009 |
| _includes/main-menu-contained-dropdown.html                        |     1 |     37.02K | 0.009 |
| v21.1/build-a-go-app-with-cockroachdb-pq.md                        |     1 |     20.31K | 0.009 |
| v20.2/create-index.md                                              |     1 |     53.72K | 0.009 |
| v19.2/performance-tuning-insecure.md                               |     1 |    176.72K | 0.008 |
| v19.2/add-column.md                                                |     1 |     16.60K | 0.008 |
| v20.2/performance-tuning-insecure.md                               |     1 |    177.95K | 0.008 |
| v20.1/performance-tuning-insecure.md                               |     1 |    177.73K | 0.008 |
| v2.1/performance-tuning-insecure.md                                |     1 |    174.95K | 0.008 |
| v21.1/performance-tuning-insecure.md                               |     1 |    178.05K | 0.008 |
| v19.1/performance-tuning-insecure.md                               |     1 |    174.93K | 0.007 |
| v19.1/orchestrate-cockroachdb-with-kubernetes-insecure.md          |     1 |    101.63K | 0.007 |
| v20.1/orchestrate-cockroachdb-with-kubernetes-insecure.md          |     1 |    123.97K | 0.007 |
| _includes/head.html                                                |     4 |     13.14K | 0.007 |
| v2.0/orchestrate-cockroachdb-with-kubernetes-insecure.md           |     1 |     54.72K | 0.006 |
| v2.0/deploy-cockroachdb-on-aws.md                                  |     1 |     58.21K | 0.006 |
| v2.1/build-a-ruby-app-with-cockroachdb.md                          |     1 |     26.87K | 0.006 |
| v20.2/orchestrate-cockroachdb-with-kubernetes-insecure.md          |     1 |    158.36K | 0.006 |
| v20.1/remove-nodes.md                                              |     1 |     32.97K | 0.006 |
| v21.1/deploy-cockroachdb-on-aws.md                                 |     1 |     70.91K | 0.006 |
| v20.2/configure-replication-zones.md                               |     1 |     82.53K | 0.006 |
| v19.1/remove-nodes.md                                              |     1 |     31.82K | 0.006 |
| v21.1/orchestrate-cockroachdb-with-kubernetes.md                   |     1 |    241.27K | 0.006 |
| v20.2/sql-grammar.md                                               |     1 |   1425.04K | 0.006 |
| v20.1/deploy-cockroachdb-on-aws.md                                 |     1 |     64.08K | 0.006 |
| v20.1/demo-low-latency-multi-region-deployment.md                  |     1 |    114.79K | 0.006 |
| v20.2/demo-low-latency-multi-region-deployment.md                  |     1 |    114.80K | 0.006 |
| v19.2/orchestrate-cockroachdb-with-kubernetes.md                   |     1 |    177.37K | 0.006 |
| v21.1/demo-low-latency-multi-region-deployment.md                  |     1 |    114.90K | 0.005 |
| v21.1/configure-replication-zones.md                               |     1 |     83.59K | 0.005 |
| v19.2/remove-nodes.md                                              |     1 |     31.80K | 0.005 |
| v19.2/configure-replication-zones.md                               |     1 |     82.03K | 0.005 |
| v21.1/remove-nodes.md                                              |     1 |     31.85K | 0.005 |
| v19.2/build-a-go-app-with-cockroachdb-pq.md                        |     1 |     29.01K | 0.005 |
| v2.0/sql-grammar.md                                                |     1 |    989.14K | 0.005 |
| v19.2/demo-low-latency-multi-region-deployment.md                  |     1 |    107.94K | 0.005 |
| v20.1/orchestrate-cockroachdb-with-kubernetes.md                   |     1 |    186.57K | 0.005 |
| v2.1/orchestrate-cockroachdb-with-kubernetes-insecure.md           |     1 |     89.20K | 0.005 |
+--------------------------------------------------------------------+-------+------------+-------+
| TOTAL (for 50 files)                                               | 36440 | 567008.16K | 4.176 |

                    done in 11.075 seconds.
ianjevans commented 3 years ago

Actually thinking about it, a better option than special build targets would be to remove .jekyll-cache/Jekyll/RemoteInclude during make clean. That way if you wanted to ensure you were getting the latest you'd just make clean && make cockroachdb-build.

ianjevans commented 3 years ago

LMK if you want me to make those changes to #10004 in include_cached or open a separate PR.

yzdocs commented 3 years ago

Awesome, thanks, Ian! Output looks great!

Personally I would rather have a separate build option than bundle it with make clean because those are two different use cases to me, and someone might want to build much more often than they want to start with fresh vendor.

What do you think, Rich? Is the improvement from #10004 good enough for now, or should we also introduce a new local build option given the tradeoff Ian explained above? (Since you'll be the one using this new option most heavily I assume)

rmloveland commented 3 years ago

yingzhuchin @.***> writes:

What do you think, Rich? Is the improvement from #10004 good enough for now, or should we also introduce a new local build option given the tradeoff Ian explained above?

I think the improvement from #10004 is good enough for now from my POV. I'm hesitant to ask for more special build options because I will probably not remember to use them :-}

Thanks YZ and Ian!

yzdocs commented 3 years ago

Got it, thanks Rich! Figured I'd ask since you'd be the one using any new options.