defを使った場合の速度の遅さ

投稿者:Material 7186 1 mini ikosami 投稿日:2012/05/17 11:11

シューティングをdefを使い放題のスクリプトで
作っていたのですが、
前に、誰かが「defを使うと遅くなる」
といっていたのを思い出して
以下のようなスクリプトで調べてみたところ、

def a(a)
  if a == 0
    a = 0
  end
end

a = 0

setBaseTime()
i = 0
while i < 10000
  if a == 0
    a = 0
  end
  i = i + 1
end

speak("通常",getTime())


setBaseTime()
i = 0
while i < 10000
  a(a)
  i = i + 1
end

speak("def",getTime())


使わない場合のほうが、約1.27倍速かったです。

そう変わらないような気もしますが、
できるだけ速く動かしたい場合は、
使わないほうがいいのかも?


まぁ、そうとう速い処理を求められるものでなければ
問題ないような気もしますが・・・

コメントする

コメントするには、ログインする必要があります。

コメント一覧

User icon mini 退会したユーザー(投稿日:2012/05/21 23:08, 履歴)
やっぱ、これは控えるべきなんですね。
def sv(a,b)
 setVariable(a,b)
end

def gv(a)
 return getVariable(a)
end
  1 mini 闇さん(投稿日:2012/05/17 14:24, 履歴)
僕はRPG系でよくコピぺしまくった後に間違えに気づくので最近はdefを多用していますが
特に問題は無かったです
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/05/17 12:07, 履歴)
何度も繰り返し処理されるところは
複雑な処理でない限り
def文を利用しない方が高速になります。

def文を探しに行く分
遅くなるといったところでしょうか。