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

Speedup quoting in logging #47

Open
AlekSi opened this issue Sep 23, 2024 · 0 comments
Open

Speedup quoting in logging #47

AlekSi opened this issue Sep 23, 2024 · 0 comments
Labels
code/perf Performance improvements

Comments

@AlekSi
Copy link
Member

AlekSi commented Sep 23, 2024

#45 changes quotes for BSON logging from " to `. But it also made logging slower:

benchstat DocumentLogMessage/handshake1-10 514.1n ± ∞ ¹ 698.9n ± ∞ ¹ +35.95% (p=0.008 n=5) DocumentLogMessage/handshake2-10 513.7n ± ∞ ¹ 702.0n ± ∞ ¹ +36.66% (p=0.008 n=5) DocumentLogMessage/handshake3-10 341.6n ± ∞ ¹ 533.6n ± ∞ ¹ +56.21% (p=0.008 n=5) DocumentLogMessage/handshake4-10 2.088µ ± ∞ ¹ 2.776µ ± ∞ ¹ +32.95% (p=0.008 n=5) DocumentLogMessage/all-10 1.089µ ± ∞ ¹ 2.019µ ± ∞ ¹ +85.40% (p=0.008 n=5) DocumentLogMessage/nested-10 146.4n ± ∞ ¹ 214.9n ± ∞ ¹ +46.79% (p=0.008 n=5) DocumentLogMessage/float64Doc-10 195.8n ± ∞ ¹ 252.2n ± ∞ ¹ +28.80% (p=0.008 n=5) DocumentLogMessage/stringDoc-10 141.9n ± ∞ ¹ 233.1n ± ∞ ¹ +64.27% (p=0.008 n=5) DocumentLogMessage/binaryDoc-10 154.9n ± ∞ ¹ 208.0n ± ∞ ¹ +34.28% (p=0.008 n=5) DocumentLogMessage/objectIDDoc-10 172.4n ± ∞ ¹ 224.6n ± ∞ ¹ +30.28% (p=0.008 n=5) DocumentLogMessage/boolDoc-10 108.1n ± ∞ ¹ 160.7n ± ∞ ¹ +48.66% (p=0.008 n=5) DocumentLogMessage/timeDoc-10 184.3n ± ∞ ¹ 240.2n ± ∞ ¹ +30.33% (p=0.008 n=5) DocumentLogMessage/nullDoc-10 106.0n ± ∞ ¹ 159.4n ± ∞ ¹ +50.38% (p=0.008 n=5) DocumentLogMessage/regexDoc-10 112.0n ± ∞ ¹ 166.5n ± ∞ ¹ +48.66% (p=0.008 n=5) DocumentLogMessage/int32Doc-10 133.2n ± ∞ ¹ 191.9n ± ∞ ¹ +44.07% (p=0.008 n=5) DocumentLogMessage/timestampDoc-10 132.7n ± ∞ ¹ 187.2n ± ∞ ¹ +41.07% (p=0.008 n=5) DocumentLogMessage/int64Doc-10 153.9n ± ∞ ¹ 207.4n ± ∞ ¹ +34.76% (p=0.008 n=5) DocumentLogMessage/decimal128Doc-10 120.0n ± ∞ ¹ 170.4n ± ∞ ¹ +42.00% (p=0.008 n=5) DocumentLogMessage/smallDoc-10 123.4n ± ∞ ¹ 213.7n ± ∞ ¹ +73.18% (p=0.008 n=5) DocumentLogMessage/smallArray-10 123.5n ± ∞ ¹ 211.9n ± ∞ ¹ +71.58% (p=0.008 n=5) DocumentLogMessage/duplicateKeys-10 159.1n ± ∞ ¹ 228.0n ± ∞ ¹ +43.31% (p=0.008 n=5) DocumentLogMessageDeep/handshake1-10 2.136µ ± ∞ ¹ 2.851µ ± ∞ ¹ +33.47% (p=0.008 n=5) DocumentLogMessageDeep/handshake2-10 2.141µ ± ∞ ¹ 2.834µ ± ∞ ¹ +32.37% (p=0.008 n=5) DocumentLogMessageDeep/handshake3-10 468.1n ± ∞ ¹ 666.0n ± ∞ ¹ +42.28% (p=0.008 n=5) DocumentLogMessageDeep/handshake4-10 11.110µ ± ∞ ¹ 9.318µ ± ∞ ¹ -16.13% (p=0.008 n=5) DocumentLogMessageDeep/all-10 2.031µ ± ∞ ¹ 2.746µ ± ∞ ¹ +35.20% (p=0.008 n=5) DocumentLogMessageDeep/nested-10 680.3n ± ∞ ¹ 1045.0n ± ∞ ¹ +53.61% (p=0.008 n=5) DocumentLogMessageDeep/float64Doc-10 196.9n ± ∞ ¹ 252.0n ± ∞ ¹ +27.98% (p=0.008 n=5) DocumentLogMessageDeep/stringDoc-10 142.9n ± ∞ ¹ 232.7n ± ∞ ¹ +62.84% (p=0.008 n=5) DocumentLogMessageDeep/binaryDoc-10 154.9n ± ∞ ¹ 208.5n ± ∞ ¹ +34.60% (p=0.008 n=5) DocumentLogMessageDeep/objectIDDoc-10 172.4n ± ∞ ¹ 224.5n ± ∞ ¹ +30.22% (p=0.008 n=5) DocumentLogMessageDeep/boolDoc-10 108.9n ± ∞ ¹ 160.8n ± ∞ ¹ +47.66% (p=0.008 n=5) DocumentLogMessageDeep/timeDoc-10 185.0n ± ∞ ¹ 239.9n ± ∞ ¹ +29.68% (p=0.008 n=5) DocumentLogMessageDeep/nullDoc-10 106.4n ± ∞ ¹ 158.9n ± ∞ ¹ +49.34% (p=0.008 n=5) DocumentLogMessageDeep/regexDoc-10 112.5n ± ∞ ¹ 166.6n ± ∞ ¹ +48.09% (p=0.008 n=5) DocumentLogMessageDeep/int32Doc-10 133.4n ± ∞ ¹ 191.4n ± ∞ ¹ +43.48% (p=0.008 n=5) DocumentLogMessageDeep/timestampDoc-10 133.7n ± ∞ ¹ 187.3n ± ∞ ¹ +40.09% (p=0.008 n=5) DocumentLogMessageDeep/int64Doc-10 154.1n ± ∞ ¹ 208.0n ± ∞ ¹ +34.98% (p=0.008 n=5) DocumentLogMessageDeep/decimal128Doc-10 119.5n ± ∞ ¹ 171.0n ± ∞ ¹ +43.10% (p=0.008 n=5) DocumentLogMessageDeep/smallDoc-10 113.1n ± ∞ ¹ 167.1n ± ∞ ¹ +47.75% (p=0.008 n=5) DocumentLogMessageDeep/smallArray-10 113.6n ± ∞ ¹ 166.9n ± ∞ ¹ +46.92% (p=0.008 n=5) DocumentLogMessageDeep/duplicateKeys-10 158.6n ± ∞ ¹ 227.9n ± ∞ ¹ +43.69% (p=0.008 n=5) DocumentLogMessageIndent/handshake1-10 516.3n ± ∞ ¹ 715.2n ± ∞ ¹ +38.52% (p=0.008 n=5) DocumentLogMessageIndent/handshake2-10 520.0n ± ∞ ¹ 718.2n ± ∞ ¹ +38.12% (p=0.008 n=5) DocumentLogMessageIndent/handshake3-10 386.6n ± ∞ ¹ 565.6n ± ∞ ¹ +46.30% (p=0.008 n=5) DocumentLogMessageIndent/handshake4-10 2.189µ ± ∞ ¹ 2.869µ ± ∞ ¹ +31.06% (p=0.008 n=5) DocumentLogMessageIndent/all-10 1.120µ ± ∞ ¹ 2.099µ ± ∞ ¹ +87.41% (p=0.008 n=5) DocumentLogMessageIndent/nested-10 151.6n ± ∞ ¹ 243.3n ± ∞ ¹ +60.49% (p=0.008 n=5) DocumentLogMessageIndent/float64Doc-10 228.4n ± ∞ ¹ 284.4n ± ∞ ¹ +24.52% (p=0.008 n=5) DocumentLogMessageIndent/stringDoc-10 150.0n ± ∞ ¹ 241.1n ± ∞ ¹ +60.73% (p=0.008 n=5) DocumentLogMessageIndent/binaryDoc-10 160.4n ± ∞ ¹ 217.0n ± ∞ ¹ +35.29% (p=0.008 n=5) DocumentLogMessageIndent/objectIDDoc-10 196.0n ± ∞ ¹ 254.6n ± ∞ ¹ +29.90% (p=0.008 n=5) DocumentLogMessageIndent/boolDoc-10 114.4n ± ∞ ¹ 171.5n ± ∞ ¹ +49.91% (p=0.008 n=5) DocumentLogMessageIndent/timeDoc-10 211.7n ± ∞ ¹ 270.1n ± ∞ ¹ +27.59% (p=0.008 n=5) DocumentLogMessageIndent/nullDoc-10 113.4n ± ∞ ¹ 169.8n ± ∞ ¹ +49.74% (p=0.008 n=5) DocumentLogMessageIndent/regexDoc-10 120.7n ± ∞ ¹ 177.0n ± ∞ ¹ +46.64% (p=0.008 n=5) DocumentLogMessageIndent/int32Doc-10 160.9n ± ∞ ¹ 217.6n ± ∞ ¹ +35.24% (p=0.008 n=5) DocumentLogMessageIndent/timestampDoc-10 138.1n ± ∞ ¹ 195.9n ± ∞ ¹ +41.85% (p=0.008 n=5) DocumentLogMessageIndent/int64Doc-10 187.7n ± ∞ ¹ 245.7n ± ∞ ¹ +30.90% (p=0.008 n=5) DocumentLogMessageIndent/decimal128Doc-10 143.4n ± ∞ ¹ 200.3n ± ∞ ¹ +39.68% (p=0.008 n=5) DocumentLogMessageIndent/smallDoc-10 147.8n ± ∞ ¹ 241.8n ± ∞ ¹ +63.60% (p=0.008 n=5) DocumentLogMessageIndent/smallArray-10 148.9n ± ∞ ¹ 241.9n ± ∞ ¹ +62.46% (p=0.008 n=5) DocumentLogMessageIndent/duplicateKeys-10 166.7n ± ∞ ¹ 249.3n ± ∞ ¹ +49.55% (p=0.008 n=5) DocumentLogMessageIndentDeep/handshake1-10 2.284µ ± ∞ ¹ 2.976µ ± ∞ ¹ +30.30% (p=0.008 n=5) DocumentLogMessageIndentDeep/handshake2-10 2.295µ ± ∞ ¹ 2.972µ ± ∞ ¹ +29.50% (p=0.008 n=5) DocumentLogMessageIndentDeep/handshake3-10 510.5n ± ∞ ¹ 728.5n ± ∞ ¹ +42.70% (p=0.008 n=5) DocumentLogMessageIndentDeep/handshake4-10 11.634µ ± ∞ ¹ 9.696µ ± ∞ ¹ -16.66% (p=0.008 n=5) DocumentLogMessageIndentDeep/all-10 2.521µ ± ∞ ¹ 3.240µ ± ∞ ¹ +28.52% (p=0.008 n=5) DocumentLogMessageIndentDeep/nested-10 1.510µ ± ∞ ¹ 1.834µ ± ∞ ¹ +21.46% (p=0.008 n=5) DocumentLogMessageIndentDeep/float64Doc-10 232.7n ± ∞ ¹ 285.1n ± ∞ ¹ +22.52% (p=0.008 n=5) DocumentLogMessageIndentDeep/stringDoc-10 149.7n ± ∞ ¹ 242.2n ± ∞ ¹ +61.79% (p=0.008 n=5) DocumentLogMessageIndentDeep/binaryDoc-10 160.5n ± ∞ ¹ 217.5n ± ∞ ¹ +35.51% (p=0.008 n=5) DocumentLogMessageIndentDeep/objectIDDoc-10 195.8n ± ∞ ¹ 255.0n ± ∞ ¹ +30.23% (p=0.008 n=5) DocumentLogMessageIndentDeep/boolDoc-10 115.1n ± ∞ ¹ 172.1n ± ∞ ¹ +49.52% (p=0.008 n=5) DocumentLogMessageIndentDeep/timeDoc-10 211.4n ± ∞ ¹ 270.2n ± ∞ ¹ +27.81% (p=0.008 n=5) DocumentLogMessageIndentDeep/nullDoc-10 113.0n ± ∞ ¹ 169.8n ± ∞ ¹ +50.27% (p=0.008 n=5) DocumentLogMessageIndentDeep/regexDoc-10 120.5n ± ∞ ¹ 176.7n ± ∞ ¹ +46.64% (p=0.008 n=5) DocumentLogMessageIndentDeep/int32Doc-10 160.2n ± ∞ ¹ 215.9n ± ∞ ¹ +34.77% (p=0.008 n=5) DocumentLogMessageIndentDeep/timestampDoc-10 137.8n ± ∞ ¹ 195.2n ± ∞ ¹ +41.65% (p=0.008 n=5) DocumentLogMessageIndentDeep/int64Doc-10 187.6n ± ∞ ¹ 246.4n ± ∞ ¹ +31.34% (p=0.008 n=5) DocumentLogMessageIndentDeep/decimal128Doc-10 143.5n ± ∞ ¹ 200.8n ± ∞ ¹ +39.93% (p=0.008 n=5) DocumentLogMessageIndentDeep/smallDoc-10 120.5n ± ∞ ¹ 176.4n ± ∞ ¹ +46.39% (p=0.008 n=5) DocumentLogMessageIndentDeep/smallArray-10 120.9n ± ∞ ¹ 176.0n ± ∞ ¹ +45.57% (p=0.008 n=5) DocumentLogMessageIndentDeep/duplicateKeys-10 167.7n ± ∞ ¹ 248.1n ± ∞ ¹ +47.94% (p=0.008 n=5) geomean 275.1n 418.2n +25.13% ² ¹ need >= 6 samples for confidence interval at level 0.95 ² benchmark set differs from baseline; geomeans may not be comparable

We should speed it up to previous values. Probably, we should embed a part of strconv package to use appendQuotedWith.

@AlekSi AlekSi added the code/perf Performance improvements label Sep 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code/perf Performance improvements
Projects
None yet
Development

No branches or pull requests

1 participant