18.10.2017 16:37, ikod пишет:
I ran this under linux perf, and here is top from 'perf report'
# Overhead Command Shared Object Symbol
# ........ ....... ..................
...........................................................................................
#
7.34% t [kernel.kallsyms] [k] clear_page
6.80% t [kernel.kallsyms] [k] __do_page_fault
5.39% t [kernel.kallsyms] [k] __lock_text_start
3.90% t t [.] nothrow core.thread.Fiber
core.thread.Fiber.__ctor(void delegate(), ulong)
3.73% t [kernel.kallsyms] [k] unmap_page_range
3.32% t [kernel.kallsyms] [k] flush_tlb_mm_range
2.70% t [kernel.kallsyms] [k] _raw_spin_lock
2.57% t libpthread-2.23.so [.] pthread_mutex_unlock
2.53% t t [.] nothrow void
core.thread.Fiber.__dtor()
So looks like memory management, even not GC, take most of the time (if
I interpret these numbers correctly)
It depends on how much time test took. If it was small then of course
creating the fibers took too much percents. Ideally we need to find the
duration of the test when percents of memory management stop changing -
it will be more reliable numbers.