Berry added `getgbl` performance counter to `debug.counters()` (#19070)

* Berry add `getgbl` counter

* Berry added `getgbl` performance counter to `debug.counters()`
This commit is contained in:
s-hadinger 2023-07-08 11:25:25 +02:00 committed by GitHub
parent d9d9ca2651
commit 2ecb697a3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 0 deletions

View File

@ -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 ``BrRestart`` to restart the Berry VM (experimental) (#19003)
- Command ``Restart 9`` to save all changes and go into deepsleep waiting for a reset (#19024) - 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) - Partition Wizard is now able to convert to safeboot from Shelly partition layout (#19034)
- Berry added `getgbl` performance counter to `debug.counters()`
### Breaking Changed ### Breaking Changed
- Berry `bool( [] )` and `bool( {} )` now evaluate as `false` (#18986) - Berry `bool( [] )` and `bool( {} )` now evaluate as `false` (#18986)

View File

@ -167,6 +167,7 @@ static int m_counters(bvm *vm)
map_insert(vm, "call", vm->counter_call); map_insert(vm, "call", vm->counter_call);
map_insert(vm, "get", vm->counter_get); map_insert(vm, "get", vm->counter_get);
map_insert(vm, "set", vm->counter_set); 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, "try", vm->counter_try);
map_insert(vm, "raise", vm->counter_exc); map_insert(vm, "raise", vm->counter_exc);
map_insert(vm, "objects", vm->counter_gc_kept); map_insert(vm, "objects", vm->counter_gc_kept);

View File

@ -507,6 +507,7 @@ BERRY_API bvm* be_vm_new(void)
vm->counter_call = 0; vm->counter_call = 0;
vm->counter_get = 0; vm->counter_get = 0;
vm->counter_set = 0; vm->counter_set = 0;
vm->counter_get_global = 0;
vm->counter_try = 0; vm->counter_try = 0;
vm->counter_exc = 0; vm->counter_exc = 0;
vm->counter_gc_kept = 0; vm->counter_gc_kept = 0;
@ -579,6 +580,9 @@ newframe: /* a new call frame */
dispatch(); dispatch();
} }
opcase(GETNGBL): { /* get Global by name */ opcase(GETNGBL): { /* get Global by name */
#if BE_USE_PERF_COUNTERS
vm->counter_get_global++;
#endif
bvalue *v = RA(); bvalue *v = RA();
bvalue *b = RKB(); bvalue *b = RKB();
if (var_isstr(b)) { if (var_isstr(b)) {

View File

@ -114,6 +114,7 @@ struct bvm {
uint32_t counter_call; /* counter for calls, VM or native */ uint32_t counter_call; /* counter for calls, VM or native */
uint32_t counter_get; /* counter for GETMBR or GETMET */ uint32_t counter_get; /* counter for GETMBR or GETMET */
uint32_t counter_set; /* counter for SETMBR */ 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_try; /* counter for `try` statement */
uint32_t counter_exc; /* counter for raised exceptions */ uint32_t counter_exc; /* counter for raised exceptions */
uint32_t counter_gc_kept; /* counter for objects scanned by last gc */ uint32_t counter_gc_kept; /* counter for objects scanned by last gc */