万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    Boo Language Advent Calendar 2012 14日目 Title:「Booの辞書型リテラルのスピード比較」

    URL: http://atnd.org/events/34622
    皆さんこんばんは。Booやってますか?
    万年素人のshinriyoです。

    「Boo Language Advent Calendar 2012 2日目 Title:「Booがいかに素晴らしいか?」」で行った、辞書型をC#風とBoo風で勝負します。

    Booの書き方は辞書の初期化ないですね。そこ((A)のとこ)も時間測るので卑怯って言わないでね。
    dic・・・C#風(Dictionaryを使って書く)
    booDic・・・Boo風(辞書型リテラルを使って書く)

    コードはこうしました。Pythonっぽく美しくて短くかけていいですね。

    ・Compare.boo

    import UnityEngine
    import System.Collections.Generic
    
    class Compare (MonoBehaviour):
    
        private dic as Dictionary[of string, string]
        private booDic = {}
    
        def Start ():
    
            # C# like
            start as single = Time.realtimeSinceStartup
            dic = Dictionary[of string, string]() # (A)
            for num in range(0, 1000):
                dic[num.ToString()] = num.ToString()
    
            for num in range(0, 1000):
                Debug.Log(dic[num.ToString()])
            finish as single = Time.realtimeSinceStartup
    
            # Boo like
            booStart = Time.realtimeSinceStartup
            for num in range(0, 1000):
                booDic[num.ToString()] = num.ToString()
    
            for num in range(0, 1000):
                Debug.Log(booDic[num.ToString()])
            booFinish = Time.realtimeSinceStartup
    
            # result
            Debug.Log ("CS like" + (finish - start).ToString ())
            Debug.Log ("Boo like" + (booFinish - booStart).ToString ())
    

    1000回突っ込んで1000回出すだけw
    これじゃダメって人はツッコミいれてね。

    文字型Key、文字型Valueですよ。

    何度か結果

    CS like0.278652
    Boo like0.240931
    CS like0.288617
    Boo like0.224245
    CS like0.279127
    Boo like0.229331

    あまり変わりませんでしたが、Booが微妙に速いか?
    0.05秒くらい。
    まぁ微妙に速いし短く書けるならそれに越した事無いですね?

    次はなにかこうかしら。