diff --git a/CHANGELOG.md b/CHANGELOG.md
index e95efbf29f3d..96b2bc5d50ce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file.
 - Command ``BrRestart`` to restart the Berry VM (experimental) (#19003)
 - Command ``Restart 9`` to save all changes and go into deepsleep waiting for a reset (#19024)
 - Partition Wizard is now able to convert to safeboot from Shelly partition layout (#19034)
+- Berry added `getgbl` performance counter to `debug.counters()`
 
 ### Breaking Changed
 - Berry `bool( [] )` and `bool( {} )` now evaluate as `false` (#18986)
diff --git a/lib/libesp32/berry/src/be_debuglib.c b/lib/libesp32/berry/src/be_debuglib.c
index 153af55fb3ba..49ee027b0fe3 100644
--- a/lib/libesp32/berry/src/be_debuglib.c
+++ b/lib/libesp32/berry/src/be_debuglib.c
@@ -167,6 +167,7 @@ static int m_counters(bvm *vm)
     map_insert(vm, "call", vm->counter_call);
     map_insert(vm, "get", vm->counter_get);
     map_insert(vm, "set", vm->counter_set);
+    map_insert(vm, "getgbl", vm->counter_get_global);
     map_insert(vm, "try", vm->counter_try);
     map_insert(vm, "raise", vm->counter_exc);
     map_insert(vm, "objects", vm->counter_gc_kept);
diff --git a/lib/libesp32/berry/src/be_vm.c b/lib/libesp32/berry/src/be_vm.c
index eb2b6ef63628..4c21866e4d1b 100644
--- a/lib/libesp32/berry/src/be_vm.c
+++ b/lib/libesp32/berry/src/be_vm.c
@@ -507,6 +507,7 @@ BERRY_API bvm* be_vm_new(void)
     vm->counter_call = 0;
     vm->counter_get = 0;
     vm->counter_set = 0;
+    vm->counter_get_global = 0;
     vm->counter_try = 0;
     vm->counter_exc = 0;
     vm->counter_gc_kept = 0;
@@ -579,6 +580,9 @@ static void vm_exec(bvm *vm)
             dispatch();
         }
         opcase(GETNGBL): {  /* get Global by name */
+#if BE_USE_PERF_COUNTERS
+            vm->counter_get_global++;
+#endif
             bvalue *v = RA();
             bvalue *b = RKB();
             if (var_isstr(b)) {
diff --git a/lib/libesp32/berry/src/be_vm.h b/lib/libesp32/berry/src/be_vm.h
index 1e83c912fffe..711d96ed15bf 100644
--- a/lib/libesp32/berry/src/be_vm.h
+++ b/lib/libesp32/berry/src/be_vm.h
@@ -114,6 +114,7 @@ struct bvm {
     uint32_t counter_call; /* counter for calls, VM or native */
     uint32_t counter_get; /* counter for GETMBR or GETMET */
     uint32_t counter_set; /* counter for SETMBR */
+    uint32_t counter_get_global; /* counter for GETNBGL */
     uint32_t counter_try; /* counter for `try` statement */
     uint32_t counter_exc; /* counter for raised exceptions */
     uint32_t counter_gc_kept; /* counter for objects scanned by last gc */