Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Markdown page navigation slow on dev server when having multiple thousand md pages #2674

Closed
coffeephile opened this issue Jun 21, 2024 · 0 comments · Fixed by #2675
Closed
Labels
enhancement New feature or request

Comments

@coffeephile
Copy link
Contributor

coffeephile commented Jun 21, 2024

Is your feature request related to a problem? Please describe

When having a few thousand markdown pages (2,000+), navigating between markdown pages when running the dev server can take seconds to load the new page.
(I observed multiple seconds on an Intel MacBook Pro and 1~2 seconds on a M1 Pro MacBook Pro per page transition.)

This problem explicitly occurs on the local dev server, for markdown pages only, and only when having 2,000+ markdown pages, making local development quite frustrating.
Build times are fine though and navigating on the SSR generated site is snappy.

Describe the solution you'd like

The problem seems to be caused by not using the content cache on localhost.

if (isPrerendering && cachedContents.length) {
return cachedContents
}

I assume not using the cache keeps hot reload working when files are changed, however this seems to cause the severe degradation in performance when dealing with lots of markdown pages.

To fix the issue I suggest using the cache on localhost as well, and flushing the cache when a file change is detected, to keep hot reload working.
I will create a PR (draft) later to address this.

Describe alternatives you've considered

N/A

Additional context

Video showing the issue:

Screen.Recording.2024-06-21.at.18.34.56.mov

On the video loading times are still < 1s, however the situation gets worse for more complex markdown pages.

Video showing the fix I'm working on:

Screen.Recording.2024-06-21.at.18.40.47.mov

Reproduction

I've created a project on StackBlitz to reproduce the issue.
https://stackblitz.com/~/github.com/coffeephile/nuxt-huge-project-test

  1. Make sure to check out branch nuxt-content-performance-patch
  2. Install packages npm i
  3. Run NUXT_NUM_PAGES=10000 npm run dev (generate 10,000 markdown pages)
  4. Open preview in new tab (or better: run locally on your machine)

To apply the fix:

  1. Run chmod +x patch-content-localhost.sh
  2. Run ./patch-content-localhost.sh
  3. Run NUXT_NUM_PAGES=10000 npm run dev
  4. Open preview in new tab (or better: run locally on your machine)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
1 participant