忍者ブログ

「の」べや

編集後記とかゲーム作ってたりとかいろいろ。 気まぐれ飽き性なんでもござれ。

   

fill_rect vs blt

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite

fill_rectとbltはどっちが速いのか?

昨日久しぶりにノートパソコンでツクール動かした。そしたらなんかめっさ重い。

比較的性能のいいデスクトップだとさくさく進むけど、ノートだとこんなに重くなるとは……。スクリプトを無茶苦茶に書いたのが原因なのはわかるけど……。
ということで少し「速さ」というのにもこだわってみる事にしました。

基本は描画関係。

とりあえず処理を10000回回して速度をはかります。ばらつきがあるので50000回回して5で割ってみました。スクリプトはかなり適当。一応使ったスクリプトを続きのとこに載せておきます。
Timeで時間引っ張ってその差を求めただけです。単位は秒です。

スペルミスあるけどキニシナイ







スペルがアレだがそのあたりは大目に見るのが大人ってものだ。

結果。(20 x 20)

処理 1回目 2回目 3回目
fill_rect 0.0272 0.0202 0.0278
blt 0.06 0.0618 0.0474
gradient_fill_rect 0.0732 0.08 0.0964
draw_text 0.9118 0.9118 0.9252


サイズを変えてもう一回(128 x 128)
draw_textはサイズあまり関係ないので計測せず

処理 1回目 2回目 3回目
fill_rect 0.0792 0.1026 0.0908
blt 0.8102 0.8257 0.8078
gradient_fill_rect 1.8556 1.8674 1.87


つまり、
fill_rect  >  blt  >  gradient_fill_rect
となりました。

何かの参考にでもナレバ

ちなみに使った処理は「続き」から ↓
結構下なの気をつけて orz



 

かなり適当に書いてるので参考にはならないかも

def test_a # fill_rect
  window = Window_Base.new(200,200,160,160)

  color_a = Color.new(255,0,0)
    r = Rect.new(0,0,128,128)
    
  start_time = Time.now
  50000.times{|i| window.contents.fill_rect(r,color_a)}  
  end_time = Time.now
    
  str = (((end_time - start_time) / 5).to_s + "s" )
  window.dispose
  p str
end

def test_b # blt
    cache_a = Cache.system("Window")
    window = Window_Base.new(200,200,160,160)
    r = Rect.new(0,0,128,128)
    
    start_time = Time.now
    50000.times{|i| window.contents.blt(0,0,cache_a,r) }
    end_time = Time.now
    str = (((end_time - start_time) / 5).to_s + "s" )
    
    window.dispose
    p str
  end
 
  def test_c # gradient_fill_rect
    cache_a = Cache.system("Window")
    window = Window_Base.new(200,200,160,160)
    color_a = Color.new(255,0,0)
    color_b = Color.new(0,0,255)   
    r = Rect.new(0,0,128,128)
    
    start_time = Time.now
    50000.times{|i|
        window.contents.gradient_fill_rect(r, color_a, color_b)
        }
    end_time = Time.now
    str = (((end_time - start_time) / 5).to_s + "s" )
    window.dispose
    p str
  end
 
  def test_d # draw_text
    cache_a = Cache.system("Window")
    window = Window_Base.new(200,200,64,64)
    color_a = Color.new(255,0,0)
    color_b = Color.new(0,0,255)    
    start_time = Time.now
    50000.times{|i|
        window.contents.draw_text(0,0,20,20, "あ")
        }
    end_time = Time.now
    str = (((end_time - start_time) / 5).to_s + "s" )
    window.dispose
    p str
  end


同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題
PR

COMMENT

TRACKBACK

Trackback URL:

ブログ内検索

お知らせ

動画に使用している「妹さん」の立ち絵はこちらの著作権フリー素材集を使って作っています。


著作権フリー立ちキャラクター素材集vol.8全年齢版


2021/08/05に CeVIO AI さとうささらが発売されました。なんとDLSiteでも買えます。

カレンダー

02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 26 27 28 29 30
31

カテゴリ

プロフィール

HN:
のぎー
性別:
男性

カウンター

Copyright ©  -- 「の」べや --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]