Skip to content

Conversation

@GromNaN
Copy link
Member

@GromNaN GromNaN commented Dec 4, 2025

Q A
Type improvement
BC Break yes
Fixed issues #2870

Remove the Type::closureToPhp() that is used for generating the hydrator classes.

Doing some benchmarks, I don't see a significant difference.

Before

./vendor/bin/phpbench run benchmark/Document/HydrateDocumentBench.php
PHPBench (1.4.3) running benchmarks...
with configuration file: phpbench.json
with PHP version 8.5.0, xdebug ✔, opcache ❌

\Doctrine\ODM\MongoDB\Benchmark\Document\HydrateDocumentBench

    benchHydrateDocument....................I9 - Mo1.221ms (±11.53%)
    benchHydrateDocumentWithEmbedOne........I9 - Mo1.117ms (±5.89%)
    benchHydrateDocumentWithEmbedMany.......I9 - Mo1.225ms (±7.01%)
    benchHydrateDocumentWithReferenceOne....I9 - Mo1.214ms (±4.15%)
    benchHydrateDocumentWithReferenceMany...I9 - Mo1.199ms (±9.18%)

Subjects: 5, Assertions: 0, Failures: 0, Errors: 0

After

./vendor/bin/phpbench run benchmark/Document/HydrateDocumentBench.php
PHPBench (1.4.3) running benchmarks...
with configuration file: phpbench.json
with PHP version 8.5.0, xdebug ✔, opcache ❌

\Doctrine\ODM\MongoDB\Benchmark\Document\HydrateDocumentBench

    benchHydrateDocument....................I9 - Mo1.241ms (±5.25%)
    benchHydrateDocumentWithEmbedOne........I9 - Mo1.161ms (±6.17%)
    benchHydrateDocumentWithEmbedMany.......I9 - Mo1.222ms (±7.48%)
    benchHydrateDocumentWithReferenceOne....I9 - Mo1.238ms (±7.36%)
    benchHydrateDocumentWithReferenceMany...I9 - Mo1.215ms (±4.35%)

Subjects: 5, Assertions: 0, Failures: 0, Errors: 0

@GromNaN GromNaN added this to the 3.0.0 milestone Dec 4, 2025
@malarzm
Copy link
Member

malarzm commented Dec 5, 2025

It is 10% slower though

@GromNaN
Copy link
Member Author

GromNaN commented Dec 5, 2025

It is 10% slower though

That's true, but benchmarks vary quite a bit. In any case, we know that it cannot be more performant.

@GromNaN GromNaN closed this Dec 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants