Skip to content

perf: various improvements to speed up saveSimple - #16331

Merged
vkarpov15 merged 1 commit into
masterfrom
vkarpov15/perf-improvements
Jun 13, 2026
Merged

perf: various improvements to speed up saveSimple#16331
vkarpov15 merged 1 commit into
masterfrom
vkarpov15/perf-improvements

Conversation

@vkarpov15

Copy link
Copy Markdown
Collaborator

Summary

  1. Avoid repeated deletes when calling StateMachine clear()
  2. Early return in applyDefaults()
  3. Skipping $__resetAtomics for primitive-only docs (similar to perf(document): speed up $__reset() in saveSimple insert case #16249)
  4. Avoid unnecessary IIFE
  5. Avoid hooks that are unnecessarily marked as async functions - for example, saveSubdocs exits early if there's no subdocs, we shouldn't allocate an extra promise in that case
  6. Only one set in getKeysInSchemaOrder.js

Before:

{
  "Average mongoose save time ms": 2.41,
  "Average driver insertOne time ms": 1.45
}
{
  "Average mongoose save time ms": 2.09,
  "Average driver insertOne time ms": 1.4
}
{
  "Average mongoose save time ms": 2.05,
  "Average driver insertOne time ms": 1.42

After:

{
  "Average mongoose save time ms": 1.99,
  "Average driver insertOne time ms": 1.36
}
{
  "Average mongoose save time ms": 1.7,
  "Average driver insertOne time ms": 1.24
}
{
  "Average mongoose save time ms": 1.73,
  "Average driver insertOne time ms": 1.38
}

Examples

@AbdelrahmanHafez AbdelrahmanHafez left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!

@vkarpov15 vkarpov15 added this to the 9.7.1 milestone Jun 13, 2026
@vkarpov15
vkarpov15 merged commit 6068b7a into master Jun 13, 2026
50 checks passed
@hasezoey
hasezoey deleted the vkarpov15/perf-improvements branch June 15, 2026 11:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants