Skip to content

Commit d9d3e76

Browse files
Solution cleanup for rust project artifacts (#1005)
* Reverts a commit that accidentally re-added the rust project and related artifacts in the solution and the subsequent one that only partially fixed it The commits reverted are: e1cec4f, ff02057. * Reorganized how github templates and workflows show up in the solution * Temporarily removed MiniExcel.StressTests project and comparison powershell script After figuring out the best way to integrate the rust native binaries in an optional assembly we'll take the time to design a better benchmark * Restored readme to the last accurate state before the latest changes * Removed unused very large csv sample file * Removed the deleted stress-test instructions from the readmes
1 parent ec9c17c commit d9d3e76

13 files changed

Lines changed: 14 additions & 1000885 deletions

File tree

‎MiniExcel.slnx‎

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
<File Path=".editorconfig" />
99
<File Path=".gitattributes" />
1010
<File Path=".gitignore" />
11-
<File Path=".github\workflows\dotnet.yml" />
1211
<File Path=".runsettings" />
1312
<File Path="LICENSE" />
1413
<File Path="README.md" />
@@ -17,11 +16,21 @@
1716
<File Path="V2-Upgrade-Notes.md" />
1817
<File Path="CODE_OF_CONDUCT.md" />
1918
<File Path="CONTRIBUTING.md" />
20-
<File Path=".github\workflows\benchmark.yml" />
21-
<File Path=".github\workflows\codeql-analysis.yml" />
2219
<File Path="miniexcel.publickey" />
2320
<File Path="src\icon.png" />
2421
</Folder>
22+
<Folder Name="/Docs and settings/github/" />
23+
<Folder Name="/Docs and settings/github/templates/">
24+
<File Path=".github/ISSUE_TEMPLATE/bug_report.md" />
25+
<File Path=".github/ISSUE_TEMPLATE/feature_request.md" />
26+
</Folder>
27+
<Folder Name="/Docs and settings/github/workflows/">
28+
<File Path=".github/workflows/cli-release.yml" />
29+
<File Path=".github/workflows/release-v1.yml" />
30+
<File Path=".github\workflows\benchmark.yml" />
31+
<File Path=".github\workflows\codeql-analysis.yml" />
32+
<File Path=".github\workflows\dotnet.yml" />
33+
</Folder>
2534

2635
<Folder Name="/Releases/">
2736
<File Path="docs\README.md" />
@@ -37,7 +46,6 @@
3746
<Project Path="src\MiniExcel.Csv\MiniExcel.Csv.csproj" />
3847
<Project Path="src\MiniExcel.OpenXml/MiniExcel.OpenXml.csproj" />
3948
<Project Path="src/MiniExcel.OpenXml.FluentMapping/MiniExcel.OpenXml.FluentMapping.csproj" />
40-
<Project Path="src/MiniExcel.Rust/MiniExcel.Rust.csproj" />
4149
<Project Path="src\MiniExcel\MiniExcel.csproj" />
4250
</Folder>
4351

‎README.md‎

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ At present, most popular frameworks need to load all the data from an Excel docu
3333

3434
### MiniExcel for Rust
3535

36-
MiniExcel is also available for Rust, offering lower-level control and efficient XLSX processing. See [MiniExcel-Rust](https://github.com/mini-software/MiniExcel-Rust) and the [Rust vs. .NET query benchmark](#rust-vs-net-query-benchmark).
36+
MiniExcel is also available for Rust, offering lower-level control and efficient XLSX processing. See [MiniExcel-Rust](https://github.com/mini-software/MiniExcel-Rust).
3737

3838
```mermaid
3939
flowchart LR
@@ -135,25 +135,6 @@ dotnet run --project .\benchmarks\MiniExcel.Benchmarks -c Release -f net9.0 -- -
135135

136136
You can find the benchmarks' results for the latest release [here](benchmarks/results).
137137

138-
#### Rust vs. .NET query benchmark
139-
140-
This benchmark compares dynamic, streaming query performance. The .NET implementation uses `OpenXmlImporter.Query`, while the Rust implementation uses `MiniExcel::query`. Write performance is not included. With `MiniExcel` and `MiniExcel-Rust` checked out as sibling directories, run both implementations against the same 100,000-row XLSX workbook:
141-
142-
```powershell
143-
pwsh ./benchmarks/compare-rust-dotnet.ps1
144-
```
145-
146-
By default, each measured iteration streams the entire workbook three times, and each runtime is measured for three iterations. The script verifies that both implementations return the same row count and reports elapsed time and peak working set. Results vary by hardware, operating system, filesystem cache, and runtime version; use `-Passes` and `-Iterations` to adjust the workload.
147-
148-
The following results were collected on an AMD Ryzen 5 5600X system running Windows 10 22H2, .NET SDK 10.0.103, and Rust 1.85.0:
149-
150-
| Runtime | Method | Rows per iteration | Average elapsed | Average peak working set | Maximum peak working set |
151-
|---------|--------|-------------------:|----------------:|-------------------------:|-------------------------:|
152-
| .NET | `OpenXmlImporter.Query` | 300,000 | 6,282.31 ms | 70.65 MB | 70.71 MB |
153-
| Rust | `MiniExcel::query` | 300,000 | 3,814.61 ms | 9.79 MB | 9.83 MB |
154-
155-
These measurements are from a single machine and do not constitute a general performance guarantee.
156-
157138

158139
### Excel Query/Import <a name="getstart1"></a>
159140

‎README.zh-CN.md‎

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ MiniExcel简单、高效避免OOM的.NET处理Excel查、写、填充数据工
4141

4242
### MiniExcel Rust
4343

44-
MiniExcel 现已支持 Rust,提供更底层的控制和高效的 XLSX 处理。详见 [MiniExcel-Rust](https://github.com/mini-software/MiniExcel-Rust/blob/main/README.zh-CN.md) 与 [Rust/.NET 基准测试](#rust-与-net-基准测试)。
44+
MiniExcel 现已支持 Rust,提供更底层的控制和高效的 XLSX 处理。详见 [MiniExcel-Rust](https://github.com/mini-software/MiniExcel-Rust/blob/main/README.zh-CN.md)。
4545

4646
目前主流框架大多需要将数据全载入到内存方便操作,但这会导致内存消耗问题,MiniExcel 尝试以 Stream 角度写底层算法逻辑,能让原本1000多MB占用降低到几MB,避免内存不够情况。
4747

@@ -123,24 +123,6 @@ IterationCount=3 LaunchCount=3 WarmupCount=3
123123

124124
Benchmark History : [Link](https://github.com/mini-software/MiniExcel/issues/276)
125125

126-
#### Rust 与 .NET 基准测试
127-
128-
此基准测试比较动态流式 Query 性能:.NET 使用 `OpenXmlImporter.Query`,Rust 使用 `MiniExcel::query`,不包含 Save 性能。将 `MiniExcel` 与 `MiniExcel-Rust` 放在同级目录后,可使用同一份 100,000 行 XLSX 工作簿测试两种实现:
129-
130-
```powershell
131-
pwsh ./benchmarks/compare-rust-dotnet.ps1
132-
```
133-
134-
默认每轮完整流式读取 3 次,并对每个运行时重复测试 3 轮。脚本会校验两端读取行数一致,并输出耗时与峰值工作集。结果会受硬件、操作系统、文件缓存及运行时版本影响,可通过 `-Passes` 和 `-Iterations` 调整测试负载。
135-
136-
测试环境:AMD Ryzen 5 5600X、Windows 10 22H2、.NET SDK 10.0.103、Rust 1.85.0。
137-
138-
| 运行时 | 方法 | 每轮读取行数 | 平均耗时 | 平均峰值工作集 | 最大峰值工作集 |
139-
|--------|------|-------------:|---------:|---------------:|---------------:|
140-
| .NET | `OpenXmlImporter.Query` | 300,000 | 6,282.31 ms | 70.65 MB | 70.71 MB |
141-
| Rust | `MiniExcel::query` | 300,000 | 3,814.61 ms | 9.79 MB | 9.83 MB |
142-
143-
以上结果仅供同机环境参考,不代表所有环境下的性能表现。
144126

145127

146128
#### 导入、查询 Excel 比较

‎benchmarks/MiniExcel.Rust.PackageTests/MiniExcel.Rust.PackageTests.csproj‎

Lines changed: 0 additions & 16 deletions
This file was deleted.

‎benchmarks/MiniExcel.Rust.PackageTests/Program.cs‎

Lines changed: 0 additions & 168 deletions
This file was deleted.

‎benchmarks/MiniExcel.StressTests/MiniExcel.StressTests.csproj‎

Lines changed: 0 additions & 14 deletions
This file was deleted.

‎benchmarks/MiniExcel.StressTests/Program.cs‎

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)