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

Performance Tooling Guidance #137

Open
2 tasks done
yorkie opened this issue Jun 5, 2018 · 0 comments
Open
2 tasks done

Performance Tooling Guidance #137

yorkie opened this issue Jun 5, 2018 · 0 comments
Labels

Comments

@yorkie
Copy link
Member

yorkie commented Jun 5, 2018

Currently only supports the following platform:

  • aarch64
  • armhf

Simpleperf

Download simpleperf, 32-bit version is available at here.

Then run the following commands to get report:

$ simpleperf record -g \
  -p <your process pid> \
  --duration 10 # the sample recording duration, 10 means 10 seconds

recommend set the duration to 30s.

When you gets the above commands finished, you would get the file data.perf under your working directory.

Report

Just run:

simpleperf report --dsos <your libiotjs.so> -n -g

Then you would get the following reports:

Cmdline: /data/simpleperf record -p 25021 --duration 30 -g
Arch: arm64
Event: cpu-cycles (type 0, config 0)
Samples: 408
Error Callchains: 1, 0.245098%
Event count: 132030003

Children  Self    Command  Pid    Tid    Shared Object                                    Symbol
36.82%    36.82%  iotjs    25021  25021  /usr/lib/libiotjs.so                             jmem_heap_alloc_block_internal
36.82%    0.00%   iotjs    25021  25021  /usr/lib/libiotjs.so                             jmem_heap_gc_and_alloc_block
       |
       -- jmem_heap_gc_and_alloc_block
          |
           -- jmem_heap_alloc_block_internal
19.65%    13.81%  iotjs    25021  25021  /usr/lib/libiotjs.so                             ecma_gc_run
       |
       -- ecma_gc_run
          |
          |--41.27%-- ecma_gc_run
          |
          |--12.78%-- jmem_heap_free_block
          |
          |--1.60%-- ecma_gc_get_object_next.isra.4
          |
          |--1.58%-- jmem_decompress_pointer
          |
           --1.50%-- @plt
8.88%     8.88%   iotjs    25021  25021  /usr/lib/libiotjs.so                             @plt
8.24%     2.43%   iotjs    25021  25021  /usr/lib/libiotjs.so                             ecma_gc_mark
       |
       -- ecma_gc_mark
          |
          |--22.78%-- ecma_gc_set_object_visited.isra.2
          |
          |--20.82%-- ecma_gc_mark
          |
          |--17.72%-- ecma_gc_mark_property
          |
          |--7.67%-- @plt
          |
          |--2.57%-- jmem_decompress_pointer
          |
          |--2.56%-- ecma_get_property_list
          |
           --2.56%-- ecma_get_lex_env_type
6.13%     6.13%   iotjs    25021  25021  /usr/lib/libiotjs.so                             jmem_heap_free_block
3.75%     2.21%   iotjs    25021  25021  /usr/lib/libiotjs.so                             vm_loop
@yorkie yorkie added the perf label Jun 5, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant