Files
hakorune/docs/research/paper-07-nyash-one-month/benchmarks/initial-performance-data.md

128 lines
4.1 KiB
Markdown
Raw Normal View History

# 📊 Nyash初期性能データ2025年8月29日
## ⚠️ 重要:最適化前の貴重なベースラインデータ
これは20日間の開発完了直後、**最適化を一切行っていない**状態での性能データです。
今後の最適化により大幅な改善が見込まれるため、歴史的価値のある記録として保存します。
## 🚀 実行環境
- **日時**: 2025年8月29日
- **マシン**: WSL2 (Windows Subsystem for Linux)
- **ビルド**: `cargo build --release -j32 --features cranelift-jit`
- **Nyashバージョン**: Phase 10.10完了直後(コミット: b767251
## 📈 性能測定結果
### 1. シンプルベンチマークbenchmark_simple.nyash
プログラム内容:
- フィボナッチ数列計算20項
- 配列操作1000要素の追加
- 文字列連結100回
#### 実行時間比較
| 実行形態 | 実行時間 | 相対速度 |
|---------|---------|---------|
| Interpreter | 0.788秒 | 1.0x(基準) |
| VM | 0.305秒 | **2.6倍高速** |
| JIT | (部分動作) | - |
| AOT | (未測定) | - |
### 2. ビルトインベンチマークsimple_add
`--benchmark`オプションによる自動測定:
| 実行形態 | ops/sec | 相対速度 | レイテンシ |
|---------|---------|---------|-----------|
| Interpreter | 1,734.91 | 1.0x | 576.72μs/op |
| VM | 14,673.87 | **8.46倍** | 68.15μs/op |
| JIT | 14,875.64 | **8.58倍**VM比1.01倍) | 67.22μs/op |
JIT速度にはコンパイル時間が含まれているため、実際の実行速度はより高速
### 3. 実行形態の動作状況
| 実行形態 | 状態 | 備考 |
|---------|-----|------|
| Interpreter | ✅ 完全動作 | 全機能実装済み |
| VM | ✅ 完全動作 | MIRベース高速実行 |
| JIT | 🔧 部分動作 | Cranelift統合、基本演算のみ |
| AOT | 📦 .o生成確認 | libnyrt.a経由でEXE化可能 |
| WASM | 🌐 コンパイル可能 | WAT形式出力確認 |
## 🔬 詳細データ
### VM実行ログ抜粋
```
Computing Fibonacci...
Fib(20) = 6765
Array operations...
Array size: 1000
String concatenation...
String length: 100
Benchmark complete!
✅ VM execution completed successfully!
```
### メモリ使用状況
- 起動時オーバーヘッドプラグイン8個ロード
- 実行中Arc<Mutex>による安全な参照カウント
### プラグインロード時間
```
[PluginLoaderV2] nyash_plugin_init rc=0 for libnyash_filebox_plugin.so
[PluginLoaderV2] nyash_plugin_init rc=0 for libnyash_counter_plugin.so
[PluginLoaderV2] nyash_plugin_init rc=0 for libnyash_net_plugin.so
[PluginLoaderV2] nyash_plugin_init rc=0 for libnyash_python_plugin.so
[PluginLoaderV2] nyash_plugin_init rc=0 for libnyash_string_plugin.so
[PluginLoaderV2] nyash_plugin_init rc=0 for libnyash_integer_plugin.so
[PluginLoaderV2] nyash_plugin_init rc=0 for libnyash_map_plugin.so
[PluginLoaderV2] nyash_plugin_init rc=0 for libnyash_array_plugin.so
```
## 📊 Python統合性能Phase 10.5
ChatGPT5による実装
```nyash
py.import("math").getattr("sqrt").call(9).str()
```
- プラグイン経由でPython実行環境に接続
- Handle型による効率的なオブジェクト管理
- VM経路で完全動作確認
## 🎯 今後の最適化ポイント
1. **JIT最適化**
- 型特殊化によるボクシング削減
- インライン展開
- ループ最適化
2. **VM最適化**
- FastPath拡張
- 命令フュージョン
- キャッシュ効率化
3. **メモリ最適化**
- Arc<Mutex>の選択的使用
- 小整数の即値化
- 文字列インターン
4. **起動時間最適化**
- プラグイン遅延ロード
- 事前コンパイル済みMIR
## 💡 考察
最適化を一切行っていない状態で**2.6〜8.5倍**の速度向上を達成したことは、アーキテクチャの健全性を示している。今後の最適化により、さらに10倍以上の性能向上が期待できる。
---
**記録者**: Claude Codeにゃー
**協力**: ChatGPT5Python統合実装中
**日付**: 2025年8月29日 - 20日間の偉業達成直後 🎉