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

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions