Guest User

Untitled

a guest
Sep 3rd, 2026
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extends Node
  2.  
  3. #region timer
  4. var _time:int
  5. func time_start():
  6.     _time = Time.get_ticks_usec()
  7.  
  8. func time_stop(prefix = ""):
  9.     var parse = func(s: String, is_reverse: bool) -> String:
  10.         if is_reverse:
  11.             s = s.reverse()
  12.         var r = []
  13.         for i in s.length():
  14.             if i % 3 == 0 and i != 0:
  15.                 r.append("_")
  16.             r.append(s[i])
  17.         if is_reverse:
  18.             r.reverse()
  19.         return "".join(r)
  20.  
  21.     var t = str(float(Time.get_ticks_usec() - _time) / 1_000_000)
  22.     if t == "0":
  23.         t += ".0"
  24.     t = t.split(".")
  25.     return  prefix + ": " + parse.call(t[0], true) + "." + parse.call(t[1], false)
  26. #endregion
  27.  
  28. var once := 0
  29. var count := 100_000
  30. var sizeArr := 50
  31.  
  32. var keyDel := [12, 24, 9, 15, 21]
  33. var list : Array[int]
  34.  
  35. func _ready() -> void:
  36.     for i in sizeArr:
  37.         list.append(i)
  38.  
  39. func _process(_delta: float) -> void:
  40.     once += 1
  41.     if once == 120:
  42.         pass
  43.         testRawRemove()
  44.         testSwap()
  45.         info()
  46.  
  47. func info():
  48.     print()
  49.     print("Кол-во итераций: {0}".format([count]))
  50.     print("Размер массива:  {0}".format([sizeArr]))
  51.  
  52.  
  53. class SwapRemover:
  54.     var _size: int
  55.     var _arr: Array
  56.  
  57.     func setup(arr: Array):
  58.         _arr = arr
  59.         _size = arr.size()
  60.  
  61.     func remove(index: int) -> void:
  62.         _size -= 1
  63.         _arr[index] = _arr[_size]
  64.  
  65.     func add(value: int):
  66.         if _size < _arr.size():
  67.             _arr[_size] = value
  68.         else:
  69.             _arr.append(value)
  70.         _size += 1
  71.  
  72. func testRawRemove():
  73.     var arr := list.duplicate()
  74.     time_start()
  75.     for i in count:
  76.         for k in keyDel.size():
  77.             arr.remove_at(keyDel[k])
  78.             arr.append(keyDel[k])
  79.     print(time_stop("RAW_REMOVE\t"))
  80.  
  81. func testSwap():
  82.     var arr := SwapRemover.new()
  83.     arr.setup(list.duplicate())
  84.     time_start()
  85.     for i in count:
  86.         for k in keyDel.size():
  87.             arr.remove(keyDel[k])
  88.             arr.add(keyDel[k])
  89.     print(time_stop("SWAP\t\t"))
  90.  
Advertisement
Add Comment
Please, Sign In to add comment