Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends Node2D
- enum GridType {STATUS, ITEM, DIRT, _RESERVE_}
- var once := 0
- var size := 250
- var itr := 100_000
- var index := Vector2i(188, 204)
- var _time:int
- class Cell:
- var status: int
- var item: int
- var dirt: int
- var _reserve_: int
- #region timer
- func time_start():
- _time = Time.get_ticks_usec()
- func time_stop(prefix = ""):
- var parse = func(s: String, is_reverse: bool) -> String:
- if is_reverse:
- s = s.reverse()
- var r = []
- for i in s.length():
- if i % 3 == 0 and i != 0:
- r.append("_")
- r.append(s[i])
- if is_reverse:
- r.reverse()
- return "".join(r)
- var t = str(float(Time.get_ticks_usec() - _time) / 1_000_000)
- if t == "0":
- t += ".0"
- t = t.split(".")
- return prefix + ": " + parse.call(t[0], true) + "." + parse.call(t[1], false)
- #endregion
- func timerTest_packed_setGet():
- var r: int
- var t = PackGrid2D.new()
- t.setup(size)
- time_start()
- for y in itr:
- t.setId(index, GridType.ITEM, y)
- r = t.getId(index, GridType.ITEM)
- print(time_stop("PACKED SetGet\t"))
- func timerTest_array_setGet():
- var t :Array[Array]
- var r: int
- for y in size:
- t.append(Array())
- for x in size:
- t[y].append(Cell.new())
- time_start()
- for y in itr:
- t[index.y][index.x].item = y
- r = t[index.y][index.x].item
- print(time_stop("ARRAY SetGet\t"))
- func timerTest_packed():
- var r: int
- var t = PackGrid2D.new()
- t.setup(size)
- time_start()
- for y in size:
- for x in size:
- pass
- t.setId(Vector2i(x,y), GridType.STATUS, 1)
- t.setId(Vector2i(x,y), GridType.ITEM, size)
- #for y in size:
- #for x in size:
- #t.resetGrid(Vector2i(x,y))
- print(time_stop("PACKED FILL\t"))
- func timerTest_array():
- var t :Array[Array]
- for y in size:
- t.append(Array())
- for x in size:
- t[y].append(Cell.new())
- time_start()
- for y in size:
- for x in size:
- t[y][x].status = 1
- t[y][x].item = size
- #for y in size:
- #for x in size:
- #t[y][x].status = 0
- #t[y][x].item = 0
- #t[y][x].dirt = 0
- #t[y][x]._reserve_ = 0
- print(time_stop("ARRAY FILL\t"))
- func _process(delta: float) -> void:
- once += 1
- if once == 240:
- #PackGrid2D.new().__test()
- timerTest_array()
- timerTest_packed()
- print()
- timerTest_array_setGet()
- timerTest_packed_setGet()
Advertisement
Add Comment
Please, Sign In to add comment