Skip to content

Refactor CSV and Excel enumerators for improved performance and clarity #60

Refactor CSV and Excel enumerators for improved performance and clarity

Refactor CSV and Excel enumerators for improved performance and clarity #60

Triggered via pull request July 21, 2026 01:59
Status Success
Total duration 3m 26s
Artifacts 5

benchmark-pr.yml

on: pull_request
Matrix: benchmark
Post PR Comment
7s
Post PR Comment
Fit to window
Zoom out
Zoom in

Annotations

50 warnings
Run (coldstart): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L78
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (coldstart): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Fix this implementation of 'IDisposable' to conform to the dispose pattern.
Run (coldstart): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L77
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (coldstart): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L22
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (coldstart): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Provide an overridable implementation of Dispose(bool) on 'SyncRowEnumerator' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1063)
Run (coldstart): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L21
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (coldstart): src/ExcelReader.Core/Writer/Internal/CellFormatter.cs#L90
All 'WriteNumber' method overloads should be adjacent.
Run (parse): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Fix this implementation of 'IDisposable' to conform to the dispose pattern.
Run (parse): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L22
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (parse): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Provide an overridable implementation of Dispose(bool) on 'SyncRowEnumerator' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1063)
Run (parse): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L21
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (parse): src/ExcelReader.Core/Writer/Internal/CellFormatter.cs#L90
All 'WriteNumber' method overloads should be adjacent.
Run (realdata): src/ExcelReader.Core/Writer/WorkbookRecordWriter.cs#L135
A static field in a generic type is not shared among instances of different close constructed types.
Run (realdata): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L78
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (realdata): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L77
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (realdata): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L22
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (realdata): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L21
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (realdata): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Fix this implementation of 'IDisposable' to conform to the dispose pattern.
Run (realdata): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Provide an overridable implementation of Dispose(bool) on 'SyncRowEnumerator' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1063)
Run (read): src/ExcelReader.Core/Writer/Internal/CellFormatter.cs#L90
All 'WriteNumber' method overloads should be adjacent.
Run (read): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L78
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (read): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L77
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (read): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Fix this implementation of 'IDisposable' to conform to the dispose pattern.
Run (read): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Provide an overridable implementation of Dispose(bool) on 'SyncRowEnumerator' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1063)
Run (read): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L22
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (read): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L21
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (write): src/ExcelReader.Core/Writer/Internal/CellFormatter.cs#L90
All 'WriteNumber' method overloads should be adjacent.
Run (write): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L78
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (write): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Fix this implementation of 'IDisposable' to conform to the dispose pattern.
Run (write): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L77
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (write): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L16
Provide an overridable implementation of Dispose(bool) on 'SyncRowEnumerator' or mark the type as sealed. A call to Dispose(false) should only clean up native resources. A call to Dispose(true) should clean up both managed and native resources. (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1063)
Run (write): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L22
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)
Run (write): src/ExcelReader.Core/Parser/Internal/RowEnumeratorBase.cs#L21
Do not declare visible instance fields (https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1051)

Artifacts

Produced during runtime
Name Size Digest
bench-md-coldstart Expired
633 Bytes
sha256:f3ef62b41b6424ac7c34c21f880893980e9bd0337d7ae3fa1436b19efc80bdd6
bench-md-parse Expired
1.47 KB
sha256:885100666f6967feed52c32842b1b1191cb0802a7c749ed862339827b3ee86f3
bench-md-read Expired
2.1 KB
sha256:14ab74abe4dc327b69eb5cef99439a7239c4c50804bc9520eb9a0d77b235819e
bench-md-realdata Expired
903 Bytes
sha256:980238fa6e18459ea6969ac3fb92db82a858953a8485722c6fda33a340fba262
bench-md-write Expired
2.69 KB
sha256:ed1812b2cfdf66b55d1528657bcd7c10d396bfee768aad73b003adaf0cfb152d