From 4878b02ab4ea7b9f50251d3d9adba5cd1da7217f Mon Sep 17 00:00:00 2001 From: Brendan Gregg Date: Tue, 8 Dec 2015 11:07:46 -0800 Subject: [PATCH] more examples --- README.md | 72 +- ...le-stacks.txt => example-dtrace-stacks.txt | 0 example.svg => example-dtrace.svg | 0 example-perf-stacks.txt.gz | Bin 0 -> 110532 bytes example-perf.svg | 4895 +++++++++++++++++ 5 files changed, 4945 insertions(+), 22 deletions(-) rename example-stacks.txt => example-dtrace-stacks.txt (100%) rename example.svg => example-dtrace.svg (100%) create mode 100644 example-perf-stacks.txt.gz create mode 100644 example-perf.svg diff --git a/README.md b/README.md index 9bf2eece..ecf3d126 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Example (click to zoom): [![Example](http://brendangregg.github.io/FlameGraph/cpu-bash-flamegraph.svg)](http://brendangregg.github.io/FlameGraph/cpu-bash-flamegraph.svg) Other sites: -- CPU profiling using Linux perf_events, DTrace, SystemTap, or ktap: http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html +- CPU profiling using Linux perf\_events, DTrace, SystemTap, or ktap: http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html - CPU profiling using XCode Instruments: http://schani.wordpress.com/2012/11/16/flame-graphs-for-instruments/ - CPU profiling using Xperf.exe: http://randomascii.wordpress.com/2013/03/26/summarizing-xperf-cpu-usage-with-flame-graphs/ - Memory profiling: http://www.brendangregg.com/FlameGraphs/memoryflamegraphs.html @@ -20,11 +20,11 @@ Flame graphs can be created in three steps: 1. Capture stacks ================= -Stack samples can be captured using Linux perf_events, FreeBSD pmcstat (hwpmc), DTrace, SystemTap, and many other profilers. See the stackcollapse-* converters. +Stack samples can be captured using Linux perf\_events, FreeBSD pmcstat (hwpmc), DTrace, SystemTap, and many other profilers. See the stackcollapse-\* converters. -### Linux perf_events +### Linux perf\_events -Using Linux perf_events (aka "perf") to capture 60 seconds of 99 Hertz stack samples, both user- and kernel-level stacks, all processes: +Using Linux perf\_events (aka "perf") to capture 60 seconds of 99 Hertz stack samples, both user- and kernel-level stacks, all processes: ``` # perf record -F 99 -a -g -- sleep 60 @@ -114,16 +114,38 @@ $ grep cpuid out.kern_folded | ./flamegraph.pl > cpuid.svg Provided Example ================ -An example output from DTrace is included, both the captured stacks and -the resulting Flame Graph. You can generate it yourself using: + +### Linux perf\_events + +An example output from Linux "perf script" is included, gzip'd, as example-perf-stacks.txt.gz. The resulting flame graph is example-perf.svg: + +[![Example](http://brendangregg.github.io/FlameGraph/example-perf.svg)](http://brendangregg.github.io/FlameGraph/example-perf.svg) + +You can create this using: + +``` +gunzip -c example-perf-stacks.txt.gz | ./stackcollapse-perf.pl --kernel | ./flamegraph.pl --color=java --hash > example-perf.svg +``` + +This shows my typical workflow: I'll gzip profiles on the target, then copy them to my laptop for analysis. Since I have hundreds of profiles, I leave them gzip'd! + +Since this profile included Java, I used the flamegraph.pl --color=java palette. I've also used stackcollapse-perf.pl --kernel, which allows a separate color to be used for kernel code. The resulting flame graph uses: green == Java, yellow == C++, red == user-mode native, orange == kernel. + +This profile was from an analysis of vert.x performance. The benchmark client, wrk, is also visible in the flame graph. + +### DTrace + +An example output from DTrace is also included, example-dtrace-stacks.txt, and the resulting flame graph, example-dtrace.svg: + +[![Example](http://brendangregg.github.io/FlameGraph/example-dtrace.svg)](http://brendangregg.github.io/FlameGraph/example-dtrace.svg) + +You can generate this using: ``` $ ./stackcollapse.pl example-stacks.txt | ./flamegraph.pl > example.svg ``` -This was from a particular performance investigation: the Flame Graph -identified that CPU time was spent in the lofs module, and quantified -that time. +This was from a particular performance investigation: the Flame Graph identified that CPU time was spent in the lofs module, and quantified that time. Options @@ -132,19 +154,25 @@ See the USAGE message (--help) for options: USAGE: ./flamegraph.pl [options] infile > outfile.svg - --titletext # change title text - --width # width of image (default 1200) - --height # height of each frame (default 16) - --minwidth # omit smaller functions (default 0.1 pixels) - --fonttype # font type (default "Verdana") - --fontsize # font size (default 12) - --countname # count type label (default "samples") - --nametype # name type label (default "Function:") - --colors # "hot", "mem", "io" palette (default "hot") - --hash # colors are keyed by function name hash - --cp # use consistent palette (palette.map) - eg, - ./flamegraph.pl --titletext="Flame Graph: malloc()" trace.txt > graph.svg + --title # change title text + --width # width of image (default 1200) + --height # height of each frame (default 16) + --minwidth # omit smaller functions (default 0.1 pixels) + --fonttype # font type (default "Verdana") + --fontsize # font size (default 12) + --countname # count type label (default "samples") + --nametype # name type label (default "Function:") + --colors # set color palette. choices are: hot (default), mem, io, + # java, js, perl, red, green, blue, yellow, purple, orange + --hash # colors are keyed by function name hash + --cp # use consistent palette (palette.map) + --reverse # generate stack-reversed flame graph + --inverted # icicle graph + --negate # switch differential hues (blue<->red) + --help # this message + + eg, + ./flamegraph.pl --title="Flame Graph: malloc()" trace.txt > graph.svg As suggested in the example, flame graphs can process traces of any event, such as malloc()s, provided stack traces are gathered. diff --git a/example-stacks.txt b/example-dtrace-stacks.txt similarity index 100% rename from example-stacks.txt rename to example-dtrace-stacks.txt diff --git a/example.svg b/example-dtrace.svg similarity index 100% rename from example.svg rename to example-dtrace.svg diff --git a/example-perf-stacks.txt.gz b/example-perf-stacks.txt.gz new file mode 100644 index 0000000000000000000000000000000000000000..e7b762b88bb679137c3796022e334dfefe79fc45 GIT binary patch literal 110532 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 z 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 literal 0 HcmV?d00001 diff --git a/example-perf.svg b/example-perf.svg new file mode 100644 index 00000000..d4896fc3 --- /dev/null +++ b/example-perf.svg @@ -0,0 +1,4895 @@ + + + + + + + + + + + + + +Flame Graph + +Reset Zoom +Search + + +rw_verify_area (9 samples, 0.68%) + + + +_raw_spin_lock_irqsave (2 samples, 0.15%) + + + +sun/nio/ch/FileDispatcherImpl:.read0 (31 samples, 2.36%) +s.. + + +do_sync_read (22 samples, 1.67%) + + + +sun/nio/ch/SocketChannelImpl:.write (209 samples, 15.89%) +sun/nio/ch/SocketChannel.. + + +timerqueue_del (1 samples, 0.08%) + + + +io/netty/channel/AdaptiveRecvByteBufAllocator$HandleImpl:.record (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (86 samples, 6.54%) +org/mozi.. + + +read_tsc (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (14 samples, 1.06%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (45 samples, 3.42%) +org.. + + +netdev_pick_tx (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.write (33 samples, 2.51%) +io.. + + +java/lang/String:.equals (1 samples, 0.08%) + + + +system_call_fastpath (7 samples, 0.53%) + + + +GCTaskManager::get_task (1 samples, 0.08%) + + + +security_file_free (1 samples, 0.08%) + + + +apparmor_socket_recvmsg (5 samples, 0.38%) + + + +itable stub (1 samples, 0.08%) + + + +skb_release_data (3 samples, 0.23%) + + + +hrtimer_try_to_cancel (3 samples, 0.23%) + + + +default_wake_function (25 samples, 1.90%) +d.. + + +__remove_hrtimer (3 samples, 0.23%) + + + +epoll_ctl (1 samples, 0.08%) + + + +fsnotify (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (4 samples, 0.30%) + + + +tcp_clean_rtx_queue (1 samples, 0.08%) + + + +tcp_send_delayed_ack (5 samples, 0.38%) + + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +tcp_v4_rcv (87 samples, 6.62%) +tcp_v4_rcv + + +aeProcessEvents (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + +schedule_preempt_disabled (2 samples, 0.15%) + + + +kfree (1 samples, 0.08%) + + + +sun/nio/ch/SocketChannelImpl:.write (1 samples, 0.08%) + + + +sk_reset_timer (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (6 samples, 0.46%) + + + +remote_function (4 samples, 0.30%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.skipControlCharacters (1 samples, 0.08%) + + + +intel_pmu_enable_all (4 samples, 0.30%) + + + +mod_timer (5 samples, 0.38%) + + + +io/netty/handler/codec/MessageToMessageEncoder:.write (31 samples, 2.36%) +i.. + + +io/netty/buffer/UnpooledHeapByteBuf:.init (1 samples, 0.08%) + + + +intel_pmu_enable_all (4 samples, 0.30%) + + + +io/netty/channel/AbstractChannelHandlerContext:.write (2 samples, 0.15%) + + + +enqueue_hrtimer (1 samples, 0.08%) + + + +itable stub (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.setAttributes (12 samples, 0.91%) + + + +cpuidle_idle_call (6 samples, 0.46%) + + + +system_call (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (2 samples, 0.15%) + + + +[unknown] (6 samples, 0.46%) + + + +Monitor::IWait (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.bind (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (40 samples, 3.04%) +org.. + + +__wake_up_sync_key (3 samples, 0.23%) + + + +system_call_fastpath (1 samples, 0.08%) + + + +vfs_write (85 samples, 6.46%) +vfs_write + + +mod_timer (2 samples, 0.15%) + + + +rcu_sysidle_enter (1 samples, 0.08%) + + + +oopDesc* PSPromotionManager::copy_to_survivor_spacefalse (1 samples, 0.08%) + + + +__wake_up_common (2 samples, 0.15%) + + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead (637 samples, 48.44%) +io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead + + +_raw_spin_lock_irqsave (2 samples, 0.15%) + + + +ScavengeRootsTask::do_it (1 samples, 0.08%) + + + +tcp_urg (1 samples, 0.08%) + + + +aa_file_perm (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (21 samples, 1.60%) + + + +__remove_hrtimer (1 samples, 0.08%) + + + +put_filp (1 samples, 0.08%) + + + +skb_free_head (1 samples, 0.08%) + + + +apparmor_file_permission (1 samples, 0.08%) + + + +ktime_get (1 samples, 0.08%) + + + +JavaCalls::call_virtual (956 samples, 72.70%) +JavaCalls::call_virtual + + +__copy_skb_header (1 samples, 0.08%) + + + +__slab_alloc (1 samples, 0.08%) + + + +cpuidle_idle_call (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (30 samples, 2.28%) +o.. + + +ip_queue_xmit (51 samples, 3.88%) +ip_q.. + + +org/mozilla/javascript/NativeCall:.init (15 samples, 1.14%) + + + +tcp_ack (9 samples, 0.68%) + + + +sys_ioctl (5 samples, 0.38%) + + + +fsnotify (2 samples, 0.15%) + + + +sk_reset_timer (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +lapic_next_deadline (2 samples, 0.15%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_Server2_js_1:.call (79 samples, 6.01%) +org/mozi.. + + +sys_execve (1 samples, 0.08%) + + + +perf_event_enable (5 samples, 0.38%) + + + +sys_futex (1 samples, 0.08%) + + + +java/lang/String:.init (1 samples, 0.08%) + + + +inet_recvmsg (7 samples, 0.53%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (2 samples, 0.15%) + + + +io/netty/util/internal/AppendableCharSequence:.substring (4 samples, 0.30%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +x86_pmu_enable (4 samples, 0.30%) + + + +__libc_read (1 samples, 0.08%) + + + +tcp_sendmsg (77 samples, 5.86%) +tcp_sen.. + + +cpuidle_enter_state (12 samples, 0.91%) + + + +flush_tlb_mm_range (1 samples, 0.08%) + + + +ksize (1 samples, 0.08%) + + + +cpu_startup_entry (44 samples, 3.35%) +cpu.. + + +pthread_self (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +_raw_spin_lock_bh (1 samples, 0.08%) + + + +io/netty/channel/DefaultChannelPipeline$HeadContext:.flush (2 samples, 0.15%) + + + +tcp_rcv_established (23 samples, 1.75%) + + + +org/mozilla/javascript/BaseFunction:.execIdCall (48 samples, 3.65%) +org/.. + + +lapic_next_deadline (1 samples, 0.08%) + + + +[unknown] (197 samples, 14.98%) +[unknown] + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (242 samples, 18.40%) +io/netty/channel/AbstractCha.. + + +bictcp_cong_avoid (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (5 samples, 0.38%) + + + +JavaCalls::call_virtual (956 samples, 72.70%) +JavaCalls::call_virtual + + +resched_task (2 samples, 0.15%) + + + +sock_wfree (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (4 samples, 0.30%) + + + +io/netty/buffer/AbstractByteBuf:.getByte (1 samples, 0.08%) + + + +check_preempt_curr (2 samples, 0.15%) + + + +io/netty/channel/ChannelOutboundBuffer:.progress (1 samples, 0.08%) + + + +tcp_current_mss (1 samples, 0.08%) + + + +__execve (1 samples, 0.08%) + + + +hrtimer_force_reprogram (1 samples, 0.08%) + + + +__GI___mprotect (1 samples, 0.08%) + + + +ep_send_events_proc (9 samples, 0.68%) + + + +schedule (11 samples, 0.84%) + + + +org/mozilla/javascript/IdScriptableObject:.put (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (409 samples, 31.10%) +org/mozilla/javascript/gen/file__root_vert_x_2_1_.. + + +io/netty/channel/ChannelOutboundBuffer:.decrementPendingOutboundBytes (2 samples, 0.15%) + + + +ktime_get_real (1 samples, 0.08%) + + + +aa_revalidate_sk (2 samples, 0.15%) + + + +stats_record (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +__perf_event_enable (4 samples, 0.30%) + + + +__alloc_skb (9 samples, 0.68%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (17 samples, 1.29%) + + + +socket_readable (2 samples, 0.15%) + + + +ns_to_timeval (1 samples, 0.08%) + + + +ip_rcv (33 samples, 2.51%) +ip.. + + +SafepointSynchronize::begin (1 samples, 0.08%) + + + +java/nio/DirectByteBuffer:.duplicate (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (20 samples, 1.52%) + + + +io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read (939 samples, 71.41%) +io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read + + +raw_local_deliver (1 samples, 0.08%) + + + +__dev_queue_xmit (4 samples, 0.30%) + + + +skb_copy_datagram_iovec (3 samples, 0.23%) + + + +apic_timer_interrupt (1 samples, 0.08%) + + + +do_vfs_ioctl (5 samples, 0.38%) + + + +do_sync_read (8 samples, 0.61%) + + + +system_call_after_swapgs (1 samples, 0.08%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +call_function_single_interrupt (4 samples, 0.30%) + + + +io/netty/handler/codec/http/HttpHeaders:.hash (4 samples, 0.30%) + + + +io/netty/handler/codec/http/DefaultHttpMessage:.init (2 samples, 0.15%) + + + +rcu_sysidle_enter (1 samples, 0.08%) + + + +java/nio/channels/spi/AbstractInterruptibleChannel:.end (3 samples, 0.23%) + + + +clockevents_program_event (2 samples, 0.15%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (9 samples, 0.68%) + + + +tcp_try_rmem_schedule (2 samples, 0.15%) + + + +__schedule (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (10 samples, 0.76%) + + + +tcp_v4_md5_lookup (1 samples, 0.08%) + + + +CardTableExtension::scavenge_contents_parallel (20 samples, 1.52%) + + + +aa_revalidate_sk (1 samples, 0.08%) + + + +__fsnotify_parent (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (7 samples, 0.53%) + + + +sk_reset_timer (5 samples, 0.38%) + + + +__schedule (2 samples, 0.15%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.init (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +io/netty/channel/nio/AbstractNioByteChannel:.doWrite (225 samples, 17.11%) +io/netty/channel/nio/Abstr.. + + +timerqueue_add (1 samples, 0.08%) + + + +_raw_spin_unlock_irqrestore (2 samples, 0.15%) + + + +try_to_wake_up (24 samples, 1.83%) +t.. + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (4 samples, 0.30%) + + + +io/netty/handler/codec/http/HttpResponseEncoder:.acceptOutboundMessage (1 samples, 0.08%) + + + +rw_verify_area (2 samples, 0.15%) + + + +x86_pmu_commit_txn (4 samples, 0.30%) + + + +alloc_pages_current (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (7 samples, 0.53%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +tcp_transmit_skb (1 samples, 0.08%) + + + +sock_aio_read.part.8 (7 samples, 0.53%) + + + +sys_read (28 samples, 2.13%) +s.. + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (28 samples, 2.13%) +o.. + + +JavaCalls::call_helper (956 samples, 72.70%) +JavaCalls::call_helper + + +ttwu_do_wakeup (1 samples, 0.08%) + + + +generic_smp_call_function_single_interrupt (4 samples, 0.30%) + + + +mutex_unlock (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.hash (2 samples, 0.15%) + + + +http_parser_execute (1 samples, 0.08%) + + + +mod_timer (5 samples, 0.38%) + + + +system_call_fastpath (1 samples, 0.08%) + + + +tcp_recvmsg (13 samples, 0.99%) + + + +__slab_alloc (1 samples, 0.08%) + + + +__alloc_skb (7 samples, 0.53%) + + + +clockevents_program_event (1 samples, 0.08%) + + + +vfs_read (18 samples, 1.37%) + + + +__internal_add_timer (1 samples, 0.08%) + + + +epoll_wait (1 samples, 0.08%) + + + +lock_sock_nested (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +native_write_msr_safe (4 samples, 0.30%) + + + +Interpreter (956 samples, 72.70%) +Interpreter + + +org/mozilla/javascript/ScriptableObject:.getBase (4 samples, 0.30%) + + + +dev_hard_start_xmit (9 samples, 0.68%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +ip_output (46 samples, 3.50%) +ip_.. + + +account_entity_enqueue (1 samples, 0.08%) + + + +itable stub (1 samples, 0.08%) + + + +ip_rcv (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (5 samples, 0.38%) + + + +tcp_clean_rtx_queue (14 samples, 1.06%) + + + +io/netty/channel/AbstractChannelHandlerContext:.flush (1 samples, 0.08%) + + + +sys_read (21 samples, 1.60%) + + + +[unknown] (10 samples, 0.76%) + + + +java/util/concurrent/ConcurrentHashMap:.get (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannel:.hashCode (4 samples, 0.30%) + + + +rcu_idle_enter (1 samples, 0.08%) + + + +gettimeofday@plt (1 samples, 0.08%) + + + +__do_softirq (103 samples, 7.83%) +__do_softirq + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (8 samples, 0.61%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (3 samples, 0.23%) + + + +inotify_add_watch (1 samples, 0.08%) + + + +fdval (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.encode (7 samples, 0.53%) + + + +unsafe_arraycopy (1 samples, 0.08%) + + + +sk_stream_alloc_skb (10 samples, 0.76%) + + + +lock_timer_base.isra.35 (1 samples, 0.08%) + + + +ip_local_out (121 samples, 9.20%) +ip_local_out + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +io/netty/util/internal/AppendableCharSequence:.substring (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.bind (1 samples, 0.08%) + + + +ep_poll (53 samples, 4.03%) +ep_p.. + + +lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + +InstanceKlass::oop_push_contents (1 samples, 0.08%) + + + +cpuacct_charge (1 samples, 0.08%) + + + +harmonize_features.isra.92.part.93 (1 samples, 0.08%) + + + +update_rq_clock.part.63 (1 samples, 0.08%) + + + +native_write_msr_safe (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.findNonWhitespace (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (1 samples, 0.08%) + + + +org/mozilla/javascript/BaseFunction:.construct (156 samples, 11.86%) +org/mozilla/javas.. + + +_raw_spin_lock (2 samples, 0.15%) + + + +cpu_function_call (5 samples, 0.38%) + + + +fget_light (2 samples, 0.15%) + + + +start_kernel (24 samples, 1.83%) +s.. + + +native_write_msr_safe (2 samples, 0.15%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (511 samples, 38.86%) +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io.. + + +ipv4_mtu (1 samples, 0.08%) + + + +__schedule (11 samples, 0.84%) + + + +system_call_fastpath (88 samples, 6.69%) +system_ca.. + + +io/netty/channel/nio/NioEventLoop:.select (7 samples, 0.53%) + + + +org/mozilla/javascript/IdScriptableObject:.get (3 samples, 0.23%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (7 samples, 0.53%) + + + +sun/nio/ch/IOUtil:.readIntoNativeBuffer (31 samples, 2.36%) +s.. + + +itable stub (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.write (6 samples, 0.46%) + + + +timerqueue_del (1 samples, 0.08%) + + + +__tcp_v4_send_check (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (3 samples, 0.23%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (4 samples, 0.30%) + + + +org/mozilla/javascript/WrapFactory:.wrapAsJavaObject (1 samples, 0.08%) + + + +io/netty/handler/codec/http/DefaultHttpMessage:.init (2 samples, 0.15%) + + + +_raw_spin_lock_irqsave (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.put (7 samples, 0.53%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (8 samples, 0.61%) + + + +java/util/ArrayList:.ensureCapacityInternal (1 samples, 0.08%) + + + +__wake_up_locked (25 samples, 1.90%) +_.. + + +java/util/HashMap:.getNode (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + +__tcp_push_pending_frames (1 samples, 0.08%) + + + +[unknown] (61 samples, 4.64%) +[unkn.. + + +__slab_free (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (11 samples, 0.84%) + + + +sock_def_readable (5 samples, 0.38%) + + + +gmain (1 samples, 0.08%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +__kmalloc_reserve.isra.26 (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (5 samples, 0.38%) + + + +org/mozilla/javascript/NativeCall:.init (20 samples, 1.52%) + + + +org/mozilla/javascript/WrapFactory:.wrap (1 samples, 0.08%) + + + +_raw_spin_lock_bh (1 samples, 0.08%) + + + +aeProcessEvents (3 samples, 0.23%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +fget_light (2 samples, 0.15%) + + + +io/netty/buffer/PooledByteBufAllocator:.newDirectBuffer (2 samples, 0.15%) + + + +menu_select (1 samples, 0.08%) + + + +generic_smp_call_function_single_interrupt (4 samples, 0.30%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (1 samples, 0.08%) + + + +schedule_hrtimeout_range_clock (20 samples, 1.52%) + + + +io/netty/buffer/UnreleasableByteBuf:.duplicate (1 samples, 0.08%) + + + +tick_program_event (2 samples, 0.15%) + + + +__netif_receive_skb_core (33 samples, 2.51%) +__.. + + +java/util/HashMap:.getNode (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.forEachByteAsc0 (2 samples, 0.15%) + + + +get_next_timer_interrupt (2 samples, 0.15%) + + + +vtable stub (1 samples, 0.08%) + + + +start_secondary (44 samples, 3.35%) +sta.. + + +skb_release_all (3 samples, 0.23%) + + + +update_cfs_rq_blocked_load (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +call_function_single_interrupt (4 samples, 0.30%) + + + +sun/nio/ch/SocketChannelImpl:.read (40 samples, 3.04%) +sun.. + + +sys_epoll_wait (1 samples, 0.08%) + + + +tcp_check_space (1 samples, 0.08%) + + + +__wake_up_common (25 samples, 1.90%) +_.. + + +native_sched_clock (1 samples, 0.08%) + + + +fget_light (3 samples, 0.23%) + + + +sys_inotify_add_watch (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.getValue (1 samples, 0.08%) + + + +_raw_spin_lock (1 samples, 0.08%) + + + +smp_call_function_single_interrupt (4 samples, 0.30%) + + + +__kmalloc_node_track_caller (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue (1 samples, 0.08%) + + + +tcp_send_mss (6 samples, 0.46%) + + + +sched_clock (1 samples, 0.08%) + + + +kmem_cache_alloc_node (4 samples, 0.30%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +tick_sched_handle.isra.17 (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getBase (1 samples, 0.08%) + + + +[unknown] (6 samples, 0.46%) + + + +io/netty/util/internal/AppendableCharSequence:.substring (2 samples, 0.15%) + + + +__inet_lookup_established (2 samples, 0.15%) + + + +apparmor_file_permission (1 samples, 0.08%) + + + +dst_release (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectEncoder:.encode (1 samples, 0.08%) + + + +open_exec (1 samples, 0.08%) + + + +tcp_transmit_skb (132 samples, 10.04%) +tcp_transmit_skb + + +ttwu_do_wakeup (5 samples, 0.38%) + + + +idle_cpu (1 samples, 0.08%) + + + +__lll_unlock_wake (1 samples, 0.08%) + + + +[unknown] (7 samples, 0.53%) + + + +security_file_permission (2 samples, 0.15%) + + + +[unknown] (1 samples, 0.08%) + + + +__switch_to (1 samples, 0.08%) + + + +io/netty/channel/DefaultChannelPromise:.trySuccess (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.has (7 samples, 0.53%) + + + +native_write_msr_safe (3 samples, 0.23%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (2 samples, 0.15%) + + + +do_softirq (103 samples, 7.83%) +do_softirq + + +rw_verify_area (1 samples, 0.08%) + + + +tcp_poll (1 samples, 0.08%) + + + +tcp_rearm_rto (5 samples, 0.38%) + + + +io/netty/channel/AbstractChannelHandlerContext:.newPromise (1 samples, 0.08%) + + + +tick_nohz_idle_exit (5 samples, 0.38%) + + + +org/mozilla/javascript/BaseFunction:.execIdCall (60 samples, 4.56%) +org/m.. + + +org/mozilla/javascript/ScriptableObject:.putImpl (1 samples, 0.08%) + + + +_copy_from_user (1 samples, 0.08%) + + + +__netif_receive_skb (34 samples, 2.59%) +__.. + + +java/util/concurrent/ConcurrentHashMap:.get (3 samples, 0.23%) + + + +fput (1 samples, 0.08%) + + + +JavaThread::thread_main_inner (956 samples, 72.70%) +JavaThread::thread_main_inner + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +io/netty/util/Recycler:.get (2 samples, 0.15%) + + + +[unknown] (6 samples, 0.46%) + + + +__dev_queue_xmit (1 samples, 0.08%) + + + +common_file_perm (1 samples, 0.08%) + + + +org/mozilla/javascript/JavaMembers:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (6 samples, 0.46%) + + + +jiffies_to_timeval (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.setName (2 samples, 0.15%) + + + +PSRootsClosurefalse::do_oop (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +vtable stub (1 samples, 0.08%) + + + +skb_clone (4 samples, 0.30%) + + + +OldToYoungRootsTask::do_it (20 samples, 1.52%) + + + +io/netty/channel/ChannelDuplexHandler:.flush (237 samples, 18.02%) +io/netty/channel/ChannelDupl.. + + +org/mozilla/javascript/ScriptableObject:.putImpl (1 samples, 0.08%) + + + +mutex_unlock (1 samples, 0.08%) + + + +hrtimer_force_reprogram (1 samples, 0.08%) + + + +stub_execve (1 samples, 0.08%) + + + +sock_poll (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (5 samples, 0.38%) + + + +_raw_spin_lock_bh (1 samples, 0.08%) + + + +native_write_msr_safe (3 samples, 0.23%) + + + +sched_clock_cpu (1 samples, 0.08%) + + + +io/netty/channel/DefaultChannelPipeline$HeadContext:.flush (232 samples, 17.64%) +io/netty/channel/DefaultCha.. + + +org/mozilla/javascript/IdScriptableObject:.get (4 samples, 0.30%) + + + +rcu_idle_enter (1 samples, 0.08%) + + + +java (995 samples, 75.67%) +java + + +tcp_cleanup_rbuf (2 samples, 0.15%) + + + +org/mozilla/javascript/NativeJavaObject:.initMembers (4 samples, 0.30%) + + + +org/mozilla/javascript/NativeCall:.init (16 samples, 1.22%) + + + +http_parser_execute (2 samples, 0.15%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +ThreadRootsTask::do_it (3 samples, 0.23%) + + + +mutex_lock (3 samples, 0.23%) + + + +cpu_startup_entry (23 samples, 1.75%) + + + +itable stub (1 samples, 0.08%) + + + +__srcu_read_lock (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (5 samples, 0.38%) + + + +org/vertx/java/core/impl/DefaultVertx:.setContext (1 samples, 0.08%) + + + +ip_rcv_finish (89 samples, 6.77%) +ip_rcv_fi.. + + +response_complete (13 samples, 0.99%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.skipControlCharacters (2 samples, 0.15%) + + + +tcp_v4_rcv (27 samples, 2.05%) +t.. + + +ktime_get_ts (2 samples, 0.15%) + + + +tick_nohz_restart (4 samples, 0.30%) + + + +io/netty/channel/ChannelOutboundHandlerAdapter:.flush (1 samples, 0.08%) + + + +sun/nio/ch/FileDispatcherImpl:.write0 (2 samples, 0.15%) + + + +GCTaskThread::run (28 samples, 2.13%) +G.. + + +io/netty/handler/codec/http/HttpHeaders:.encode (1 samples, 0.08%) + + + +__kmalloc_node_track_caller (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (25 samples, 1.90%) +o.. + + +org/mozilla/javascript/IdScriptableObject:.has (2 samples, 0.15%) + + + +atomic_notifier_call_chain (1 samples, 0.08%) + + + +remote_function (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +common_file_perm (1 samples, 0.08%) + + + +sun/nio/ch/SocketChannelImpl:.isConnected (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.has (9 samples, 0.68%) + + + +tcp_init_tso_segs (1 samples, 0.08%) + + + +org/mozilla/javascript/BaseFunction:.findInstanceIdInfo (1 samples, 0.08%) + + + +tcp_v4_do_rcv (77 samples, 5.86%) +tcp_v4_.. + + +__tcp_push_pending_frames (61 samples, 4.64%) +__tcp.. + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +native_read_tsc (1 samples, 0.08%) + + + +tcp_md5_do_lookup (1 samples, 0.08%) + + + +do_sync_write (186 samples, 14.14%) +do_sync_write + + +cpuidle_enter_state (4 samples, 0.30%) + + + +ep_poll_callback (1 samples, 0.08%) + + + +x86_pmu_enable (4 samples, 0.30%) + + + +copy_user_generic_string (3 samples, 0.23%) + + + +perf_pmu_enable (4 samples, 0.30%) + + + +vfs_read (25 samples, 1.90%) +v.. + + +x86_64_start_reservations (24 samples, 1.83%) +x.. + + +security_file_permission (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +nr_iowait_cpu (1 samples, 0.08%) + + + +__hrtimer_start_range_ns (2 samples, 0.15%) + + + +system_call_after_swapgs (1 samples, 0.08%) + + + +release_sock (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (11 samples, 0.84%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +itable stub (1 samples, 0.08%) + + + +call_stub (956 samples, 72.70%) +call_stub + + +dev_hard_start_xmit (3 samples, 0.23%) + + + +dev_queue_xmit (11 samples, 0.84%) + + + +task_nice (2 samples, 0.15%) + + + +ip_finish_output (119 samples, 9.05%) +ip_finish_out.. + + +__remove_hrtimer (1 samples, 0.08%) + + + +sys_epoll_wait (4 samples, 0.30%) + + + +rcu_cpu_has_callbacks (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +rcu_idle_exit (1 samples, 0.08%) + + + +net_rx_action (97 samples, 7.38%) +net_rx_act.. + + +lock_sock_nested (1 samples, 0.08%) + + + +mod_timer (2 samples, 0.15%) + + + +apparmor_file_free_security (1 samples, 0.08%) + + + +__remove_hrtimer (1 samples, 0.08%) + + + +tcp_established_options (4 samples, 0.30%) + + + +sk_reset_timer (5 samples, 0.38%) + + + +io/netty/channel/ChannelOutboundHandlerAdapter:.flush (235 samples, 17.87%) +io/netty/channel/ChannelOut.. + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (1 samples, 0.08%) + + + +menu_reflect (1 samples, 0.08%) + + + +__slab_alloc (3 samples, 0.23%) + + + +PSScavengeKlassClosure::do_klass (1 samples, 0.08%) + + + +__ip_local_out (1 samples, 0.08%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (5 samples, 0.38%) + + + +tcp_send_delayed_ack (3 samples, 0.23%) + + + +arch_local_irq_save (1 samples, 0.08%) + + + +__kmalloc_node_track_caller (1 samples, 0.08%) + + + +java/nio/channels/spi/AbstractInterruptibleChannel:.end (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (15 samples, 1.14%) + + + +apparmor_file_permission (2 samples, 0.15%) + + + +mutex_lock (2 samples, 0.15%) + + + +sys_epoll_ctl (5 samples, 0.38%) + + + +hrtimer_interrupt (1 samples, 0.08%) + + + +ParallelTaskTerminator::offer_termination (2 samples, 0.15%) + + + +dequeue_entity (4 samples, 0.30%) + + + +io/netty/buffer/PooledByteBuf:.deallocate (5 samples, 0.38%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +wrk (240 samples, 18.25%) +wrk + + +perf_pmu_enable (4 samples, 0.30%) + + + +org/mozilla/javascript/IdScriptableObject:.get (2 samples, 0.15%) + + + +remote_function (4 samples, 0.30%) + + + +__GI___ioctl (5 samples, 0.38%) + + + +socket_readable (2 samples, 0.15%) + + + +epoll_ctl (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (21 samples, 1.60%) + + + +tick_nohz_stop_sched_tick (4 samples, 0.30%) + + + +io/netty/channel/DefaultChannelPipeline$HeadContext:.write (6 samples, 0.46%) + + + +tcp_write_xmit (147 samples, 11.18%) +tcp_write_xmit + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (5 samples, 0.38%) + + + +lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + +inet_recvmsg (17 samples, 1.29%) + + + +native_write_msr_safe (4 samples, 0.30%) + + + +ip_local_out (46 samples, 3.50%) +ip_.. + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + +local_bh_enable (42 samples, 3.19%) +loc.. + + +hrtimer_start_range_ns (3 samples, 0.23%) + + + +jlong_disjoint_arraycopy (1 samples, 0.08%) + + + +ep_send_events_proc (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getParentScope (3 samples, 0.23%) + + + +itable stub (1 samples, 0.08%) + + + +path_openat (1 samples, 0.08%) + + + +activate_task (7 samples, 0.53%) + + + +pick_next_task_fair (1 samples, 0.08%) + + + +security_file_permission (5 samples, 0.38%) + + + +io/netty/channel/ChannelOutboundBuffer:.decrementPendingOutboundBytes (1 samples, 0.08%) + + + +system_call_fastpath (56 samples, 4.26%) +syste.. + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (6 samples, 0.46%) + + + +ip_local_deliver_finish (30 samples, 2.28%) +i.. + + +sock_read (2 samples, 0.15%) + + + +deactivate_task (7 samples, 0.53%) + + + +lock_sock_nested (1 samples, 0.08%) + + + +sock_put (1 samples, 0.08%) + + + +mod_timer (3 samples, 0.23%) + + + +aeProcessEvents (171 samples, 13.00%) +aeProcessEvents + + +io/netty/buffer/AbstractByteBuf:.ensureWritable (2 samples, 0.15%) + + + +tick_nohz_stop_sched_tick (5 samples, 0.38%) + + + +org/mozilla/javascript/NativeJavaMethod:.findCachedFunction (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpMethod:.valueOf (2 samples, 0.15%) + + + +hrtimer_try_to_cancel (1 samples, 0.08%) + + + +system_call (1 samples, 0.08%) + + + +hrtimer_cancel (1 samples, 0.08%) + + + +system_call_fastpath (196 samples, 14.90%) +system_call_fastpath + + +io/netty/channel/AbstractChannelHandlerContext:.read (2 samples, 0.15%) + + + +[unknown] (10 samples, 0.76%) + + + +io/netty/handler/codec/MessageToMessageEncoder:.write (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (47 samples, 3.57%) +org.. + + +jlong_disjoint_arraycopy (1 samples, 0.08%) + + + +[unknown] (1 samples, 0.08%) + + + +native_read_tsc (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.splitHeader (8 samples, 0.61%) + + + +intel_pmu_enable_all (4 samples, 0.30%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.set (3 samples, 0.23%) + + + +read_tsc (1 samples, 0.08%) + + + +_raw_spin_lock (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +dequeue_task_fair (6 samples, 0.46%) + + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + +do_softirq (38 samples, 2.89%) +do.. + + +response_complete (2 samples, 0.15%) + + + +get_next_timer_interrupt (3 samples, 0.23%) + + + +__perf_event_enable (4 samples, 0.30%) + + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +lapic_next_deadline (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (4 samples, 0.30%) + + + +fput (1 samples, 0.08%) + + + +tcp_rearm_rto (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +group_sched_in (4 samples, 0.30%) + + + +__getnstimeofday (1 samples, 0.08%) + + + +java/util/Arrays:.copyOf (1 samples, 0.08%) + + + +local_bh_enable (104 samples, 7.91%) +local_bh_en.. + + +tcp_event_new_data_sent (3 samples, 0.23%) + + + +read_tsc (2 samples, 0.15%) + + + +system_call_fastpath (6 samples, 0.46%) + + + +tcp_prequeue (1 samples, 0.08%) + + + +call_function_single_interrupt (4 samples, 0.30%) + + + +get_page_from_freelist (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.setAttributes (5 samples, 0.38%) + + + +io/netty/channel/AbstractChannelHandlerContext:.read (4 samples, 0.30%) + + + +org/vertx/java/core/http/impl/VertxHttpHandler:.write (34 samples, 2.59%) +or.. + + +_raw_spin_lock_irqsave (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.splitInitialLine (5 samples, 0.38%) + + + +org/mozilla/javascript/ScriptableObject:.getParentScope (4 samples, 0.30%) + + + +org/mozilla/javascript/IdScriptableObject:.get (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptRuntime:.getObjectProp (1 samples, 0.08%) + + + +swapper (72 samples, 5.48%) +swapper + + +ktime_get (1 samples, 0.08%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (416 samples, 31.63%) +org/mozilla/javascript/gen/file__root_vert_x_2_1_5.. + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +__schedule (4 samples, 0.30%) + + + +bictcp_cong_avoid (3 samples, 0.23%) + + + +tcp_rcv_space_adjust (2 samples, 0.15%) + + + +JavaThread::run (956 samples, 72.70%) +JavaThread::run + + +apparmor_socket_sendmsg (1 samples, 0.08%) + + + +InstanceKlass::oop_push_contents (8 samples, 0.61%) + + + +sun/nio/ch/SocketChannelImpl:.isConnected (1 samples, 0.08%) + + + +__libc_start_main (6 samples, 0.46%) + + + +tcp_is_cwnd_limited (2 samples, 0.15%) + + + +sun/nio/ch/FileDispatcherImpl:.write0 (203 samples, 15.44%) +sun/nio/ch/FileDispatch.. + + +internal_add_timer (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.setAttributes (2 samples, 0.15%) + + + +[unknown] (30 samples, 2.28%) +[.. + + +io/netty/buffer/AbstractByteBufAllocator:.heapBuffer (3 samples, 0.23%) + + + +__tcp_push_pending_frames (149 samples, 11.33%) +__tcp_push_pendi.. + + +ClassLoaderDataGraph::oops_do (1 samples, 0.08%) + + + +tick_nohz_stop_idle (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +__skb_clone (1 samples, 0.08%) + + + +tcp_ack (20 samples, 1.52%) + + + +__inet_lookup_established (4 samples, 0.30%) + + + +org/mozilla/javascript/NativeJavaMethod:.findFunction (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (4 samples, 0.30%) + + + +enqueue_task (7 samples, 0.53%) + + + +sock_def_readable (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +tcp_data_queue (39 samples, 2.97%) +tc.. + + +security_file_permission (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +sun/reflect/DelegatingMethodAccessorImpl:.invoke (66 samples, 5.02%) +sun/re.. + + +__skb_clone (1 samples, 0.08%) + + + +org/vertx/java/platform/impl/RhinoContextFactory:.onContextCreated (1 samples, 0.08%) + + + +tcp_poll (1 samples, 0.08%) + + + +netif_skb_dev_features (1 samples, 0.08%) + + + +ep_scan_ready_list.isra.9 (4 samples, 0.30%) + + + +native_write_msr_safe (4 samples, 0.30%) + + + +copy_user_generic_string (1 samples, 0.08%) + + + +intel_pmu_enable_all (4 samples, 0.30%) + + + +__switch_to (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (4 samples, 0.30%) + + + +__hrtimer_start_range_ns (3 samples, 0.23%) + + + +__srcu_read_lock (2 samples, 0.15%) + + + +io/netty/channel/AbstractChannelHandlerContext:.validatePromise (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (11 samples, 0.84%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (8 samples, 0.61%) + + + +org/mozilla/javascript/NativeJavaMethod:.findCachedFunction (2 samples, 0.15%) + + + +sock_poll (1 samples, 0.08%) + + + +tick_program_event (3 samples, 0.23%) + + + +tcp_transmit_skb (55 samples, 4.18%) +tcp_.. + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (1 samples, 0.08%) + + + +org/mozilla/javascript/WrapFactory:.wrap (5 samples, 0.38%) + + + +java/lang/String:.getBytes (3 samples, 0.23%) + + + +org/mozilla/javascript/NativeJavaObject:.initMembers (4 samples, 0.30%) + + + +bictcp_cong_avoid (1 samples, 0.08%) + + + +ktime_get_real (3 samples, 0.23%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (21 samples, 1.60%) + + + +rcu_sysidle_force_exit (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.getValue (2 samples, 0.15%) + + + +aa_file_perm (1 samples, 0.08%) + + + +tick_sched_timer (1 samples, 0.08%) + + + +sk_reset_timer (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +msecs_to_jiffies (1 samples, 0.08%) + + + +ipv4_dst_check (1 samples, 0.08%) + + + +tcp_write_xmit (60 samples, 4.56%) +tcp_w.. + + +io/netty/util/Recycler:.recycle (1 samples, 0.08%) + + + +group_sched_in (4 samples, 0.30%) + + + +generic_exec_single (1 samples, 0.08%) + + + +menu_select (2 samples, 0.15%) + + + +org/mozilla/javascript/BaseFunction:.construct (1 samples, 0.08%) + + + +process_backlog (97 samples, 7.38%) +process_ba.. + + +__pthread_disable_asynccancel (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.decode (57 samples, 4.33%) +io/ne.. + + +schedule_preempt_disabled (4 samples, 0.30%) + + + +rcu_idle_exit (2 samples, 0.15%) + + + +tcp_send_mss (1 samples, 0.08%) + + + +[unknown] (26 samples, 1.98%) +[.. + + +org/mozilla/javascript/ScriptRuntime:.nameOrFunction (1 samples, 0.08%) + + + +inet_sendmsg (78 samples, 5.93%) +inet_se.. + + +__getnstimeofday (1 samples, 0.08%) + + + +kfree_skbmem (1 samples, 0.08%) + + + +smp_apic_timer_interrupt (1 samples, 0.08%) + + + +kmalloc_slab (2 samples, 0.15%) + + + +[unknown] (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders (2 samples, 0.15%) + + + +ip_rcv_finish (32 samples, 2.43%) +ip.. + + +io/netty/channel/DefaultChannelPipeline$HeadContext:.read (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (8 samples, 0.61%) + + + +inet_ehashfn (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (33 samples, 2.51%) +or.. + + +frame::oops_do_internal (1 samples, 0.08%) + + + +thread_entry (956 samples, 72.70%) +thread_entry + + +sun/nio/ch/SelectorImpl:.select (7 samples, 0.53%) + + + +_raw_spin_lock_irq (1 samples, 0.08%) + + + +ttwu_do_activate.constprop.74 (12 samples, 0.91%) + + + +skb_copy_datagram_iovec (1 samples, 0.08%) + + + +Interpreter (956 samples, 72.70%) +Interpreter + + +io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders (22 samples, 1.67%) + + + +org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived (540 samples, 41.06%) +org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doM.. + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +fget_light (1 samples, 0.08%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.contains (1 samples, 0.08%) + + + +kfree_skbmem (1 samples, 0.08%) + + + +__alloc_pages_nodemask (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +enqueue_task_fair (5 samples, 0.38%) + + + +perf_pmu_enable (4 samples, 0.30%) + + + +tcp_rcv_established (73 samples, 5.55%) +tcp_rcv.. + + +org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + +vfs_write (192 samples, 14.60%) +vfs_write + + +fdval (1 samples, 0.08%) + + + +ip_queue_xmit (122 samples, 9.28%) +ip_queue_xmit + + +sock_aio_write (82 samples, 6.24%) +sock_aio.. + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (1 samples, 0.08%) + + + +aeMain (236 samples, 17.95%) +aeMain + + +io/netty/channel/ChannelDuplexHandler:.read (3 samples, 0.23%) + + + +org/vertx/java/core/http/impl/AssembledFullHttpResponse:.toLastContent (2 samples, 0.15%) + + + +internal_add_timer (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +vtable stub (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getParentScope (1 samples, 0.08%) + + + +io/netty/buffer/PooledByteBufAllocator:.newDirectBuffer (2 samples, 0.15%) + + + +SpinPause (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (3 samples, 0.23%) + + + +java/nio/charset/CharsetEncoder:.replaceWith (2 samples, 0.15%) + + + +tcp_queue_rcv (2 samples, 0.15%) + + + +stats_record (3 samples, 0.23%) + + + +org/mozilla/javascript/WrapFactory:.wrap (5 samples, 0.38%) + + + +__wake_up_sync_key (27 samples, 2.05%) +_.. + + +__acct_update_integrals (1 samples, 0.08%) + + + +fget_light (1 samples, 0.08%) + + + +local_bh_enable (1 samples, 0.08%) + + + +eth_type_trans (1 samples, 0.08%) + + + +org/vertx/java/core/net/impl/VertxHandler:.channelRead (555 samples, 42.21%) +org/vertx/java/core/net/impl/VertxHandler:.channelRead + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +sock_put (1 samples, 0.08%) + + + +__kfree_skb (3 samples, 0.23%) + + + +dequeue_task (7 samples, 0.53%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +ip_rcv_finish (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.getObjectProp (4 samples, 0.30%) + + + +__tick_nohz_idle_enter (4 samples, 0.30%) + + + +__tcp_ack_snd_check (3 samples, 0.23%) + + + +[unknown] (4 samples, 0.30%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (2 samples, 0.15%) + + + +int_sqrt (1 samples, 0.08%) + + + +nmethod::fix_oop_relocations (1 samples, 0.08%) + + + +tcp_sendmsg (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +org/mozilla/javascript/BaseFunction:.findPrototypeId (1 samples, 0.08%) + + + +native_write_msr_safe (3 samples, 0.23%) + + + +perf_pmu_enable (4 samples, 0.30%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (77 samples, 5.86%) +org/moz.. + + +__netif_receive_skb_core (94 samples, 7.15%) +__netif_r.. + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +hrtimer_start (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.setName (5 samples, 0.38%) + + + +__netif_receive_skb (94 samples, 7.15%) +__netif_r.. + + +change_protection (1 samples, 0.08%) + + + +io/netty/channel/ChannelOutboundBuffer:.current (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.flush (233 samples, 17.72%) +io/netty/channel/AbstractCh.. + + +do_softirq_own_stack (103 samples, 7.83%) +do_softirq_.. + + +do_filp_open (1 samples, 0.08%) + + + +x86_pmu_commit_txn (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +io/netty/util/Recycler:.get (1 samples, 0.08%) + + + +_raw_spin_lock (1 samples, 0.08%) + + + +sun/nio/ch/SocketChannelImpl:.isConnected (1 samples, 0.08%) + + + +change_protection_range (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (12 samples, 0.91%) + + + +__libc_write (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (513 samples, 39.01%) +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_.. + + +raw_local_deliver (1 samples, 0.08%) + + + +apparmor_file_permission (1 samples, 0.08%) + + + +VMThread::loop (1 samples, 0.08%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.newPromise (1 samples, 0.08%) + + + +epoll_ctl (7 samples, 0.53%) + + + +io/netty/handler/codec/http/HttpVersion:.compareTo (1 samples, 0.08%) + + + +io/netty/channel/nio/NioEventLoop:.processSelectedKeys (949 samples, 72.17%) +io/netty/channel/nio/NioEventLoop:.processSelectedKeys + + +io/netty/handler/codec/http/DefaultHttpHeaders:.init (1 samples, 0.08%) + + + +java/lang/String:.hashCode (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +effective_load.isra.35 (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +rcu_sysidle_exit (1 samples, 0.08%) + + + +native_load_tls (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +org/mozilla/javascript/BaseFunction:.findPrototypeId (1 samples, 0.08%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (6 samples, 0.46%) + + + +system_call_fastpath (22 samples, 1.67%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + +tcp_current_mss (5 samples, 0.38%) + + + +io/netty/channel/ChannelOutboundBuffer:.incrementPendingOutboundBytes (1 samples, 0.08%) + + + +oopDesc* PSPromotionManager::copy_to_survivor_spacefalse (2 samples, 0.15%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (156 samples, 11.86%) +org/mozilla/javas.. + + +StealTask::do_it (3 samples, 0.23%) + + + +Interpreter (956 samples, 72.70%) +Interpreter + + +PSPromotionManager::drain_stacks_depth (2 samples, 0.15%) + + + +sock_def_readable (32 samples, 2.43%) +so.. + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +perf (6 samples, 0.46%) + + + +__wake_up_common (27 samples, 2.05%) +_.. + + +org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpObjectDecoder$HeaderParser:.process (1 samples, 0.08%) + + + +common_file_perm (1 samples, 0.08%) + + + +io/netty/buffer/AbstractReferenceCountedByteBuf:.release (5 samples, 0.38%) + + + +hrtimer_force_reprogram (3 samples, 0.23%) + + + +org/vertx/java/core/impl/DefaultVertx:.setContext (1 samples, 0.08%) + + + +msecs_to_jiffies (1 samples, 0.08%) + + + +arch_cpu_idle (7 samples, 0.53%) + + + +[unknown] (91 samples, 6.92%) +[unknown] + + +tcp_cleanup_rbuf (1 samples, 0.08%) + + + +release_sock (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.flush (235 samples, 17.87%) +io/netty/channel/AbstractCh.. + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (1 samples, 0.08%) + + + +fput (2 samples, 0.15%) + + + +bictcp_acked (1 samples, 0.08%) + + + +java/nio/DirectByteBuffer:.duplicate (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.checkIndex (3 samples, 0.23%) + + + +java/util/HashMap:.getNode (2 samples, 0.15%) + + + +ttwu_stat (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.hash (1 samples, 0.08%) + + + +org/vertx/java/core/net/impl/ConnectionBase:.write (38 samples, 2.89%) +or.. + + +local_apic_timer_interrupt (1 samples, 0.08%) + + + +inet_ehashfn (1 samples, 0.08%) + + + +__srcu_read_unlock (1 samples, 0.08%) + + + +java/nio/channels/spi/AbstractInterruptibleChannel:.begin (1 samples, 0.08%) + + + +skb_clone (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead (562 samples, 42.74%) +io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead + + +ip_local_deliver (89 samples, 6.77%) +ip_local_.. + + +org/mozilla/javascript/ScriptableObject:.createSlot (8 samples, 0.61%) + + + +itable stub (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +__do_softirq (36 samples, 2.74%) +__.. + + +io/netty/handler/codec/http/HttpMethod:.valueOf (2 samples, 0.15%) + + + +clockevents_program_event (3 samples, 0.23%) + + + +tcp_set_skb_tso_segs (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.checkSrcIndex (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpVersion:.compareTo (2 samples, 0.15%) + + + +ttwu_do_activate.constprop.74 (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.setAttributes (6 samples, 0.46%) + + + +cpuidle_idle_call (21 samples, 1.60%) + + + +__hrtimer_start_range_ns (2 samples, 0.15%) + + + +io/netty/channel/ChannelOutboundHandlerAdapter:.read (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.bind (7 samples, 0.53%) + + + +x86_pmu_enable (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +sun/nio/ch/EPollArrayWrapper:.poll (5 samples, 0.38%) + + + +org/mozilla/javascript/IdScriptableObject:.setAttributes (12 samples, 0.91%) + + + +sock_read (3 samples, 0.23%) + + + +HandleArea::oops_do (1 samples, 0.08%) + + + +tcp_v4_send_check (1 samples, 0.08%) + + + +tcp_wfree (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$Slot:.getValue (1 samples, 0.08%) + + + +sun/nio/ch/FileDispatcherImpl:.read0 (1 samples, 0.08%) + + + +org/vertx/java/core/net/impl/VertxHandler:.channelReadComplete (240 samples, 18.25%) +org/vertx/java/core/net/impl.. + + +rcu_bh_qs (1 samples, 0.08%) + + + +lock_timer_base.isra.35 (1 samples, 0.08%) + + + +io/netty/buffer/PooledUnsafeDirectByteBuf:.setBytes (42 samples, 3.19%) +io/.. + + +sun/nio/cs/UTF_8$Encoder:.init (3 samples, 0.23%) + + + +io/netty/channel/ChannelDuplexHandler:.read (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +account_entity_dequeue (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (17 samples, 1.29%) + + + +io/netty/handler/codec/http/HttpObjectEncoder:.encode (17 samples, 1.29%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (2 samples, 0.15%) + + + +ksize (1 samples, 0.08%) + + + +[unknown] (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (2 samples, 0.15%) + + + +fget_light (1 samples, 0.08%) + + + +sched_clock_idle_sleep_event (1 samples, 0.08%) + + + +sock_aio_write (185 samples, 14.07%) +sock_aio_write + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_streams_j (1 samples, 0.08%) + + + +smp_call_function_single (5 samples, 0.38%) + + + +org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + +ip_rcv (91 samples, 6.92%) +ip_rcv + + +tcp_sendmsg (176 samples, 13.38%) +tcp_sendmsg + + +release_sock (1 samples, 0.08%) + + + +ep_poll_callback (27 samples, 2.05%) +e.. + + +update_min_vruntime (1 samples, 0.08%) + + + +java/lang/Integer:.toString (1 samples, 0.08%) + + + +itable stub (1 samples, 0.08%) + + + +do_softirq_own_stack (37 samples, 2.81%) +do.. + + +io/netty/buffer/AbstractByteBufAllocator:.heapBuffer (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + +sched_clock_cpu (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.encodeAscii0 (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + +inet_sendmsg (1 samples, 0.08%) + + + +VMThread::run (1 samples, 0.08%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.init (1 samples, 0.08%) + + + +java/util/HashMap:.getNode (2 samples, 0.15%) + + + +__run_hrtimer (1 samples, 0.08%) + + + +java/nio/channels/spi/AbstractInterruptibleChannel:.begin (1 samples, 0.08%) + + + +io/netty/handler/codec/http/HttpHeaders:.hash (1 samples, 0.08%) + + + +sun/nio/ch/EPollSelectorImpl:.updateSelectedKeys (1 samples, 0.08%) + + + +x86_pmu_enable (4 samples, 0.30%) + + + +thread_main (237 samples, 18.02%) +thread_main + + +enqueue_hrtimer (1 samples, 0.08%) + + + +ep_poll (4 samples, 0.30%) + + + +sock_aio_read (7 samples, 0.53%) + + + +io/netty/buffer/AbstractByteBuf:.checkSrcIndex (3 samples, 0.23%) + + + +sock_aio_read (22 samples, 1.67%) + + + +io/netty/handler/codec/http/HttpObjectDecoder$LineParser:.parse (6 samples, 0.46%) + + + +sys_epoll_ctl (5 samples, 0.38%) + + + +java/lang/String:.init (4 samples, 0.30%) + + + +rb_erase (1 samples, 0.08%) + + + +select_estimate_accuracy (5 samples, 0.38%) + + + +link_path_walk (1 samples, 0.08%) + + + +sock_aio_read.part.8 (22 samples, 1.67%) + + + +local_bh_enable_ip (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (3 samples, 0.23%) + + + +__tcp_select_window (1 samples, 0.08%) + + + +fget_light (1 samples, 0.08%) + + + +io/netty/buffer/AbstractReferenceCountedByteBuf:.release (4 samples, 0.30%) + + + +acct_account_cputime (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (1 samples, 0.08%) + + + +__perf_event_enable (4 samples, 0.30%) + + + +ip_finish_output (46 samples, 3.50%) +ip_.. + + +__tick_nohz_idle_enter (6 samples, 0.46%) + + + +__skb_clone (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getPrototype (1 samples, 0.08%) + + + +__switch_to (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.write (35 samples, 2.66%) +io.. + + +_raw_spin_lock (1 samples, 0.08%) + + + +_raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (3 samples, 0.23%) + + + +org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +idle_cpu (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +io/netty/util/Recycler:.get (1 samples, 0.08%) + + + +native_write_msr_safe (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) + + + +ip_output (119 samples, 9.05%) +ip_output + + +io/netty/buffer/AbstractByteBuf:.forEachByteAsc0 (3 samples, 0.23%) + + + +skb_network_protocol (1 samples, 0.08%) + + + +enqueue_entity (5 samples, 0.38%) + + + +tcp_established_options (1 samples, 0.08%) + + + +update_process_times (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.read (3 samples, 0.23%) + + + +update_rq_clock.part.63 (1 samples, 0.08%) + + + +sun/nio/ch/EPollArrayWrapper:.epollWait (4 samples, 0.30%) + + + +sock_poll (2 samples, 0.15%) + + + +io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized (949 samples, 72.17%) +io/netty/channel/nio/NioEventLoop:.processSelectedKeysOptimized + + +java_start (985 samples, 74.90%) +java_start + + +mprotect_fixup (1 samples, 0.08%) + + + +ep_scan_ready_list.isra.9 (20 samples, 1.52%) + + + +tcp_v4_do_rcv (23 samples, 1.75%) + + + +sk_stream_alloc_skb (7 samples, 0.53%) + + + +update_curr (2 samples, 0.15%) + + + +tcp_wfree (2 samples, 0.15%) + + + +user_path_at_empty (1 samples, 0.08%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.init (1 samples, 0.08%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (1 samples, 0.08%) + + + +sun/nio/ch/NativeThread:.current (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + +JavaThread::oops_do (3 samples, 0.23%) + + + +org/mozilla/javascript/ScriptableObject:.getBase (2 samples, 0.15%) + + + +ip_local_deliver (1 samples, 0.08%) + + + +org/vertx/java/core/http/impl/ServerConnection:.handleRequest (526 samples, 40.00%) +org/vertx/java/core/http/impl/ServerConnection:.handleRequest + + +__hrtimer_start_range_ns (3 samples, 0.23%) + + + +org/mozilla/javascript/NativeFunction:.initScriptFunction (10 samples, 0.76%) + + + +hrtimer_start (1 samples, 0.08%) + + + +intel_idle (11 samples, 0.84%) + + + +org/mozilla/javascript/IdScriptableObject:.has (3 samples, 0.23%) + + + +ktime_get (1 samples, 0.08%) + + + +update_cfs_rq_blocked_load (1 samples, 0.08%) + + + +org/mozilla/javascript/WrapFactory:.setJavaPrimitiveWrap (1 samples, 0.08%) + + + +sun/nio/ch/NativeThread:.current (1 samples, 0.08%) + + + +system_call_fastpath (28 samples, 2.13%) +s.. + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +sched_clock_cpu (1 samples, 0.08%) + + + +lapic_next_deadline (3 samples, 0.23%) + + + +io/netty/buffer/UnpooledHeapByteBuf:.init (1 samples, 0.08%) + + + +filename_lookup (1 samples, 0.08%) + + + +jni_fast_GetIntField (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (6 samples, 0.46%) + + + +x86_pmu_commit_txn (4 samples, 0.30%) + + + +__kfree_skb (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeJavaMethod:.call (10 samples, 0.76%) + + + +process_backlog (34 samples, 2.59%) +pr.. + + +all (1,315 samples, 100%) + + + +io/netty/handler/codec/http/HttpHeaders:.encodeAscii0 (2 samples, 0.15%) + + + +system_call_after_swapgs (6 samples, 0.46%) + + + +_raw_spin_unlock_bh (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +tcp_event_new_data_sent (6 samples, 0.46%) + + + +_raw_spin_unlock_bh (1 samples, 0.08%) + + + +tcp_schedule_loss_probe (3 samples, 0.23%) + + + +tcp_check_space (3 samples, 0.23%) + + + +dev_queue_xmit (4 samples, 0.30%) + + + +tick_nohz_restart (6 samples, 0.46%) + + + +__tcp_ack_snd_check (5 samples, 0.38%) + + + +user_path_at (1 samples, 0.08%) + + + +socket_readable (60 samples, 4.56%) +socke.. + + +org/mozilla/javascript/ScriptableObject:.getSlot (4 samples, 0.30%) + + + +OopMapSet::all_do (1 samples, 0.08%) + + + +socket_writeable (1 samples, 0.08%) + + + +internal_add_timer (1 samples, 0.08%) + + + +select_task_rq_fair (4 samples, 0.30%) + + + +loopback_xmit (5 samples, 0.38%) + + + +sys_epoll_wait (56 samples, 4.26%) +sys_e.. + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +clockevents_program_event (3 samples, 0.23%) + + + +io/netty/buffer/PooledByteBuf:.deallocate (2 samples, 0.15%) + + + +io/netty/util/Recycler:.get (1 samples, 0.08%) + + + +fsnotify (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeJavaMethod:.call (74 samples, 5.63%) +org/moz.. + + +org/mozilla/javascript/ScriptRuntime:.setObjectProp (37 samples, 2.81%) +or.. + + +schedule_preempt_disabled (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.flush (238 samples, 18.10%) +io/netty/channel/AbstractCha.. + + +tcp_queue_rcv (2 samples, 0.15%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (5 samples, 0.38%) + + + +tcp_recvmsg (7 samples, 0.53%) + + + +update_curr (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +tcp_md5_do_lookup (1 samples, 0.08%) + + + +smp_call_function_single_interrupt (4 samples, 0.30%) + + + +netif_rx (2 samples, 0.15%) + + + +enqueue_to_backlog (1 samples, 0.08%) + + + +_raw_spin_unlock_bh (1 samples, 0.08%) + + + +perf_ioctl (5 samples, 0.38%) + + + +tick_program_event (3 samples, 0.23%) + + + +io/netty/handler/codec/ByteToMessageDecoder:.channelRead (635 samples, 48.29%) +io/netty/handler/codec/ByteToMessageDecoder:.channelRead + + +put_prev_task_fair (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.createSlot (15 samples, 1.14%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +sys_mprotect (1 samples, 0.08%) + + + +Monitor::wait (1 samples, 0.08%) + + + +skb_push (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +vtable stub (1 samples, 0.08%) + + + +x86_64_start_kernel (24 samples, 1.83%) +x.. + + +[unknown] (1 samples, 0.08%) + + + +kfree (1 samples, 0.08%) + + + +io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (241 samples, 18.33%) +io/netty/channel/AbstractCha.. + + +io/netty/buffer/AbstractByteBuf:.forEachByteAsc0 (3 samples, 0.23%) + + + +Java_sun_nio_ch_FileDispatcherImpl_write0 (1 samples, 0.08%) + + + +do_execve_common.isra.22 (1 samples, 0.08%) + + + +group_sched_in (4 samples, 0.30%) + + + +socket_writeable (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue (1 samples, 0.08%) + + + +java/lang/String:.hashCode (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getTopLevelScope (1 samples, 0.08%) + + + +kmem_cache_alloc_node (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.has (12 samples, 0.91%) + + + +getnstimeofday (1 samples, 0.08%) + + + +java/util/Arrays:.copyOf (1 samples, 0.08%) + + + +arch_cpu_idle (22 samples, 1.67%) + + + +http_parser_execute (30 samples, 2.28%) +h.. + + +new_slab (2 samples, 0.15%) + + + +io/netty/channel/ChannelDuplexHandler:.flush (1 samples, 0.08%) + + + +generic_smp_call_function_single_interrupt (4 samples, 0.30%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.contains (1 samples, 0.08%) + + + +java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + +security_socket_sendmsg (1 samples, 0.08%) + + + +update_cpu_load_nohz (1 samples, 0.08%) + + + +__perf_event_enable (4 samples, 0.30%) + + + +skb_clone (1 samples, 0.08%) + + + +start_thread (237 samples, 18.02%) +start_thread + + +mod_timer (3 samples, 0.23%) + + + +tcp_data_queue (9 samples, 0.68%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + +java/lang/String:.trim (1 samples, 0.08%) + + + +net_rx_action (35 samples, 2.66%) +ne.. + + +inet_sendmsg (177 samples, 13.46%) +inet_sendmsg + + +getnstimeofday (3 samples, 0.23%) + + + +io/netty/buffer/AbstractByteBuf:.writeBytes (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getSlot (3 samples, 0.23%) + + + +[unknown] (1 samples, 0.08%) + + + +hrtimer_try_to_cancel (4 samples, 0.30%) + + + +java/nio/charset/Charset:.lookup (2 samples, 0.15%) + + + +org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + +start_thread (985 samples, 74.90%) +start_thread + + +x86_pmu_commit_txn (4 samples, 0.30%) + + + +org/mozilla/javascript/ScriptableObject:.getParentScope (1 samples, 0.08%) + + + +system_call_fastpath (5 samples, 0.38%) + + + +_raw_spin_lock (1 samples, 0.08%) + + + +menu_select (4 samples, 0.30%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (3 samples, 0.23%) + + + +io/netty/buffer/PooledByteBuf:.deallocate (2 samples, 0.15%) + + + +org/mozilla/javascript/BaseFunction:.findInstanceIdInfo (4 samples, 0.30%) + + + +rest_init (24 samples, 1.83%) +r.. + + +ksoftirqd/3 (1 samples, 0.08%) + + + +group_sched_in (4 samples, 0.30%) + + + +account_user_time (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.name (8 samples, 0.61%) + + + +perf_event_for_each_child (5 samples, 0.38%) + + + +io/netty/handler/codec/http/HttpObjectDecoder:.findWhitespace (1 samples, 0.08%) + + + +java/lang/String:.init (1 samples, 0.08%) + + + +set_next_entity (2 samples, 0.15%) + + + +ip_local_deliver_finish (89 samples, 6.77%) +ip_local_.. + + +org/mozilla/javascript/NativeJavaMethod:.findCachedFunction (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.put (12 samples, 0.91%) + + + +hrtimer_start_range_ns (2 samples, 0.15%) + + + +__internal_add_timer (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (9 samples, 0.68%) + + + +smp_call_function_single_interrupt (4 samples, 0.30%) + + + +_raw_spin_lock_bh (1 samples, 0.08%) + + + +__hrtimer_start_range_ns (1 samples, 0.08%) + + + +lock_sock_nested (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject$PrototypeValues:.ensureId (1 samples, 0.08%) + + + +sk_reset_timer (3 samples, 0.23%) + + + +org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_vertx_lang_js_1_1_0_vertx_http_js_2 (154 samples, 11.71%) +org/mozilla/javas.. + + +io/netty/handler/codec/ByteToMessageDecoder:.channelRead (1 samples, 0.08%) + + + +security_socket_sendmsg (2 samples, 0.15%) + + + +io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (1 samples, 0.08%) + + + +system_call_after_swapgs (1 samples, 0.08%) + + + +hrtimer_cancel (4 samples, 0.30%) + + + +ObjArrayKlass::oop_push_contents (2 samples, 0.15%) + + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + +org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + +schedule_hrtimeout_range (20 samples, 1.52%) + + + +org/mozilla/javascript/ScriptableObject:.putImpl (24 samples, 1.83%) +o.. + + +__fsnotify_parent (1 samples, 0.08%) + + + +vtable stub (1 samples, 0.08%) + + + +__dev_queue_xmit (10 samples, 0.76%) + + + +sys_write (88 samples, 6.69%) +sys_write + + +detach_if_pending (1 samples, 0.08%) + + + +socket_writeable (99 samples, 7.53%) +socket_wri.. + + +org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (2 samples, 0.15%) + + + +epoll_ctl (6 samples, 0.46%) + + + +org/vertx/java/core/http/impl/AssembledFullHttpResponse:.toLastContent (1 samples, 0.08%) + + + +org/mozilla/javascript/NativeJavaObject:.get (1 samples, 0.08%) + + + +lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + +intel_idle (3 samples, 0.23%) + + + +ip_local_deliver (31 samples, 2.36%) +i.. + + +org/mozilla/javascript/IdScriptableObject:.put (23 samples, 1.75%) + + + +io/netty/handler/codec/ByteToMessageDecoder:.channelReadComplete (242 samples, 18.40%) +io/netty/handler/codec/ByteT.. + + +tcp_event_data_recv (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptableObject:.getTopScopeValue (1 samples, 0.08%) + + + +tcp_rearm_rto (3 samples, 0.23%) + + + +org/mozilla/javascript/NativeCall:.init (48 samples, 3.65%) +org/.. + + +tick_nohz_idle_enter (5 samples, 0.38%) + + + +system_call_fastpath (4 samples, 0.30%) + + + +system_call (1 samples, 0.08%) + + + +tick_nohz_idle_enter (6 samples, 0.46%) + + + +tick_program_event (1 samples, 0.08%) + + + +org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + +remote_function (4 samples, 0.30%) + + + +tcp_clean_rtx_queue (1 samples, 0.08%) + + + +tick_nohz_idle_exit (7 samples, 0.53%) + + + +org/mozilla/javascript/IdScriptableObject:.put (9 samples, 0.68%) + + + +fsnotify (1 samples, 0.08%) + + + +pick_next_task_fair (2 samples, 0.15%) + + + +do_sync_write (82 samples, 6.24%) +do_sync_.. + + +sys_write (195 samples, 14.83%) +sys_write + + +common_file_perm (1 samples, 0.08%) + + + +account_process_tick (1 samples, 0.08%) + + +