Files
hakorune/docs/ideas/other/archived/2025-08-27-sync-box-demo-ideas.md

1.8 KiB
Raw Blame History

Syncデモアイデア - GCとスレッドセーフの統合実証

作成日: 2025-08-27

🎯 ChatGPT5さんへの回答案

デモ案1: マルチスレッドWebサーバー

static box WebServer {
    init { Sync<Map<str, str>> sessions }  // セッション管理
    init { Sync<int> request_count }       // アクセスカウンター
    
    handleRequest(request) {
        // スレッドセーフに自動でカウントアップ
        me.request_count.increment()
        
        // セッション管理も自動ロック
        me.sessions.put(request.id, request.data)
    }
}

// GCオン/オフ切り替えデモ
NYASH_GC=on ./server   // 開発時:メモリリーク検出
NYASH_GC=off ./server  // 本番時:高性能

デモ案2: リアルタイムチャットサーバー

static box ChatServer {
    init { Sync<Map<str, User>> users }
    init { Sync<Vec<Message>> messages }
    init { AtomicBox<int> connections }
    
    addMessage(user, text) {
        me.messages.push(new Message(user, text))  // 自動ロック!
        me.connections.increment()                  // 原子操作!
    }
}

💡 統合デモ:両方の特徴を一度に

GC切り替え」と「Sync自動ロック」を同時に実証:

  1. Phase 1: GCオンで開発

    • メモリリーク検出
    • 「Memory leak detected: Message#1234 at line 15」
  2. Phase 2: 修正後、GCオフで本番

    • 同じコードが13.5倍高速
    • スレッドセーフは維持

🏆 期待される効果

  • 簡単さの実証: table.put()だけでスレッドセーフ
  • 性能の実証: GCオフで高速動作
  • 実用性の実証: 実際のWebサーバーで動作

これ1つで「チート言語」の本質を完全に示せる