Guest User

Untitled

a guest
Nov 30th, 2025
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extends Node2D
  2.  
  3. var pba_target := PackedByteArray()
  4. @onready var sharpnode = $sharpnode
  5.  
  6. func bench(f: Callable, iterations: int):
  7.     var start := Time.get_ticks_msec()
  8.     for n in range(iterations):
  9.         var ret = f.call()
  10.         assert(ret == pba_target)
  11.     var end := Time.get_ticks_msec()
  12.     print(f)
  13.     print(str(end - start) + " ms")
  14.  
  15. func _ready() -> void:
  16.     var a1: Array[int] = []
  17.     var a2: Array[int] = []
  18.    
  19.     for n in range(10000):
  20.         a1.append(randi())
  21.         a2.append(randi())
  22.    
  23.     var pba1 := PackedByteArray(a1)
  24.     var pba2 := PackedByteArray(a2)
  25.    
  26.     pba_target.resize(a1.size())
  27.     for n in a1.size():
  28.         pba_target[n] = a1[n] + a2[n]
  29.    
  30.     bench(pba.bind(pba1,pba2), 10000)
  31.     bench(sharpnode.sharp_pba.bind(pba1,pba2), 10000)
  32.        
  33. func pba(a1: PackedByteArray, a2: PackedByteArray) -> PackedByteArray:
  34.     var a3 := PackedByteArray()
  35.     a3.resize(a1.size())
  36.     for n in a1.size():
  37.         a3[n] = a1[n] + a2[n]
  38.     return a3
  39.        
  40. =========================================================================
  41.  
  42. public partial class Sharp : Node
  43. {
  44.     public static Byte[] sharp_pba(Byte[] a1, Byte[] a2) {
  45.         Byte[] a3 = new Byte[a1.Length];
  46.         for (int i = 0; i<a1.Length; i++) {
  47.             a3[i] = (byte)(a1[i] + a2[i]);
  48.         }
  49.         return a3;
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment