Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 2 commits into from
Jul 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
1 change: 1 addition & 0 deletions lib/libesp32/berry/src/be_debuglib.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 4 additions & 0 deletions lib/libesp32/berry/src/be_vm.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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)) {
Expand Down
1 change: 1 addition & 0 deletions lib/libesp32/berry/src/be_vm.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down