Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 16 additions & 8 deletions .github/workflows/nuget-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ on:
workflow_dispatch:
inputs:
version:
description: NuGet version, for example 0.1.0-preview.1
description: NuGet version, for example 0.1.0-preview.2
required: true
default: 0.1.0-preview.1
default: 0.1.0-preview.2
type: string
publish:
description: Publish to NuGet.org after all package tests pass
Expand Down Expand Up @@ -227,9 +227,17 @@ jobs:
if: github.event_name == 'push'
env:
GH_TOKEN: ${{ github.token }}
run: >-
gh release create '${{ github.ref_name }}'
target/nuget/packages/*
--verify-tag
--generate-notes
--title 'MiniExcel.Rust ${{ needs.prepare.outputs.version }}'
GH_REPO: ${{ github.repository }}
RELEASE_VERSION: ${{ needs.prepare.outputs.version }}
run: |
arguments=(
'${{ github.ref_name }}'
target/nuget/packages/*
--verify-tag
--generate-notes
--title "MiniExcel.Rust $RELEASE_VERSION"
)
if [[ "$RELEASE_VERSION" == *-* ]]; then
arguments+=(--prerelease)
fi
gh release create "${arguments[@]}"
20 changes: 12 additions & 8 deletions README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ v1 `1.46.0`, reutiliza sus tipos de configuración y mapping, y
ejecuta mediante la biblioteca nativa de Rust las llamadas realizadas a `MiniExcelRust`.

```bash
dotnet add package MiniExcel.Rust --prerelease
dotnet add package MiniExcel.Rust --version 0.1.0-preview.2
```

```csharp
Expand Down Expand Up @@ -115,17 +115,21 @@ Consulta la [matriz de compatibilidad](docs/compatibility.md), el [contrato de a
### Últimos Resultados NuGet

La última prueba Windows x64 comparó `MiniExcel 1.46.0`, el wrapper .NET
`MiniExcel.Rust 0.1.0-preview.1` y `MiniExcel Rust 0.4.0` nativo sobre 100.000 filas x 10 columnas,
`MiniExcel.Rust 0.1.0-preview.2` y `MiniExcel Rust 0.4.0` nativo sobre un workbook con dimension
declarada de 100.000 filas x 10 columnas,
con cinco procesos nuevos por runtime y escenario. Todos los valores se verificaron antes de medir.

| Escenario | Runtime | Mediana | Filas/s | Primera fila | Asignación administrada | Peak working set |
| --- | --- | ---: | ---: | ---: | ---: | ---: |
| Cold | MiniExcel | 2.598,50 ms | 38.484 | 1.051,97 ms | 2.541,93 MB | 50,93 MB |
| Cold | MiniExcel.Rust (.NET) | 1.899,42 ms | 52.648 | 450,85 ms | 289,36 MB | 49,64 MB |
| Cold | MiniExcel.Rust | 1.220,82 ms | 81.912 | 537,17 ms | n/a | 4,14 MB |
| Steady | MiniExcel | 5.997,76 ms | 50.019 | 616,40 ms | 7.625,15 MB | 52,80 MB |
| Steady | MiniExcel.Rust (.NET) | 4.202,10 ms | 71.393 | 442,59 ms | 868,05 MB | 48,79 MB |
| Steady | MiniExcel.Rust | 3.344,20 ms | 89.708 | 467,30 ms | n/a | 4,20 MB |
| Cold | MiniExcel | 2.145,90 ms | 46.600 | 38,77 ms | 1.167,07 MB | 51,26 MB |
| Cold | MiniExcel.Rust (.NET) | 1.047,67 ms | 95.450 | 12,05 ms | 107,04 MB | 44,59 MB |
| Cold | MiniExcel.Rust | 855,09 ms | 116.947 | 0,42 ms | n/a | 3,70 MB |
| Steady | MiniExcel | 4.341,55 ms | 69.100 | 3,95 ms | 3.500,58 MB | 54,74 MB |
| Steady | MiniExcel.Rust (.NET) | 2.972,94 ms | 100.910 | 5,50 ms | 321,09 MB | 48,08 MB |
| Steady | MiniExcel.Rust | 2.143,31 ms | 139.970 | 0,41 ms | n/a | 3,79 MB |

Para una Query completa, preview.2 es 2,05 veces más rápido en Cold y 1,46 veces más rápido en
Steady que MiniExcel v1, con un 90,8 % menos de asignación administrada en ambos escenarios.

Los resultados dependen de la máquina. Ejecuta `pwsh ./scripts/compare-nuget-v1-rust.ps1`
con workbooks representativos; consulta la [metodología](docs/dotnet-v1-query-benchmark.md).
Expand Down
20 changes: 12 additions & 8 deletions README.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ MiniExcel v1 `1.46.0`, réutilise ses types de configuration et de
mapping, et transmet les appels `MiniExcelRust` à la bibliothèque native Rust.

```bash
dotnet add package MiniExcel.Rust --prerelease
dotnet add package MiniExcel.Rust --version 0.1.0-preview.2
```

```csharp
Expand Down Expand Up @@ -115,17 +115,21 @@ Voir la [matrice de compatibilité](docs/compatibility.md), le [contrat analyse/
### Derniers Résultats NuGet

Le dernier test Windows x64 compare `MiniExcel 1.46.0`, le wrapper .NET
`MiniExcel.Rust 0.1.0-preview.1` et `MiniExcel Rust 0.4.0` natif sur 100 000 lignes x 10 colonnes,
`MiniExcel.Rust 0.1.0-preview.2` et `MiniExcel Rust 0.4.0` natif sur un workbook avec dimension
déclarée de 100 000 lignes x 10 colonnes,
avec cinq processus neufs par runtime et scénario. Toutes les valeurs sont vérifiées avant la mesure.

| Scénario | Runtime | Temps médian | Lignes/s | Première ligne | Allocation managée | Working set maximal |
| --- | --- | ---: | ---: | ---: | ---: | ---: |
| Cold | MiniExcel | 2 598,50 ms | 38 484 | 1 051,97 ms | 2 541,93 MB | 50,93 MB |
| Cold | MiniExcel.Rust (.NET) | 1 899,42 ms | 52 648 | 450,85 ms | 289,36 MB | 49,64 MB |
| Cold | MiniExcel.Rust | 1 220,82 ms | 81 912 | 537,17 ms | n/a | 4,14 MB |
| Steady | MiniExcel | 5 997,76 ms | 50 019 | 616,40 ms | 7 625,15 MB | 52,80 MB |
| Steady | MiniExcel.Rust (.NET) | 4 202,10 ms | 71 393 | 442,59 ms | 868,05 MB | 48,79 MB |
| Steady | MiniExcel.Rust | 3 344,20 ms | 89 708 | 467,30 ms | n/a | 4,20 MB |
| Cold | MiniExcel | 2 145,90 ms | 46 600 | 38,77 ms | 1 167,07 MB | 51,26 MB |
| Cold | MiniExcel.Rust (.NET) | 1 047,67 ms | 95 450 | 12,05 ms | 107,04 MB | 44,59 MB |
| Cold | MiniExcel.Rust | 855,09 ms | 116 947 | 0,42 ms | n/a | 3,70 MB |
| Steady | MiniExcel | 4 341,55 ms | 69 100 | 3,95 ms | 3 500,58 MB | 54,74 MB |
| Steady | MiniExcel.Rust (.NET) | 2 972,94 ms | 100 910 | 5,50 ms | 321,09 MB | 48,08 MB |
| Steady | MiniExcel.Rust | 2 143,31 ms | 139 970 | 0,41 ms | n/a | 3,79 MB |

Pour une Query complète, preview.2 est 2,05 fois plus rapide en Cold et 1,46 fois plus rapide en
Steady que MiniExcel v1, avec 90,8 % d'allocation managée en moins dans les deux scénarios.

Les résultats dépendent de la machine. Relancez `pwsh ./scripts/compare-nuget-v1-rust.ps1`
sur des workbooks représentatifs ; voir la [méthodologie](docs/dotnet-v1-query-benchmark.md).
Expand Down
21 changes: 12 additions & 9 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ v1 `1.46.0` に固定して依存し、その設定型と mapping 型を再利
`MiniExcelRust` の呼び出しを Rust ネイティブライブラリで実行します。

```bash
dotnet add package MiniExcel.Rust --prerelease
dotnet add package MiniExcel.Rust --version 0.1.0-preview.2
```

```csharp
Expand Down Expand Up @@ -113,18 +113,21 @@ MiniExcel::save_as("book.xlsx", &[row])?;

### 最新 NuGet 結果

最新の Windows x64 テストでは、100,000 行 x 10 列の workbook で `MiniExcel 1.46.0`、
.NET wrapper `MiniExcel.Rust 0.1.0-preview.1`、native `MiniExcel Rust 0.4.0` を比較しました。
最新の Windows x64 テストでは、dimension を宣言した 100,000 行 x 10 列の workbook で
`MiniExcel 1.46.0`、.NET wrapper `MiniExcel.Rust 0.1.0-preview.2`、native `MiniExcel Rust 0.4.0` を比較しました。
runtime とシナリオごとに 5 個の新規 process を使用し、計測前にすべての値を検証しています。

| シナリオ | Runtime | 中央値 | 行/秒 | 最初の行 | Managed allocation | Peak working set |
| --- | --- | ---: | ---: | ---: | ---: | ---: |
| Cold | MiniExcel | 2,598.50 ms | 38,484 | 1,051.97 ms | 2,541.93 MB | 50.93 MB |
| Cold | MiniExcel.Rust (.NET) | 1,899.42 ms | 52,648 | 450.85 ms | 289.36 MB | 49.64 MB |
| Cold | MiniExcel.Rust | 1,220.82 ms | 81,912 | 537.17 ms | n/a | 4.14 MB |
| Steady | MiniExcel | 5,997.76 ms | 50,019 | 616.40 ms | 7,625.15 MB | 52.80 MB |
| Steady | MiniExcel.Rust (.NET) | 4,202.10 ms | 71,393 | 442.59 ms | 868.05 MB | 48.79 MB |
| Steady | MiniExcel.Rust | 3,344.20 ms | 89,708 | 467.30 ms | n/a | 4.20 MB |
| Cold | MiniExcel | 2,145.90 ms | 46,600 | 38.77 ms | 1,167.07 MB | 51.26 MB |
| Cold | MiniExcel.Rust (.NET) | 1,047.67 ms | 95,450 | 12.05 ms | 107.04 MB | 44.59 MB |
| Cold | MiniExcel.Rust | 855.09 ms | 116,947 | 0.42 ms | n/a | 3.70 MB |
| Steady | MiniExcel | 4,341.55 ms | 69,100 | 3.95 ms | 3,500.58 MB | 54.74 MB |
| Steady | MiniExcel.Rust (.NET) | 2,972.94 ms | 100,910 | 5.50 ms | 321.09 MB | 48.08 MB |
| Steady | MiniExcel.Rust | 2,143.31 ms | 139,970 | 0.41 ms | n/a | 3.79 MB |

完全な Query では、preview.2 は MiniExcel v1 より Cold で 2.05 倍、Steady で 1.46 倍高速で、
managed allocation は両シナリオで 90.8% 少なくなりました。

結果はマシンに依存します。代表的な workbook で `pwsh ./scripts/compare-nuget-v1-rust.ps1` を実行し、
[測定方法](docs/dotnet-v1-query-benchmark.md)を参照してください。
Expand Down
23 changes: 13 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ v1 `1.46.0`, reuses its configuration and mapping types, and routes calls
made through `MiniExcelRust` to the Rust native library.

```bash
dotnet add package MiniExcel.Rust --prerelease
dotnet add package MiniExcel.Rust --version 0.1.0-preview.2
```

```csharp
Expand Down Expand Up @@ -115,18 +115,21 @@ See the [compatibility matrix](docs/compatibility.md), [analytics and RAG contra
### Latest NuGet Results

The latest Windows x64 run compared public `MiniExcel 1.46.0`, the
`MiniExcel.Rust 0.1.0-preview.1` .NET wrapper, and native `MiniExcel Rust 0.4.0` over 100,000 rows
x 10 columns, using five fresh processes per runtime and scenario. Every row, column, and
normalized value matched before timing.
`MiniExcel.Rust 0.1.0-preview.2` .NET wrapper, and native `MiniExcel Rust 0.4.0` over a declared-dimension
workbook containing 100,000 rows x 10 columns. Five fresh processes ran per runtime and scenario;
every row, column, and normalized value matched before timing.

| Scenario | Runtime | Median elapsed | Rows/s | First row | Managed allocation | Peak working set |
| --- | --- | ---: | ---: | ---: | ---: | ---: |
| Cold | MiniExcel | 2,598.50 ms | 38,484 | 1,051.97 ms | 2,541.93 MB | 50.93 MB |
| Cold | MiniExcel.Rust (.NET) | 1,899.42 ms | 52,648 | 450.85 ms | 289.36 MB | 49.64 MB |
| Cold | MiniExcel.Rust | 1,220.82 ms | 81,912 | 537.17 ms | n/a | 4.14 MB |
| Steady | MiniExcel | 5,997.76 ms | 50,019 | 616.40 ms | 7,625.15 MB | 52.80 MB |
| Steady | MiniExcel.Rust (.NET) | 4,202.10 ms | 71,393 | 442.59 ms | 868.05 MB | 48.79 MB |
| Steady | MiniExcel.Rust | 3,344.20 ms | 89,708 | 467.30 ms | n/a | 4.20 MB |
| Cold | MiniExcel | 2,145.90 ms | 46,600 | 38.77 ms | 1,167.07 MB | 51.26 MB |
| Cold | MiniExcel.Rust (.NET) | 1,047.67 ms | 95,450 | 12.05 ms | 107.04 MB | 44.59 MB |
| Cold | MiniExcel.Rust | 855.09 ms | 116,947 | 0.42 ms | n/a | 3.70 MB |
| Steady | MiniExcel | 4,341.55 ms | 69,100 | 3.95 ms | 3,500.58 MB | 54.74 MB |
| Steady | MiniExcel.Rust (.NET) | 2,972.94 ms | 100,910 | 5.50 ms | 321.09 MB | 48.08 MB |
| Steady | MiniExcel.Rust | 2,143.31 ms | 139,970 | 0.41 ms | n/a | 3.79 MB |

For full Query, preview.2 is 2.05x faster in Cold and 1.46x faster in Steady than MiniExcel v1,
with 90.8% less managed allocation in both scenarios.

Results are machine-specific. Run `pwsh ./scripts/compare-nuget-v1-rust.ps1` on representative
workbooks; see the [benchmark methodology](docs/dotnet-v1-query-benchmark.md).
Expand Down
23 changes: 13 additions & 10 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ cargo add miniexcel
复用其配置和映射类型,并将通过 `MiniExcelRust` 发起的调用交给 Rust 原生库执行。

```bash
dotnet add package MiniExcel.Rust --prerelease
dotnet add package MiniExcel.Rust --version 0.1.0-preview.2
```

```csharp
Expand Down Expand Up @@ -112,18 +112,21 @@ MiniExcel::save_as("book.xlsx", &[row])?;

### 最新 NuGet 结果

最新 Windows x64 测试使用 100,000 行 x 10 列工作簿,对比公开的 `MiniExcel 1.46.0`、
`.NET` 包装器 `MiniExcel.Rust 0.1.0-preview.1` 与原生 `MiniExcel Rust 0.4.0`;每个 runtime、
每个场景运行 5 个独立进程。计时前已逐行、逐列、逐值验证一致。
最新 Windows x64 测试使用声明 dimension 的 100,000 行 x 10 列工作簿,对比公开的
`MiniExcel 1.46.0`、`.NET` 包装器 `MiniExcel.Rust 0.1.0-preview.2` 与原生
`MiniExcel Rust 0.4.0`;每个 runtime、每个场景运行 5 个独立进程。计时前已逐行、逐列、逐值验证一致。

| 场景 | Runtime | 耗时中位数 | 行/秒 | 首行延迟 | 托管分配 | 峰值工作集 |
| --- | --- | ---: | ---: | ---: | ---: | ---: |
| Cold | MiniExcel | 2,598.50 ms | 38,484 | 1,051.97 ms | 2,541.93 MB | 50.93 MB |
| Cold | MiniExcel.Rust (.NET) | 1,899.42 ms | 52,648 | 450.85 ms | 289.36 MB | 49.64 MB |
| Cold | MiniExcel.Rust | 1,220.82 ms | 81,912 | 537.17 ms | 不适用 | 4.14 MB |
| Steady | MiniExcel | 5,997.76 ms | 50,019 | 616.40 ms | 7,625.15 MB | 52.80 MB |
| Steady | MiniExcel.Rust (.NET) | 4,202.10 ms | 71,393 | 442.59 ms | 868.05 MB | 48.79 MB |
| Steady | MiniExcel.Rust | 3,344.20 ms | 89,708 | 467.30 ms | 不适用 | 4.20 MB |
| Cold | MiniExcel | 2,145.90 ms | 46,600 | 38.77 ms | 1,167.07 MB | 51.26 MB |
| Cold | MiniExcel.Rust (.NET) | 1,047.67 ms | 95,450 | 12.05 ms | 107.04 MB | 44.59 MB |
| Cold | MiniExcel.Rust | 855.09 ms | 116,947 | 0.42 ms | 不适用 | 3.70 MB |
| Steady | MiniExcel | 4,341.55 ms | 69,100 | 3.95 ms | 3,500.58 MB | 54.74 MB |
| Steady | MiniExcel.Rust (.NET) | 2,972.94 ms | 100,910 | 5.50 ms | 321.09 MB | 48.08 MB |
| Steady | MiniExcel.Rust | 2,143.31 ms | 139,970 | 0.41 ms | 不适用 | 3.79 MB |

完整 Query 中,preview.2 在 Cold 与 Steady 场景分别比 MiniExcel v1 快 2.05 倍和 1.46 倍,
两个场景的托管分配都减少 90.8%。

结果与机器和工作簿相关。请用 `pwsh ./scripts/compare-nuget-v1-rust.ps1` 在代表性工作簿上复测;
详见[测试方法](docs/dotnet-v1-query-benchmark.zh-CN.md)。
Expand Down
23 changes: 13 additions & 10 deletions README.zh-TW.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ cargo add miniexcel
重用其設定與 mapping 型別,並將透過 `MiniExcelRust` 發起的呼叫交給 Rust 原生程式庫執行。

```bash
dotnet add package MiniExcel.Rust --prerelease
dotnet add package MiniExcel.Rust --version 0.1.0-preview.2
```

```csharp
Expand Down Expand Up @@ -112,18 +112,21 @@ MiniExcel::save_as("book.xlsx", &[row])?;

### 最新 NuGet 結果

最新 Windows x64 測試使用 100,000 列 x 10 欄 workbook,比較公開的 `MiniExcel 1.46.0`、
`.NET` 包裝器 `MiniExcel.Rust 0.1.0-preview.1` 與原生 `MiniExcel Rust 0.4.0`;每個 runtime、
每個場景執行 5 個獨立 process。計時前已逐列、逐欄、逐值驗證一致。
最新 Windows x64 測試使用已宣告 dimension 的 100,000 列 x 10 欄 workbook,比較公開的
`MiniExcel 1.46.0`、`.NET` 包裝器 `MiniExcel.Rust 0.1.0-preview.2` 與原生
`MiniExcel Rust 0.4.0`;每個 runtime、每個場景執行 5 個獨立 process。計時前已逐列、逐欄、逐值驗證一致。

| 場景 | Runtime | 耗時中位數 | 列/秒 | 首列延遲 | Managed allocation | Peak working set |
| --- | --- | ---: | ---: | ---: | ---: | ---: |
| Cold | MiniExcel | 2,598.50 ms | 38,484 | 1,051.97 ms | 2,541.93 MB | 50.93 MB |
| Cold | MiniExcel.Rust (.NET) | 1,899.42 ms | 52,648 | 450.85 ms | 289.36 MB | 49.64 MB |
| Cold | MiniExcel.Rust | 1,220.82 ms | 81,912 | 537.17 ms | 不適用 | 4.14 MB |
| Steady | MiniExcel | 5,997.76 ms | 50,019 | 616.40 ms | 7,625.15 MB | 52.80 MB |
| Steady | MiniExcel.Rust (.NET) | 4,202.10 ms | 71,393 | 442.59 ms | 868.05 MB | 48.79 MB |
| Steady | MiniExcel.Rust | 3,344.20 ms | 89,708 | 467.30 ms | 不適用 | 4.20 MB |
| Cold | MiniExcel | 2,145.90 ms | 46,600 | 38.77 ms | 1,167.07 MB | 51.26 MB |
| Cold | MiniExcel.Rust (.NET) | 1,047.67 ms | 95,450 | 12.05 ms | 107.04 MB | 44.59 MB |
| Cold | MiniExcel.Rust | 855.09 ms | 116,947 | 0.42 ms | 不適用 | 3.70 MB |
| Steady | MiniExcel | 4,341.55 ms | 69,100 | 3.95 ms | 3,500.58 MB | 54.74 MB |
| Steady | MiniExcel.Rust (.NET) | 2,972.94 ms | 100,910 | 5.50 ms | 321.09 MB | 48.08 MB |
| Steady | MiniExcel.Rust | 2,143.31 ms | 139,970 | 0.41 ms | 不適用 | 3.79 MB |

完整 Query 中,preview.2 在 Cold 與 Steady 場景分別比 MiniExcel v1 快 2.05 倍與 1.46 倍,
兩個場景的 managed allocation 都減少 90.8%。

結果會受機器與 workbook 影響。請用 `pwsh ./scripts/compare-nuget-v1-rust.ps1` 在代表性 workbook 上重測;
詳見[測試方法](docs/dotnet-v1-query-benchmark.md)。
Expand Down
Loading
Loading