Files
hakorune/docs/research/paper-07-nyash-one-month/benchmarks/initial-performance-data.md
Moe Charm db265d7f29 🐍 Python統合をAOTレベルまで完成(eval方式でunsupported=0達成)
- PyRuntimeBox.eval() で完全AOT対応(FloatBox返却)
- NYASH_PY_AUTODECODE=1 によるプリミティブ型自動変換
- ConsoleBox経由の出力もAOT対応
- 多数のPythonテストサンプル追加
- 論文「1ヶ月でインタープリターからネイティブまで」執筆開始

課題:
- import/getattr/callはプラグイン側の実装待ち
- importとevalの文脈共有は未対応

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-30 07:47:21 +09:00

128 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📊 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日間の偉業達成直後 🎉