Skip to content

Sphinx 8.2.0 uses significantly more memory than 8.1.x #13370

@djhoese

Description

@djhoese

Describe the bug

Builds are now using much more memory than with 8.1.x and my readthedocs builds are failing. From what I can tell I'm going from about a maximum RSS of ~2.6GB to ~8.6GB.

How to Reproduce

  1. On any linux-like system with GNU time available (ex. /usr/bin/time on ubuntu, different than builtin bash time command) with 8.1.3 installed with theoretically any source files, run /usr/bin/time -v sphinx-build -b html source build/html. The output should include a "Maximum resident set size".
  2. Clean the build dir and run again with sphinx 8.2.0 and comnpare the Maximum RSS.

A full comparison with my project:

git clone https://github.com/pytroll/satpy`
cd satpy/doc

conda env create -n satpy_docs -f rtd_environment.yaml
conda activate satpy_docs

touch source/area_def_list.rst
make clean
/usr/bin/time -v make html

8.1.3 results

Build finished. The HTML pages are in build/html.
	Command being timed: "make html"
	User time (seconds): 75.01
	System time (seconds): 1.38
	Percent of CPU this job got: 100%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 1:15.76
	Average shared text size (kbytes): 0
	Average unshared data size (kbytes): 0
	Average stack size (kbytes): 0
	Average total size (kbytes): 0
	Maximum resident set size (kbytes): 2579220
	Average resident set size (kbytes): 0

8.2.0 results


Build finished. The HTML pages are in build/html.
	Command being timed: "make html"
	User time (seconds): 84.49
	System time (seconds): 4.46
	Percent of CPU this job got: 100%
	Elapsed (wall clock) time (h:mm:ss or m:ss): 1:28.61
	Average shared text size (kbytes): 0
	Average unshared data size (kbytes): 0
	Average stack size (kbytes): 0
	Average total size (kbytes): 0
	Maximum resident set size (kbytes): 8653184
	Average resident set size (kbytes): 0

Environment Information

Platform:              linux; (Linux-6.9.3-76060903-generic-x86_64-with-glibc2.35)
Python version:        3.12.8 | packaged by conda-forge | (main, Dec  5 2024, 14:24:40) [GCC 13.3.0])
Python implementation: CPython
Sphinx version:        8.2.0
Docutils version:      0.21.2
Jinja2 version:        3.1.5
Pygments version:      2.18.0

Sphinx extensions

extensions = ["sphinx.ext.autodoc", "sphinx.ext.intersphinx", "sphinx.ext.todo", "sphinx.ext.coverage",
              "sphinx.ext.doctest", "sphinx.ext.napoleon", "sphinx.ext.autosummary", "sphinx.ext.autosectionlabel",
              "doi_role", "sphinx.ext.viewcode", "sphinxcontrib.apidoc",
              "sphinx.ext.mathjax"]

I'll work on reducing this and update.

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions