FILE-04Large file, bounded memory
What this test proves
Large multi-frame files open without loading pixel data into memory.
How it is tested
- Write a 300 MiB MR file (600 frames of 512 x 512 x 16-bit) to a temp folder with a plain writer, not DicomKit
- Open it with DicomFile.OpenAsync and measure managed allocations
- Read frames 0, 1, 299, 598 and 599 through LazyDicomPixelData and compare each with the generator
- Pass if opening allocates less than 64 MiB, less than 32 MiB stays held after the reads, and all frames match; the file is deleted
Expected result for each license type
- No key: Asks for key: stops and asks for a license key
- Developer: Works
- Pro: Works
- Enterprise: Works
- Expired: Works
- Revoked: Works
Results
| License | Expected | .NET 8.0 | .NET 9.0 | .NET 10.0 | Result |
|---|---|---|---|---|---|
| No key | Asks for key |
Pass
Asked for key
|
Pass
Asked for key
|
Pass
Asked for key
|
Pass |
| Developer | Works |
Pass
Worked
|
Pass
Worked
|
Pass
Worked
|
Pass |
| Pro | Works |
Pass
Worked
|
Pass
Worked
|
Pass
Worked
|
Pass |
| Enterprise | Works |
Pass
Worked
|
Pass
Worked
|
Pass
Worked
|
Pass |
| Expired | Works |
Pass
Worked
|
Pass
Worked
|
Pass
Worked
|
Pass |
| Revoked | Works |
Pass
Worked
|
Pass
Worked
|
Pass
Worked
|
Pass |
Recorded evidence
Captured by the automated test during the run, per license and .NET version.
| License | .NET | Captured | Time |
|---|---|---|---|
| No key | .NET 8.0 |
DicomKitLicenseException: DicomKit needs a license key. Get a free Developer key at https://dicomkit.plogic.dev/DeveloperKey (paid plans for production: https://dicomkit.plogic.dev/Pricing;
license state KeyRequired (NoKey)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [none] [net8.0] Large file, bounded memory(caseId: "FILE-04", license: "none")"
|
187 ms |
| No key | .NET 9.0 |
DicomKitLicenseException: DicomKit needs a license key. Get a free Developer key at https://dicomkit.plogic.dev/DeveloperKey (paid plans for production: https://dicomkit.plogic.dev/Pricing;
license state KeyRequired (NoKey)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [none] [net9.0] Large file, bounded memory(caseId: "FILE-04", license: "none")"
|
179 ms |
| No key | .NET 10.0 |
DicomKitLicenseException: DicomKit needs a license key. Get a free Developer key at https://dicomkit.plogic.dev/DeveloperKey (paid plans for production: https://dicomkit.plogic.dev/Pricing;
license state KeyRequired (NoKey)
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [none] [net10.0] Large file, bounded memory(caseId: "FILE-04", license: "none")"
|
183 ms |
| Developer | .NET 8.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 162 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1023 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [developer] [net8.0] Large file, bounded memory(caseId: "FILE-04", license: "developer")"
|
191 ms |
| Developer | .NET 9.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 168 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [developer] [net9.0] Large file, bounded memory(caseId: "FILE-04", license: "developer")"
|
199 ms |
| Developer | .NET 10.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 165 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [developer] [net10.0] Large file, bounded memory(caseId: "FILE-04", license: "developer")"
|
194 ms |
| Pro | .NET 8.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 166 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [pro] [net8.0] Large file, bounded memory(caseId: "FILE-04", license: "pro")"
|
195 ms |
| Pro | .NET 9.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 166 ms)
DicomFile.OpenAsync took 1 ms and allocated 39 KiB managed memory; 1023 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [pro] [net9.0] Large file, bounded memory(caseId: "FILE-04", license: "pro")"
|
195 ms |
| Pro | .NET 10.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 165 ms)
DicomFile.OpenAsync took 1 ms and allocated 39 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [pro] [net10.0] Large file, bounded memory(caseId: "FILE-04", license: "pro")"
|
195 ms |
| Enterprise | .NET 8.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 164 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [enterprise] [net8.0] Large file, bounded memory(caseId: "FILE-04", license: "enterprise")"
|
193 ms |
| Enterprise | .NET 9.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 157 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [enterprise] [net9.0] Large file, bounded memory(caseId: "FILE-04", license: "enterprise")"
|
184 ms |
| Enterprise | .NET 10.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 153 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [enterprise] [net10.0] Large file, bounded memory(caseId: "FILE-04", license: "enterprise")"
|
180 ms |
| Expired | .NET 8.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 161 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [expired] [net8.0] Large file, bounded memory(caseId: "FILE-04", license: "expired")"
|
190 ms |
| Expired | .NET 9.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 163 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [expired] [net9.0] Large file, bounded memory(caseId: "FILE-04", license: "expired")"
|
191 ms |
| Expired | .NET 10.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 163 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [expired] [net10.0] Large file, bounded memory(caseId: "FILE-04", license: "expired")"
|
190 ms |
| Revoked | .NET 8.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 164 ms)
DicomFile.OpenAsync took 1 ms and allocated 38 KiB managed memory; 1023 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [revoked] [net8.0] Large file, bounded memory(caseId: "FILE-04", license: "revoked")"
|
192 ms |
| Revoked | .NET 9.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 163 ms)
DicomFile.OpenAsync took 1 ms and allocated 39 KiB managed memory; 1022 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [revoked] [net9.0] Large file, bounded memory(caseId: "FILE-04", license: "revoked")"
|
191 ms |
| Revoked | .NET 10.0 |
generated large_mr_512x512x600.dcm: 314573458 bytes, MR, Explicit VR LE, 512x512x16-bit x 600 frames (written in 165 ms)
DicomFile.OpenAsync took 1 ms and allocated 39 KiB managed memory; 1023 KiB retained after frame reads
LazyDicomPixelData: FrameCount=600, frames 0,1,299,598,599 read (524288 bytes each) and equal to the generator
Test: DicomKit.ReleaseTests.ReleaseMatrix.Case "FILE-04 [revoked] [net10.0] Large file, bounded memory(caseId: "FILE-04", license: "revoked")"
|
195 ms |
Test run
- Run
- 2ce13edc-f525-4ffb-ae07-648e5221cef9
- Started (UTC)
- 2026-10-26 21:15:23, finished 21:21:01
- Source commit
- b804fb7
- Environment
- Microsoft Windows 11 Pro 10.0.26200 build 26200; Microsoft.AspNetCore.App 8.0.29, Microsoft.AspNetCore.App 9.0.18, Microsoft.AspNetCore.App 10.0.12, Microsoft.NETCore.App 3.1.32, Microsoft.NETCore.App 8.0.3, Microsoft.NETCore.App 8.0.29, Microsoft.NETCore.App 9.0.18, Microsoft.NETCore.App 10.0.12, Microsoft.WindowsDesktop.App 8.0.3, Microsoft.WindowsDesktop.App 8.0.29, Microsoft.WindowsDesktop.App 9.0.18, Microsoft.WindowsDesktop.App 10.0.12; Visual Studio Community 2026 18.10.3 (18.10.12224.181)
- DicomKit
- 1.0.0 SHA-256 96ada39062c07bca37511abfb6baac0a44d914fb705bac01d77cb02146fdac0e
- DicomKit.Cli
- 1.0.0 SHA-256 f8ffe70dc375cfe0d60881027e7cedb2502bc78ec5f5037f1d41b6c2481e1c84
- DicomKit.Imaging
- 1.0.0 SHA-256 015b51ea833039d934ba153cae50d393fb77846430ca3fc3d65b4fb8cf4346ed
- DicomKit.Web
- 1.0.0 SHA-256 2a2f4f7f02e1849929294062bee7dd8f3a24449428469c1fddb6982e77218a7b
- DicomKit.Web.AspNetCore
- 1.0.0 SHA-256 daa1105881f1c0b60ca9c788d52d41445bd653a9d190c8862a2b2b1386d5e37c
Resources
README
Runnable console samples
Release notes
Release test report
Issue tracker
NuGet packages (opens in a new tab)
Found something that doesn't work as listed? Report an issue.