Guest User

Untitled

a guest
Sep 2nd, 2026
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extends Node2D
  2.  
  3. enum GridType {STATUS, ITEM, DIRT, _RESERVE_}
  4.  
  5.  
  6. var once := 0
  7. var size := 250
  8. var itr := 100_000
  9. var index := Vector2i(188, 204)
  10. var _time:int
  11.  
  12. class Cell:
  13.     var status: int
  14.     var item: int
  15.     var dirt: int
  16.     var _reserve_: int
  17.  
  18. #region timer
  19. func time_start():
  20.     _time = Time.get_ticks_usec()
  21.  
  22. func time_stop(prefix = ""):
  23.     var parse = func(s: String, is_reverse: bool) -> String:
  24.         if is_reverse:
  25.             s = s.reverse()
  26.         var r = []
  27.         for i in s.length():
  28.             if i % 3 == 0 and i != 0:
  29.                 r.append("_")
  30.             r.append(s[i])
  31.         if is_reverse:
  32.             r.reverse()
  33.         return "".join(r)
  34.  
  35.     var t = str(float(Time.get_ticks_usec() - _time) / 1_000_000)
  36.     if t == "0":
  37.         t += ".0"
  38.     t = t.split(".")
  39.     return  prefix + ": " + parse.call(t[0], true) + "." + parse.call(t[1], false)
  40. #endregion
  41.  
  42.  
  43. func timerTest_packed_setGet():
  44.     var r: int
  45.     var t = PackGrid2D.new()
  46.     t.setup(size)
  47.  
  48.     time_start()
  49.     for y in itr:
  50.             t.setId(index, GridType.ITEM, y)
  51.             r = t.getId(index, GridType.ITEM)
  52.     print(time_stop("PACKED SetGet\t"))
  53.  
  54.  
  55. func timerTest_array_setGet():
  56.     var t :Array[Array]
  57.     var r: int
  58.  
  59.     for y in size:
  60.         t.append(Array())
  61.         for x in size:
  62.             t[y].append(Cell.new())
  63.  
  64.     time_start()
  65.     for y in itr:
  66.             t[index.y][index.x].item = y
  67.             r = t[index.y][index.x].item
  68.     print(time_stop("ARRAY SetGet\t"))
  69.  
  70.  
  71. func timerTest_packed():
  72.     var r: int
  73.     var t = PackGrid2D.new()
  74.     t.setup(size)
  75.  
  76.     time_start()
  77.     for y in size:
  78.         for x in size:
  79.             pass
  80.             t.setId(Vector2i(x,y), GridType.STATUS, 1)
  81.             t.setId(Vector2i(x,y), GridType.ITEM, size)
  82.  
  83.     #for y in size:
  84.         #for x in size:
  85.             #t.resetGrid(Vector2i(x,y))
  86.     print(time_stop("PACKED FILL\t"))
  87.  
  88.  
  89. func timerTest_array():
  90.     var t :Array[Array]
  91.  
  92.     for y in size:
  93.         t.append(Array())
  94.         for x in size:
  95.             t[y].append(Cell.new())
  96.  
  97.     time_start()
  98.     for y in size:
  99.         for x in size:
  100.             t[y][x].status = 1
  101.             t[y][x].item = size
  102.  
  103.     #for y in size:
  104.         #for x in size:
  105.             #t[y][x].status = 0
  106.             #t[y][x].item = 0
  107.             #t[y][x].dirt = 0
  108.             #t[y][x]._reserve_ = 0
  109.     print(time_stop("ARRAY FILL\t"))
  110.  
  111. func _process(delta: float) -> void:
  112.     once += 1
  113.     if once == 240:
  114.         #PackGrid2D.new().__test()
  115.         timerTest_array()
  116.         timerTest_packed()
  117.         print()
  118.         timerTest_array_setGet()
  119.         timerTest_packed_setGet()
  120.  
Advertisement
Add Comment
Please, Sign In to add comment