diff --git a/CHANGELOG.md b/CHANGELOG.md index f3c17150..0cb67437 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Removed +## [0.10.3] - 2021-01-08 +### Added + - Support jit annotations in collapse-perf for runtimes using the jitdump format. [#202](https://github.com/jonhoo/inferno/pull/202) + +### Changed + - Decreased default minimum width from 0.1% to 0.01%. [#204](https://github.com/jonhoo/inferno/pull/204) + - Detect if STDOUT is a TTY and if it's not, use a `BufWriter` to avoid line buffering. [#206](https://github.com/jonhoo/inferno/pull/206) + ## [0.10.2] - 2020-11-30 ### Changed - Support for invalid utf8 data in collapse. [#196](https://github.com/jonhoo/inferno/pull/196) @@ -136,7 +144,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Moved to `IndexMap` and FNV hashing ([#127](https://github.com/jonhoo/inferno/pull/127)) - Moved CI to Azure DevOps Pipelines -[Unreleased]: https://github.com/jonhoo/inferno/compare/v0.10.2...HEAD +[Unreleased]: https://github.com/jonhoo/inferno/compare/v0.10.3...HEAD +[0.10.3]: https://github.com/jonhoo/inferno/compare/v0.10.2...v0.10.3 [0.10.2]: https://github.com/jonhoo/inferno/compare/v0.10.1...v0.10.2 [0.10.1]: https://github.com/jonhoo/inferno/compare/v0.10.0...v0.10.1 [0.10.0]: https://github.com/jonhoo/inferno/compare/v0.9.9...v0.10.0 diff --git a/Cargo.toml b/Cargo.toml index c822b799..097fe7da 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "inferno" -version = "0.10.2" +version = "0.10.3" edition = "2018" authors = ["Jon Gjengset "] @@ -28,6 +28,7 @@ nameattr = ["indexmap"] [dependencies] ahash = "0.6" +atty = "0.2" crossbeam-utils = { version = "0.8", optional = true } crossbeam-channel = { version = "0.5", optional = true } dashmap = { version = "3", optional = true } diff --git a/src/bin/collapse-dtrace.rs b/src/bin/collapse-dtrace.rs index 76493ee2..e117b876 100644 --- a/src/bin/collapse-dtrace.rs +++ b/src/bin/collapse-dtrace.rs @@ -83,5 +83,5 @@ fn main() -> io::Result<()> { } let (infile, options) = opt.into_parts(); - Folder::from(options).collapse_file(infile.as_ref(), io::stdout().lock()) + Folder::from(options).collapse_file_to_stdout(infile.as_ref()) } diff --git a/src/bin/collapse-guess.rs b/src/bin/collapse-guess.rs index 889d2690..eea44d89 100644 --- a/src/bin/collapse-guess.rs +++ b/src/bin/collapse-guess.rs @@ -75,5 +75,5 @@ fn main() -> io::Result<()> { } let (infile, options) = opt.into_parts(); - Folder::from(options).collapse_file(infile.as_ref(), io::stdout().lock()) + Folder::from(options).collapse_file_to_stdout(infile.as_ref()) } diff --git a/src/bin/collapse-perf.rs b/src/bin/collapse-perf.rs index 41b9d2c2..ac36bbff 100644 --- a/src/bin/collapse-perf.rs +++ b/src/bin/collapse-perf.rs @@ -112,5 +112,5 @@ fn main() -> io::Result<()> { } let (infile, options) = opt.into_parts(); - Folder::from(options).collapse_file(infile.as_ref(), io::stdout().lock()) + Folder::from(options).collapse_file_to_stdout(infile.as_ref()) } diff --git a/src/bin/collapse-sample.rs b/src/bin/collapse-sample.rs index 41c941b6..fcb45017 100644 --- a/src/bin/collapse-sample.rs +++ b/src/bin/collapse-sample.rs @@ -62,5 +62,5 @@ fn main() -> io::Result<()> { } let (infile, options) = opt.into_parts(); - Folder::from(options).collapse_file(infile.as_ref(), io::stdout().lock()) + Folder::from(options).collapse_file_to_stdout(infile.as_ref()) } diff --git a/src/bin/collapse-vtune.rs b/src/bin/collapse-vtune.rs index 629b5651..55973f06 100644 --- a/src/bin/collapse-vtune.rs +++ b/src/bin/collapse-vtune.rs @@ -64,5 +64,5 @@ fn main() -> io::Result<()> { } let (infile, options) = opt.into_parts(); - Folder::from(options).collapse_file(infile.as_ref(), io::stdout().lock()) + Folder::from(options).collapse_file_to_stdout(infile.as_ref()) } diff --git a/src/bin/diff-folded.rs b/src/bin/diff-folded.rs index ba811d0b..38762bc3 100644 --- a/src/bin/diff-folded.rs +++ b/src/bin/diff-folded.rs @@ -87,5 +87,15 @@ fn main() -> io::Result<()> { } let (folded1, folded2, options) = opt.into_parts(); - differential::from_files(options, folded1, folded2, io::stdout().lock()) + + if atty::is(atty::Stream::Stdout) { + differential::from_files(options, folded1, folded2, io::stdout().lock()) + } else { + differential::from_files( + options, + folded1, + folded2, + io::BufWriter::new(io::stdout().lock()), + ) + } } diff --git a/src/bin/flamegraph.rs b/src/bin/flamegraph.rs index 806875d1..2810f919 100644 --- a/src/bin/flamegraph.rs +++ b/src/bin/flamegraph.rs @@ -139,7 +139,7 @@ struct Opt { )] height: usize, - /// Omit functions smaller than pixels + /// Omit functions smaller than percent #[structopt( long = "minwidth", default_value = &defaults::str::MIN_WIDTH, @@ -297,9 +297,19 @@ fn main() -> quick_xml::Result<()> { }; let (infiles, mut options) = opt.into_parts(); + options.palette_map = palette_map.as_mut(); - flamegraph::from_files(&mut options, &infiles, io::stdout().lock())?; + if atty::is(atty::Stream::Stdout) { + flamegraph::from_files(&mut options, &infiles, io::stdout().lock())?; + } else { + flamegraph::from_files( + &mut options, + &infiles, + io::BufWriter::new(io::stdout().lock()), + )?; + } + save_consistent_palette_if_needed(&palette_map, PALETTE_MAP_FILE).map_err(quick_xml::Error::Io) } diff --git a/src/collapse/common.rs b/src/collapse/common.rs index c632e666..eaa6f4f9 100644 --- a/src/collapse/common.rs +++ b/src/collapse/common.rs @@ -465,6 +465,7 @@ impl Occurrences { } } } + writer.flush()?; Ok(()) } } @@ -510,7 +511,7 @@ pub(crate) fn fix_partially_demangled_rust_symbol(symbol: &str) -> Cow { demangled.push_str("::"); rest = &rest[2..]; } else { - demangled.push_str("."); + demangled.push('.'); rest = &rest[1..]; } } else if rest.starts_with('$') { diff --git a/src/collapse/guess.rs b/src/collapse/guess.rs index 10cf6838..c28526e9 100644 --- a/src/collapse/guess.rs +++ b/src/collapse/guess.rs @@ -54,13 +54,17 @@ impl Collapse for Folder { W: io::Write, { let mut dtrace = { - let mut options = dtrace::Options::default(); - options.nthreads = self.opt.nthreads; + let options = dtrace::Options { + nthreads: self.opt.nthreads, + ..Default::default() + }; dtrace::Folder::from(options) }; let mut perf = { - let mut options = perf::Options::default(); - options.nthreads = self.opt.nthreads; + let options = perf::Options { + nthreads: self.opt.nthreads, + ..Default::default() + }; perf::Folder::from(options) }; let mut sample = sample::Folder::default(); diff --git a/src/collapse/matcher.rs b/src/collapse/matcher.rs index 031e60c3..5bdf0978 100644 --- a/src/collapse/matcher.rs +++ b/src/collapse/matcher.rs @@ -9,13 +9,9 @@ #[inline] pub fn is_vmlinux(s: &str) -> bool { if let Some(vm) = s.rfind("vmlinux") { - s[vm..].chars().all(|c| { - c.is_ascii_alphanumeric() - || match c { - '-' | '.' | '_' => true, - _ => false, - } - }) + s[vm..] + .chars() + .all(|c| c.is_ascii_alphanumeric() || matches!(c, '-' | '.' | '_')) } else { false } diff --git a/src/collapse/mod.rs b/src/collapse/mod.rs index d0e8a4eb..57d065fa 100644 --- a/src/collapse/mod.rs +++ b/src/collapse/mod.rs @@ -79,14 +79,27 @@ pub trait Collapse { self.collapse(reader, writer) } None => { - let stdio = io::stdin(); - let stdio_guard = stdio.lock(); - let reader = io::BufReader::with_capacity(CAPACITY_READER, stdio_guard); + let stdin = io::stdin(); + let stdin_guard = stdin.lock(); + let reader = io::BufReader::with_capacity(CAPACITY_READER, stdin_guard); self.collapse(reader, writer) } } } + /// Collapses the contents of the provided file (or of STDIN if `infile` is `None`) and + /// writes folded stack lines to STDOUT. + fn collapse_file_to_stdout

(&mut self, infile: Option

) -> io::Result<()> + where + P: AsRef, + { + if atty::is(atty::Stream::Stdout) { + self.collapse_file(infile, io::stdout().lock()) + } else { + self.collapse_file(infile, io::BufWriter::new(io::stdout().lock())) + } + } + /// Returns whether this implementation is appropriate for the given input. /// /// - `None` means "not sure -- need more input" diff --git a/src/collapse/perf.rs b/src/collapse/perf.rs index 959b4fcb..d6cf0889 100644 --- a/src/collapse/perf.rs +++ b/src/collapse/perf.rs @@ -409,12 +409,12 @@ impl Folder { // XXX: re-use existing memory in pname if possible self.pname = comm.replace(' ', "_"); if self.opt.include_tid { - self.pname.push_str("-"); + self.pname.push('-'); self.pname.push_str(pid); - self.pname.push_str("/"); + self.pname.push('/'); self.pname.push_str(tid); } else if self.opt.include_pid { - self.pname.push_str("-"); + self.pname.push('-'); self.pname.push_str(pid); } @@ -519,8 +519,8 @@ impl Folder { } else if self.opt.annotate_kernel && is_kernel(module) { func.push_str("_[k]"); // kernel } else if self.opt.annotate_jit - && module.starts_with("/tmp/perf-") - && module.ends_with(".map") + && ((module.starts_with("/tmp/perf-") && module.ends_with(".map")) + || (module.contains("/jitted-") && module.ends_with(".so"))) { func.push_str("_[j]"); // jitted } @@ -548,7 +548,7 @@ impl Folder { stack_str.push_str(&self.pname); // add the other stack entries (if any) for e in self.stack.drain(..) { - stack_str.push_str(";"); + stack_str.push(';'); stack_str.push_str(&e); } @@ -587,15 +587,15 @@ fn with_module_fallback(module: &str, func: &str, pc: &str, include_addrs: bool) let mut res = String::with_capacity(func.len() + 12); if include_addrs { - res.push_str("["); + res.push('['); res.push_str(func); res.push_str(" <"); res.push_str(pc); res.push_str(">]"); } else { - res.push_str("["); + res.push('['); res.push_str(func); - res.push_str("]"); + res.push(']'); } res diff --git a/src/flamegraph/color/mod.rs b/src/flamegraph/color/mod.rs index e4d40440..540285b1 100644 --- a/src/flamegraph/color/mod.rs +++ b/src/flamegraph/color/mod.rs @@ -351,16 +351,16 @@ pub(super) fn color( let mut hash: u64 = 0xcbf29ce484222325; // https://github.com/servo/rust-fnv/blob/4b4784ebfd3332dc61f0640764d6f1140e03a9ab/lib.rs#L118-L121 for byte in name.as_bytes() { - hash = hash ^ (*byte as u64); + hash ^= *byte as u64; hash = hash.wrapping_mul(0x100000001b3); } let hash1 = (hash as f64 / std::u64::MAX as f64) as f32; // Rotate hash so we get two more distinct numbers - hash = hash ^ 0; + hash ^= 0; hash = hash.wrapping_mul(0x100000001b3); let hash2 = (hash as f64 / std::u64::MAX as f64) as f32; - hash = hash ^ 0; + hash ^= 0; hash = hash.wrapping_mul(0x100000001b3); let hash3 = (hash as f64 / std::u64::MAX as f64) as f32; diff --git a/src/flamegraph/color/palettes.rs b/src/flamegraph/color/palettes.rs index 2d28dffb..ecafebeb 100644 --- a/src/flamegraph/color/palettes.rs +++ b/src/flamegraph/color/palettes.rs @@ -51,8 +51,8 @@ pub(super) mod java { if name.contains("::") || name.starts_with("-[") || name.starts_with("+[") { // C++ or Objective C BasicPalette::Yellow - } else if java_prefix.contains("/") - || (java_prefix.contains(".") && !java_prefix.starts_with("[")) + } else if java_prefix.contains('/') + || (java_prefix.contains('.') && !java_prefix.starts_with('[')) || match java_prefix.chars().next() { Some(c) => c.is_ascii_uppercase(), _ => false, diff --git a/src/flamegraph/mod.rs b/src/flamegraph/mod.rs index c4650428..97299974 100644 --- a/src/flamegraph/mod.rs +++ b/src/flamegraph/mod.rs @@ -80,7 +80,7 @@ pub mod defaults { TITLE: &str = "Flame Graph", CHART_TITLE: &str = "Flame Chart", FRAME_HEIGHT: usize = 16, - MIN_WIDTH: f64 = 0.1, + MIN_WIDTH: f64 = 0.01, FONT_TYPE: &str = "Verdana", FONT_SIZE: usize = 12, FONT_WIDTH: f64 = 0.59, @@ -693,6 +693,7 @@ where svg.write_event(Event::End(BytesEnd::borrowed(b"svg")))?; svg.write_event(Event::Eof)?; + svg.into_inner().flush()?; Ok(()) } diff --git a/tests/collapse-perf.rs b/tests/collapse-perf.rs index 4841b077..8426e9e3 100644 --- a/tests/collapse-perf.rs +++ b/tests/collapse-perf.rs @@ -233,7 +233,8 @@ collapse_perf_tests! { collapse_perf_single_event, collapse_perf_go_stacks, collapse_perf_java_inline, - collapse_perf_versioned_vmlinux__kernel + collapse_perf_versioned_vmlinux__kernel, + collapse_perf_sourcepawn_jitdump__jit } #[test] diff --git a/tests/data/collapse-perf/results/sourcepawn-jitdump-collapsed-jit.txt b/tests/data/collapse-perf/results/sourcepawn-jitdump-collapsed-jit.txt new file mode 100644 index 00000000..d4eecd98 --- /dev/null +++ b/tests/data/collapse-perf/results/sourcepawn-jitdump-collapsed-jit.txt @@ -0,0 +1 @@ +spshell;__libc_start_main;main;Execute;sp::ScriptedInvoker::Invoke;sp::PluginContext::Invoke;sp::Environment::Invoke;_[j];fib.smx::main_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j];fib.smx::fib_[j] 1 diff --git a/tests/data/collapse-perf/sourcepawn-jitdump.txt b/tests/data/collapse-perf/sourcepawn-jitdump.txt new file mode 100644 index 00000000..383a63c2 --- /dev/null +++ b/tests/data/collapse-perf/sourcepawn-jitdump.txt @@ -0,0 +1,36 @@ +spshell 31714 451945.594655: 22145531 cycles: + f719f4a4 fib.smx::fib+0x3c (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f50b fib.smx::fib+0xa3 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f54c fib.smx::fib+0xe4 (/tmp/jitted-31714-4145673320.so) + f719f119 fib.smx::main+0x91 (/tmp/jitted-31714-4145672328.so) + f719f06f +0x27 (/tmp/jitted-31714-4145672264.so) + 8059187 sp::Environment::Invoke+0x307 (/root/code/sourcepawn/build/vm/spshell/linux-x86/spshell) + 806d5d8 sp::PluginContext::Invoke+0x378 (/root/code/sourcepawn/build/vm/spshell/linux-x86/spshell) + 8078bcc sp::ScriptedInvoker::Invoke+0x60c (/root/code/sourcepawn/build/vm/spshell/linux-x86/spshell) + 804b413 Execute+0x3d3 (/root/code/sourcepawn/build/vm/spshell/linux-x86/spshell) + 804ae7e main+0x61e (/root/code/sourcepawn/build/vm/spshell/linux-x86/spshell) + f7abc8e9 __libc_start_main+0xf9 (/usr/lib/libc-2.29.so) + diff --git a/tests/data/flamegraph/example-perf-stacks/example-perf-stacks.svg b/tests/data/flamegraph/example-perf-stacks/example-perf-stacks.svg index 9f37c90b..86cbb7b9 100644 --- a/tests/data/flamegraph/example-perf-stacks/example-perf-stacks.svg +++ b/tests/data/flamegraph/example-perf-stacks/example-perf-stacks.svg @@ -35,6 +35,56 @@ var truncate_text_right = false;]]> Search + + gmain (1 samples, 0.08%) + + + + + [unknown] (1 samples, 0.08%) + + + + + inotify_add_watch (1 samples, 0.08%) + + + + + system_call_fastpath (1 samples, 0.08%) + + + + + sys_inotify_add_watch (1 samples, 0.08%) + + + + + user_path_at (1 samples, 0.08%) + + + + + user_path_at_empty (1 samples, 0.08%) + + + + + filename_lookup (1 samples, 0.08%) + + + + + link_path_walk (1 samples, 0.08%) + + + + + system_call (1 samples, 0.08%) + + + [libpthread-2.19.so] (7 samples, 0.53%) @@ -60,6 +110,36 @@ var truncate_text_right = false;]]> + + 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%) + + + + + GCTaskManager::get_task (1 samples, 0.08%) + + + + + Monitor::wait (1 samples, 0.08%) + + + + + Monitor::IWait (1 samples, 0.08%) + + + + + __lll_unlock_wake (1 samples, 0.08%) + + + + + sys_futex (1 samples, 0.08%) + + + InstanceKlass::oop_push_contents (8 samples, 0.61%) @@ -90,6 +170,21 @@ var truncate_text_right = false;]]> + + ScavengeRootsTask::do_it (1 samples, 0.08%) + + + + + ClassLoaderDataGraph::oops_do (1 samples, 0.08%) + + + + + PSScavengeKlassClosure::do_klass (1 samples, 0.08%) + + + ParallelTaskTerminator::offer_termination (2 samples, 0.15%) @@ -100,6 +195,41 @@ var truncate_text_right = false;]]> + + SpinPause (1 samples, 0.08%) + + + + + HandleArea::oops_do (1 samples, 0.08%) + + + + + frame::oops_do_internal (1 samples, 0.08%) + + + + + OopMapSet::all_do (1 samples, 0.08%) + + + + + PSRootsClosure<false>::do_oop (1 samples, 0.08%) + + + + + oopDesc* PSPromotionManager::copy_to_survivor_space<false> (1 samples, 0.08%) + + + + + InstanceKlass::oop_push_contents (1 samples, 0.08%) + + + GCTaskThread::run (28 samples, 2.13%) @@ -115,6 +245,16 @@ var truncate_text_right = false;]]> + + nmethod::fix_oop_relocations (1 samples, 0.08%) + + + + + io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (1 samples, 0.08%) + + + io/netty/channel/AdaptiveRecvByteBufAllocator$HandleImpl:.record (2 samples, 0.15%) @@ -130,11 +270,26 @@ var truncate_text_right = false;]]> + + java/nio/DirectByteBuffer:.duplicate (1 samples, 0.08%) + + + + + java/nio/channels/spi/AbstractInterruptibleChannel:.begin (1 samples, 0.08%) + + + java/nio/channels/spi/AbstractInterruptibleChannel:.end (3 samples, 0.23%) + + sun/nio/ch/FileDispatcherImpl:.read0 (1 samples, 0.08%) + + + fget_light (3 samples, 0.23%) @@ -145,11 +300,36 @@ var truncate_text_right = false;]]> + + lock_sock_nested (1 samples, 0.08%) + + + tcp_rcv_space_adjust (2 samples, 0.15%) + + lock_sock_nested (1 samples, 0.08%) + + + + + _raw_spin_lock_bh (1 samples, 0.08%) + + + + + release_sock (1 samples, 0.08%) + + + + + _raw_spin_unlock_bh (1 samples, 0.08%) + + + skb_copy_datagram_iovec (3 samples, 0.23%) @@ -190,6 +370,21 @@ var truncate_text_right = false;]]> + + apparmor_file_permission (1 samples, 0.08%) + + + + + common_file_perm (1 samples, 0.08%) + + + + + aa_file_perm (1 samples, 0.08%) + + + rw_verify_area (2 samples, 0.15%) @@ -200,6 +395,11 @@ var truncate_text_right = false;]]> + + fsnotify (1 samples, 0.08%) + + + [libpthread-2.19.so] (30 samples, 2.28%) @@ -220,6 +420,11 @@ var truncate_text_right = false;]]> v.. + + security_file_permission (1 samples, 0.08%) + + + sun/nio/ch/IOUtil:.readIntoNativeBuffer (31 samples, 2.36%) @@ -230,6 +435,11 @@ var truncate_text_right = false;]]> s.. + + fdval (1 samples, 0.08%) + + + io/netty/buffer/PooledUnsafeDirectByteBuf:.setBytes (42 samples, 3.19%) @@ -240,6 +450,16 @@ var truncate_text_right = false;]]> sun.. + + sun/nio/ch/NativeThread:.current (1 samples, 0.08%) + + + + + io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + io/netty/buffer/AbstractReferenceCountedByteBuf:.release (4 samples, 0.30%) @@ -255,11 +475,26 @@ var truncate_text_right = false;]]> + + io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + + + io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + io/netty/channel/AbstractChannel:.hashCode (4 samples, 0.30%) + + io/netty/handler/codec/http/HttpVersion:.compareTo (1 samples, 0.08%) + + + java/util/concurrent/ConcurrentHashMap:.get (3 samples, 0.23%) @@ -270,11 +505,56 @@ var truncate_text_right = false;]]> + + io/netty/handler/codec/http/DefaultHttpHeaders:.<init> (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpVersion:.compareTo (2 samples, 0.15%) + + java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/WrapFactory:.wrap (1 samples, 0.08%) + + + + + java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getTopLevelScope (1 samples, 0.08%) + + + + + itable stub (1 samples, 0.08%) + + + + + java/util/HashMap:.getNode (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getParentScope (1 samples, 0.08%) + + + org/mozilla/javascript/WrapFactory:.wrap (5 samples, 0.38%) @@ -285,11 +565,61 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getTopScopeValue (1 samples, 0.08%) + + + + + org/mozilla/javascript/WrapFactory:.wrapAsJavaObject (1 samples, 0.08%) + + + + + org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + + + itable stub (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.get (2 samples, 0.15%) + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject$Slot:.getValue (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptableObject:.getSlot (2 samples, 0.15%) @@ -310,6 +640,26 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + + + itable stub (1 samples, 0.08%) + + + + + io/netty/buffer/AbstractByteBuf:.writeBytes (1 samples, 0.08%) + + + + + io/netty/buffer/AbstractByteBufAllocator:.heapBuffer (1 samples, 0.08%) + + + org/mozilla/javascript/NativeJavaMethod:.findCachedFunction (2 samples, 0.15%) @@ -320,6 +670,11 @@ var truncate_text_right = false;]]> + + io/netty/buffer/AbstractByteBuf:.checkSrcIndex (1 samples, 0.08%) + + + io/netty/buffer/AbstractByteBuf:.writeBytes (5 samples, 0.38%) @@ -340,21 +695,76 @@ var truncate_text_right = false;]]> + + io/netty/buffer/UnpooledHeapByteBuf:.<init> (1 samples, 0.08%) + + + + + io/netty/buffer/UnpooledHeapByteBuf:.<init> (1 samples, 0.08%) + + + + + io/netty/buffer/UnreleasableByteBuf:.duplicate (1 samples, 0.08%) + + + + + io/netty/channel/AbstractChannelHandlerContext:.newPromise (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.write (2 samples, 0.15%) + + io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (1 samples, 0.08%) + + + io/netty/handler/codec/http/DefaultHttpHeaders:.set (3 samples, 0.23%) + + io/netty/handler/codec/http/HttpHeaders:.hash (1 samples, 0.08%) + + + + + java/lang/Integer:.toString (1 samples, 0.08%) + + + + + java/util/Arrays:.copyOf (1 samples, 0.08%) + + + + + jlong_disjoint_arraycopy (1 samples, 0.08%) + + + java/nio/charset/CharsetEncoder:.replaceWith (2 samples, 0.15%) + + jlong_disjoint_arraycopy (1 samples, 0.08%) + + + java/lang/String:.getBytes (3 samples, 0.23%) @@ -365,16 +775,46 @@ var truncate_text_right = false;]]> + + java/util/Arrays:.copyOf (1 samples, 0.08%) + + + java/nio/charset/Charset:.lookup (2 samples, 0.15%) + + org/vertx/java/core/http/impl/AssembledFullHttpResponse:.toLastContent (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/DefaultHttpHeaders:.<init> (1 samples, 0.08%) + + + + + io/netty/channel/AbstractChannelHandlerContext:.newPromise (1 samples, 0.08%) + + + + + io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.validatePromise (2 samples, 0.15%) + + io/netty/buffer/AbstractByteBuf:.writeBytes (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.write (6 samples, 0.46%) @@ -385,6 +825,21 @@ var truncate_text_right = false;]]> + + io/netty/channel/ChannelOutboundBuffer:.incrementPendingOutboundBytes (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/DefaultHttpHeaders:.contains (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/HttpHeaders:.encode (1 samples, 0.08%) + + + io/netty/buffer/AbstractByteBuf:.writeBytes (3 samples, 0.23%) @@ -395,6 +850,11 @@ var truncate_text_right = false;]]> + + java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + io/netty/buffer/AbstractByteBuf:.writeBytes (4 samples, 0.30%) @@ -425,16 +885,56 @@ var truncate_text_right = false;]]> + + unsafe_arraycopy (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/HttpResponseEncoder:.acceptOutboundMessage (1 samples, 0.08%) + + + + + io/netty/util/Recycler:.get (1 samples, 0.08%) + + + + + java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + + + io/netty/util/Recycler:.recycle (1 samples, 0.08%) + + + io/netty/handler/codec/MessageToMessageEncoder:.write (31 samples, 2.36%) i.. + + java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/HttpObjectEncoder:.encode (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.write (33 samples, 2.51%) io.. + + io/netty/util/Recycler:.get (1 samples, 0.08%) + + + org/mozilla/javascript/NativeJavaMethod:.call (74 samples, 5.63%) @@ -460,6 +960,21 @@ var truncate_text_right = false;]]> or.. + + io/netty/handler/codec/MessageToMessageEncoder:.write (1 samples, 0.08%) + + + + + org/mozilla/javascript/NativeJavaMethod:.findCachedFunction (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + org/mozilla/javascript/gen/file__root_vert_x_2_1_5_Server2_js_1:.call (79 samples, 6.01%) @@ -470,11 +985,61 @@ var truncate_text_right = false;]]> org/moz.. + + org/mozilla/javascript/ScriptRuntime:.nameOrFunction (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + + + org/mozilla/javascript/BaseFunction:.construct (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptRuntime:.bind (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptRuntime:.getObjectProp (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.setObjectProp (3 samples, 0.23%) + + itable stub (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.put (7 samples, 0.53%) @@ -510,6 +1075,16 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.nameOrFunction (4 samples, 0.30%) @@ -525,6 +1100,21 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.has (12 samples, 0.91%) @@ -555,11 +1145,21 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.putImpl (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.setObjectProp (28 samples, 2.13%) o.. + + vtable stub (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (2 samples, 0.15%) @@ -570,6 +1170,11 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + org/mozilla/javascript/BaseFunction:.execIdCall (60 samples, 4.56%) @@ -580,6 +1185,21 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getParentScope (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.put (9 samples, 0.68%) @@ -610,16 +1230,61 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + org/mozilla/javascript/NativeCall:.<init> (20 samples, 1.52%) + + org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptRuntime:.bind (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getBase (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + + + org/mozilla/javascript/BaseFunction:.findInstanceIdInfo (1 samples, 0.08%) + + + org/mozilla/javascript/BaseFunction:.findInstanceIdInfo (4 samples, 0.30%) + + org/mozilla/javascript/BaseFunction:.findPrototypeId (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (9 samples, 0.68%) @@ -630,16 +1295,56 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/IdScriptableObject$PrototypeValues:.ensureId (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject$RelinkedSlot:.getValue (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.nameOrFunction (3 samples, 0.23%) + + org/mozilla/javascript/ScriptableObject$Slot:.getValue (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.setName (2 samples, 0.15%) + + org/mozilla/javascript/IdScriptableObject:.put (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.putImpl (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.has (7 samples, 0.53%) @@ -650,6 +1355,21 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.put (25 samples, 1.90%) @@ -670,11 +1390,26 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.setObjectProp (37 samples, 2.81%) or.. + + vtable stub (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + org/mozilla/javascript/NativeFunction:.initScriptFunction (6 samples, 0.46%) @@ -715,11 +1450,41 @@ var truncate_text_right = false;]]> org/mozilla/javas.. + + 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%) + + + + + itable stub (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.get (2 samples, 0.15%) + + org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.has (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.put (6 samples, 0.46%) @@ -750,11 +1515,46 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + org/mozilla/javascript/NativeCall:.<init> (16 samples, 1.22%) + + org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + + + org/mozilla/javascript/NativeFunction:.initScriptFunction (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptRuntime:.nameOrFunction (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.has (9 samples, 0.68%) @@ -765,6 +1565,21 @@ var truncate_text_right = false;]]> + + java/lang/String:.hashCode (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.put (11 samples, 0.84%) @@ -790,21 +1605,46 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + org/mozilla/javascript/BaseFunction:.execIdCall (48 samples, 3.65%) org/.. + + 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/NativeFunction:.initScriptFunction (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.has (3 samples, 0.23%) + + org/mozilla/javascript/IdScriptableObject:.setAttributes (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.get (3 samples, 0.23%) + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.has (4 samples, 0.30%) @@ -815,6 +1655,16 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.put (23 samples, 1.75%) @@ -835,6 +1685,11 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.setAttributes (12 samples, 0.91%) @@ -845,16 +1700,31 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + org/mozilla/javascript/NativeCall:.<init> (48 samples, 3.65%) org/.. + + org/mozilla/javascript/TopLevel:.getBuiltinPrototype (1 samples, 0.08%) + + + org/mozilla/javascript/NativeJavaMethod:.findFunction (2 samples, 0.15%) + + org/mozilla/javascript/NativeJavaObject:.initMembers (1 samples, 0.08%) + + + org/mozilla/javascript/NativeJavaMethod:.call (10 samples, 0.76%) @@ -880,11 +1750,26 @@ var truncate_text_right = false;]]> + + itable stub (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.has (3 samples, 0.23%) + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.bind (7 samples, 0.53%) @@ -895,6 +1780,26 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.getObjectProp (4 samples, 0.30%) @@ -905,11 +1810,46 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/IdScriptableObject:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/BaseFunction:.findPrototypeId (1 samples, 0.08%) + + + + + org/mozilla/javascript/NativeJavaObject:.get (1 samples, 0.08%) + + + + + org/mozilla/javascript/JavaMembers:.get (1 samples, 0.08%) + + + + + java/util/HashMap:.getNode (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.getPropFunctionAndThisHelper (5 samples, 0.38%) + + vtable stub (1 samples, 0.08%) + + + + + java/lang/String:.hashCode (1 samples, 0.08%) + + + org/mozilla/javascript/ScriptRuntime:.nameOrFunction (5 samples, 0.38%) @@ -955,6 +1895,11 @@ var truncate_text_right = false;]]> + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.findInstanceIdInfo (2 samples, 0.15%) @@ -970,11 +1915,21 @@ var truncate_text_right = false;]]> + + java/lang/String:.hashCode (1 samples, 0.08%) + + + java/lang/String:.hashCode (2 samples, 0.15%) + + org/mozilla/javascript/ScriptableObject:.addKnownAbsentSlot (1 samples, 0.08%) + + + org/mozilla/javascript/IdScriptableObject:.put (47 samples, 3.57%) @@ -1005,6 +1960,21 @@ var truncate_text_right = false;]]> org/mozil.. + + org/mozilla/javascript/ScriptableObject:.getSlot (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptRuntime:.toObjectOrNull (1 samples, 0.08%) + + + + + org/mozilla/javascript/ScriptableObject:.getPrototype (1 samples, 0.08%) + + + org/mozilla/javascript/NativeFunction:.initScriptFunction (10 samples, 0.76%) @@ -1040,6 +2010,11 @@ var truncate_text_right = false;]]> org/mozilla/javascript/gen/file__root_vert_x_2_1_5.. + + 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/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%) @@ -1050,16 +2025,41 @@ var truncate_text_right = false;]]> org/mozilla/javascript/gen/file__root_vert_x_2_1_5_sys_mods_io_.. + + vtable stub (1 samples, 0.08%) + + + org/vertx/java/core/http/impl/ServerConnection:.handleRequest (526 samples, 40.00%) org/vertx/java/core/http/impl/ServerConnection:.handleRequest + + org/vertx/java/platform/impl/RhinoContextFactory:.onContextCreated (1 samples, 0.08%) + + + + + org/mozilla/javascript/WrapFactory:.setJavaPrimitiveWrap (1 samples, 0.08%) + + + + + java/lang/ThreadLocal:.get (1 samples, 0.08%) + + + org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMessageReceived (540 samples, 41.06%) org/vertx/java/core/http/impl/DefaultHttpServer$ServerHandler:.doMe.. + + org/vertx/java/core/impl/DefaultVertx:.setContext (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead (562 samples, 42.74%) @@ -1070,6 +2070,11 @@ var truncate_text_right = false;]]> org/vertx/java/core/net/impl/VertxHandler:.channelRead + + org/vertx/java/core/impl/DefaultVertx:.setContext (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpMethod:.valueOf (2 samples, 0.15%) @@ -1080,6 +2085,11 @@ var truncate_text_right = false;]]> + + io/netty/handler/codec/http/DefaultHttpHeaders:.<init> (1 samples, 0.08%) + + + io/netty/handler/codec/http/DefaultHttpHeaders:.add0 (3 samples, 0.23%) @@ -1090,6 +2100,11 @@ var truncate_text_right = false;]]> + + io/netty/handler/codec/http/DefaultHttpHeaders:.<init> (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpHeaders:.hash (4 samples, 0.30%) @@ -1105,6 +2120,11 @@ var truncate_text_right = false;]]> + + java/lang/String:.equals (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpObjectDecoder$LineParser:.parse (6 samples, 0.46%) @@ -1125,11 +2145,31 @@ var truncate_text_right = false;]]> + + io/netty/handler/codec/http/DefaultHttpHeaders:.contains (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/HttpHeaders:.hash (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpHeaders:.hash (2 samples, 0.15%) + + io/netty/handler/codec/http/HttpObjectDecoder$HeaderParser:.process (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/HttpObjectDecoder:.findNonWhitespace (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders (22 samples, 1.67%) @@ -1155,31 +2195,76 @@ var truncate_text_right = false;]]> + + io/netty/buffer/AbstractByteBuf:.getByte (1 samples, 0.08%) + + + + + io/netty/handler/codec/http/HttpObjectDecoder:.findWhitespace (1 samples, 0.08%) + + + io/netty/util/internal/AppendableCharSequence:.substring (2 samples, 0.15%) + + java/lang/String:.<init> (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpObjectDecoder:.splitInitialLine (5 samples, 0.38%) + + java/lang/String:.<init> (1 samples, 0.08%) + + + io/netty/util/internal/AppendableCharSequence:.substring (2 samples, 0.15%) + + java/lang/String:.hashCode (1 samples, 0.08%) + + + + + java/lang/String:.trim (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpObjectDecoder:.decode (57 samples, 4.33%) io/ne.. + + java/util/ArrayList:.ensureCapacityInternal (1 samples, 0.08%) + + + io/netty/handler/codec/http/HttpObjectDecoder:.readHeaders (2 samples, 0.15%) + + io/netty/handler/codec/http/HttpObjectDecoder:.skipControlCharacters (1 samples, 0.08%) + + + + + io/netty/util/Recycler:.get (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.fireChannelRead (637 samples, 48.44%) @@ -1190,6 +2275,21 @@ var truncate_text_right = false;]]> io/netty/handler/codec/ByteToMessageDecoder:.channelRead + + itable stub (1 samples, 0.08%) + + + + + io/netty/channel/AbstractChannelHandlerContext:.flush (1 samples, 0.08%) + + + + + io/netty/channel/ChannelOutboundBuffer:.current (1 samples, 0.08%) + + + io/netty/channel/ChannelOutboundBuffer:.decrementPendingOutboundBytes (2 samples, 0.15%) @@ -1205,6 +2305,16 @@ var truncate_text_right = false;]]> + + io/netty/channel/ChannelOutboundBuffer:.decrementPendingOutboundBytes (1 samples, 0.08%) + + + + + io/netty/channel/ChannelOutboundBuffer:.progress (1 samples, 0.08%) + + + io/netty/channel/DefaultChannelPromise:.trySuccess (3 samples, 0.23%) @@ -1215,16 +2325,66 @@ var truncate_text_right = false;]]> + + java/nio/channels/spi/AbstractInterruptibleChannel:.begin (1 samples, 0.08%) + + + + + java/nio/channels/spi/AbstractInterruptibleChannel:.end (1 samples, 0.08%) + + + + + pthread_self (1 samples, 0.08%) + + + + + Java_sun_nio_ch_FileDispatcherImpl_write0 (1 samples, 0.08%) + + + + + fdval (1 samples, 0.08%) + + + + + fput (1 samples, 0.08%) + + + fget_light (2 samples, 0.15%) + + fput (1 samples, 0.08%) + + + + + __fsnotify_parent (1 samples, 0.08%) + + + __srcu_read_lock (2 samples, 0.15%) + + inet_sendmsg (1 samples, 0.08%) + + + + + apparmor_socket_sendmsg (1 samples, 0.08%) + + + call_function_single_interrupt (4 samples, 0.30%) @@ -1280,6 +2440,21 @@ var truncate_text_right = false;]]> + + msecs_to_jiffies (1 samples, 0.08%) + + + + + skb_push (1 samples, 0.08%) + + + + + _raw_spin_lock (1 samples, 0.08%) + + + tcp_event_new_data_sent (6 samples, 0.46%) @@ -1300,6 +2475,31 @@ var truncate_text_right = false;]]> + + _raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + + + tcp_init_tso_segs (1 samples, 0.08%) + + + + + tcp_set_skb_tso_segs (1 samples, 0.08%) + + + + + internal_add_timer (1 samples, 0.08%) + + + + + __internal_add_timer (1 samples, 0.08%) + + + tcp_schedule_loss_probe (3 samples, 0.23%) @@ -1315,11 +2515,41 @@ var truncate_text_right = false;]]> + + lock_timer_base.isra.35 (1 samples, 0.08%) + + + + + __dev_queue_xmit (1 samples, 0.08%) + + + + + eth_type_trans (1 samples, 0.08%) + + + + + _raw_spin_lock (1 samples, 0.08%) + + + netif_rx (2 samples, 0.15%) + + enqueue_to_backlog (1 samples, 0.08%) + + + + + _raw_spin_lock (1 samples, 0.08%) + + + loopback_xmit (5 samples, 0.38%) @@ -1330,6 +2560,11 @@ var truncate_text_right = false;]]> + + sock_wfree (1 samples, 0.08%) + + + __dev_queue_xmit (10 samples, 0.76%) @@ -1340,11 +2575,46 @@ var truncate_text_right = false;]]> + + netif_skb_dev_features (1 samples, 0.08%) + + + + + skb_network_protocol (1 samples, 0.08%) + + + dev_queue_xmit (11 samples, 0.84%) + + netdev_pick_tx (1 samples, 0.08%) + + + + + msecs_to_jiffies (1 samples, 0.08%) + + + + + ip_local_deliver (1 samples, 0.08%) + + + + + raw_local_deliver (1 samples, 0.08%) + + + + + sock_put (1 samples, 0.08%) + + + __inet_lookup_established (4 samples, 0.30%) @@ -1355,6 +2625,36 @@ var truncate_text_right = false;]]> + + inet_ehashfn (1 samples, 0.08%) + + + + + ipv4_dst_check (1 samples, 0.08%) + + + + + tcp_md5_do_lookup (1 samples, 0.08%) + + + + + tcp_check_space (1 samples, 0.08%) + + + + + _raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + + + detach_if_pending (1 samples, 0.08%) + + + __tcp_ack_snd_check (5 samples, 0.38%) @@ -1375,6 +2675,16 @@ var truncate_text_right = false;]]> + + internal_add_timer (1 samples, 0.08%) + + + + + dst_release (1 samples, 0.08%) + + + sock_def_readable (2 samples, 0.15%) @@ -1405,6 +2715,31 @@ var truncate_text_right = false;]]> + + skb_free_head (1 samples, 0.08%) + + + + + kfree (1 samples, 0.08%) + + + + + __slab_free (1 samples, 0.08%) + + + + + bictcp_acked (1 samples, 0.08%) + + + + + kfree_skbmem (1 samples, 0.08%) + + + tcp_ack (20 samples, 1.52%) @@ -1415,11 +2750,46 @@ var truncate_text_right = false;]]> + + ktime_get_real (1 samples, 0.08%) + + + + + getnstimeofday (1 samples, 0.08%) + + + + + __getnstimeofday (1 samples, 0.08%) + + + + + read_tsc (1 samples, 0.08%) + + + + + native_read_tsc (1 samples, 0.08%) + + + tcp_check_space (3 samples, 0.23%) + + tcp_clean_rtx_queue (1 samples, 0.08%) + + + + + _raw_spin_lock (1 samples, 0.08%) + + + _raw_spin_lock_irqsave (2 samples, 0.15%) @@ -1440,6 +2810,16 @@ var truncate_text_right = false;]]> + + account_entity_enqueue (1 samples, 0.08%) + + + + + update_cfs_rq_blocked_load (1 samples, 0.08%) + + + enqueue_task_fair (5 samples, 0.38%) @@ -1465,6 +2845,16 @@ var truncate_text_right = false;]]> + + update_rq_clock.part.63 (1 samples, 0.08%) + + + + + sched_clock_cpu (1 samples, 0.08%) + + + check_preempt_curr (2 samples, 0.15%) @@ -1485,11 +2875,21 @@ var truncate_text_right = false;]]> + + ttwu_do_wakeup (1 samples, 0.08%) + + + try_to_wake_up (24 samples, 1.83%) t.. + + ttwu_stat (1 samples, 0.08%) + + + __wake_up_locked (25 samples, 1.90%) @@ -1505,6 +2905,11 @@ var truncate_text_right = false;]]> d.. + + ttwu_do_activate.constprop.74 (1 samples, 0.08%) + + + __wake_up_sync_key (27 samples, 2.05%) @@ -1520,11 +2925,21 @@ var truncate_text_right = false;]]> e.. + + _raw_spin_lock_irqsave (1 samples, 0.08%) + + + sock_def_readable (32 samples, 2.43%) so.. + + _raw_spin_lock_irqsave (1 samples, 0.08%) + + + tcp_queue_rcv (2 samples, 0.15%) @@ -1575,6 +2990,11 @@ var truncate_text_right = false;]]> tcp_rcv.. + + tcp_urg (1 samples, 0.08%) + + + ip_queue_xmit (122 samples, 9.28%) @@ -1635,6 +3055,16 @@ var truncate_text_right = false;]]> __netif_re.. + + ip_rcv_finish (1 samples, 0.08%) + + + + + __getnstimeofday (1 samples, 0.08%) + + + ktime_get_real (3 samples, 0.23%) @@ -1660,6 +3090,11 @@ var truncate_text_right = false;]]> + + __copy_skb_header (1 samples, 0.08%) + + + __tcp_push_pending_frames (149 samples, 11.33%) @@ -1675,11 +3110,51 @@ var truncate_text_right = false;]]> tcp_transmit_skb + + tcp_v4_send_check (1 samples, 0.08%) + + + + + __tcp_v4_send_check (1 samples, 0.08%) + + + + + _raw_spin_unlock_bh (1 samples, 0.08%) + + + + + lock_sock_nested (1 samples, 0.08%) + + + + + _raw_spin_lock_bh (1 samples, 0.08%) + + + release_sock (2 samples, 0.15%) + + _raw_spin_lock_bh (1 samples, 0.08%) + + + + + __kmalloc_node_track_caller (1 samples, 0.08%) + + + + + __kmalloc_node_track_caller (1 samples, 0.08%) + + + __kmalloc_reserve.isra.26 (3 samples, 0.23%) @@ -1690,21 +3165,46 @@ var truncate_text_right = false;]]> + + __slab_alloc (1 samples, 0.08%) + + + kmem_cache_alloc_node (2 samples, 0.15%) + + __slab_alloc (1 samples, 0.08%) + + + __alloc_skb (9 samples, 0.68%) + + ksize (1 samples, 0.08%) + + + sk_stream_alloc_skb (10 samples, 0.76%) + + ksize (1 samples, 0.08%) + + + + + ipv4_mtu (1 samples, 0.08%) + + + tcp_established_options (4 samples, 0.30%) @@ -1730,6 +3230,21 @@ var truncate_text_right = false;]]> + + tcp_v4_md5_lookup (1 samples, 0.08%) + + + + + security_socket_sendmsg (1 samples, 0.08%) + + + + + aa_revalidate_sk (1 samples, 0.08%) + + + do_sync_write (186 samples, 14.14%) @@ -1740,6 +3255,11 @@ var truncate_text_right = false;]]> sock_aio_write + + tcp_sendmsg (1 samples, 0.08%) + + + [libpthread-2.19.so] (197 samples, 14.98%) @@ -1760,11 +3280,46 @@ var truncate_text_right = false;]]> vfs_write + + rw_verify_area (1 samples, 0.08%) + + + + + security_file_permission (1 samples, 0.08%) + + + + + apparmor_file_permission (1 samples, 0.08%) + + + + + common_file_perm (1 samples, 0.08%) + + + + + __libc_write (1 samples, 0.08%) + + + + + __pthread_disable_asynccancel (1 samples, 0.08%) + + + sun/nio/ch/FileDispatcherImpl:.write0 (203 samples, 15.44%) sun/nio/ch/FileDispatche.. + + jni_fast_GetIntField (1 samples, 0.08%) + + + io/netty/channel/nio/AbstractNioByteChannel:.doWrite (225 samples, 17.11%) @@ -1775,6 +3330,11 @@ var truncate_text_right = false;]]> sun/nio/ch/SocketChannel.. + + sun/nio/ch/NativeThread:.current (1 samples, 0.08%) + + + sun/nio/ch/SocketChannelImpl:.isConnected (2 samples, 0.15%) @@ -1785,11 +3345,21 @@ var truncate_text_right = false;]]> io/netty/channel/DefaultCha.. + + sun/nio/ch/SocketChannelImpl:.write (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.flush (233 samples, 17.72%) io/netty/channel/AbstractCha.. + + sun/nio/ch/SocketChannelImpl:.isConnected (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.flush (235 samples, 17.87%) @@ -1805,6 +3375,11 @@ var truncate_text_right = false;]]> + + io/netty/channel/ChannelOutboundHandlerAdapter:.flush (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.flush (238 samples, 18.10%) @@ -1815,6 +3390,16 @@ var truncate_text_right = false;]]> io/netty/channel/ChannelDupl.. + + itable stub (1 samples, 0.08%) + + + + + io/netty/channel/ChannelDuplexHandler:.flush (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (241 samples, 18.33%) @@ -1825,6 +3410,11 @@ var truncate_text_right = false;]]> org/vertx/java/core/net/impl.. + + java/util/concurrent/ConcurrentHashMap:.get (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.fireChannelReadComplete (242 samples, 18.40%) @@ -1835,6 +3425,21 @@ var truncate_text_right = false;]]> io/netty/handler/codec/ByteTo.. + + itable stub (1 samples, 0.08%) + + + + + io/netty/channel/AbstractChannelHandlerContext:.executor (1 samples, 0.08%) + + + + + io/netty/channel/DefaultChannelPipeline$HeadContext:.read (1 samples, 0.08%) + + + io/netty/channel/AbstractChannelHandlerContext:.read (4 samples, 0.30%) @@ -1860,6 +3465,21 @@ var truncate_text_right = false;]]> + + sun/nio/ch/SocketChannelImpl:.isConnected (1 samples, 0.08%) + + + + + io/netty/channel/ChannelDuplexHandler:.read (1 samples, 0.08%) + + + + + io/netty/handler/codec/ByteToMessageDecoder:.channelRead (1 samples, 0.08%) + + + io/netty/channel/nio/NioEventLoop:.processSelectedKeys (949 samples, 72.17%) @@ -1875,6 +3495,11 @@ var truncate_text_right = false;]]> io/netty/channel/nio/AbstractNioByteChannel$NioByteUnsafe:.read + + java/nio/DirectByteBuffer:.duplicate (1 samples, 0.08%) + + + sun/nio/ch/EPollArrayWrapper:.poll (5 samples, 0.38%) @@ -1920,6 +3545,11 @@ var truncate_text_right = false;]]> + + tcp_poll (1 samples, 0.08%) + + + JavaThread::run (956 samples, 72.70%) @@ -1980,6 +3610,11 @@ var truncate_text_right = false;]]> + + sun/nio/ch/EPollSelectorImpl:.updateSelectedKeys (1 samples, 0.08%) + + + java (995 samples, 75.67%) @@ -1995,6 +3630,131 @@ var truncate_text_right = false;]]> java_start + + VMThread::run (1 samples, 0.08%) + + + + + VMThread::loop (1 samples, 0.08%) + + + + + SafepointSynchronize::begin (1 samples, 0.08%) + + + + + __GI___mprotect (1 samples, 0.08%) + + + + + system_call_fastpath (1 samples, 0.08%) + + + + + sys_mprotect (1 samples, 0.08%) + + + + + mprotect_fixup (1 samples, 0.08%) + + + + + change_protection (1 samples, 0.08%) + + + + + change_protection_range (1 samples, 0.08%) + + + + + flush_tlb_mm_range (1 samples, 0.08%) + + + + + ksoftirqd/3 (1 samples, 0.08%) + + + + + __switch_to (1 samples, 0.08%) + + + + + [perf] (1 samples, 0.08%) + + + + + __execve (1 samples, 0.08%) + + + + + stub_execve (1 samples, 0.08%) + + + + + sys_execve (1 samples, 0.08%) + + + + + do_execve_common.isra.22 (1 samples, 0.08%) + + + + + open_exec (1 samples, 0.08%) + + + + + do_filp_open (1 samples, 0.08%) + + + + + path_openat (1 samples, 0.08%) + + + + + put_filp (1 samples, 0.08%) + + + + + security_file_free (1 samples, 0.08%) + + + + + apparmor_file_free_security (1 samples, 0.08%) + + + + + kfree (1 samples, 0.08%) + + + + + generic_exec_single (1 samples, 0.08%) + + + perf (6 samples, 0.46%) @@ -2105,6 +3865,11 @@ var truncate_text_right = false;]]> + + native_load_tls (1 samples, 0.08%) + + + native_write_msr_safe (3 samples, 0.23%) @@ -2175,6 +3940,11 @@ var truncate_text_right = false;]]> + + ktime_get (1 samples, 0.08%) + + + cpuidle_idle_call (21 samples, 1.60%) @@ -2190,6 +3960,41 @@ var truncate_text_right = false;]]> + + menu_reflect (1 samples, 0.08%) + + + + + atomic_notifier_call_chain (1 samples, 0.08%) + + + + + cpuidle_idle_call (1 samples, 0.08%) + + + + + rcu_idle_enter (1 samples, 0.08%) + + + + + rcu_sysidle_enter (1 samples, 0.08%) + + + + + rcu_idle_exit (1 samples, 0.08%) + + + + + rcu_sysidle_exit (1 samples, 0.08%) + + + schedule_preempt_disabled (4 samples, 0.30%) @@ -2210,11 +4015,56 @@ var truncate_text_right = false;]]> + + sched_clock_idle_sleep_event (1 samples, 0.08%) + + + + + sched_clock_cpu (1 samples, 0.08%) + + + get_next_timer_interrupt (3 samples, 0.23%) + + _raw_spin_lock (1 samples, 0.08%) + + + + + __remove_hrtimer (1 samples, 0.08%) + + + + + hrtimer_force_reprogram (1 samples, 0.08%) + + + + + tick_program_event (1 samples, 0.08%) + + + + + clockevents_program_event (1 samples, 0.08%) + + + + + lapic_next_deadline (1 samples, 0.08%) + + + + + native_write_msr_safe (1 samples, 0.08%) + + + tick_nohz_idle_enter (6 samples, 0.46%) @@ -2240,6 +4090,11 @@ var truncate_text_right = false;]]> + + hrtimer_force_reprogram (1 samples, 0.08%) + + + hrtimer_cancel (4 samples, 0.30%) @@ -2330,6 +4185,11 @@ var truncate_text_right = false;]]> + + update_cpu_load_nohz (1 samples, 0.08%) + + + intel_idle (3 samples, 0.23%) @@ -2340,6 +4200,21 @@ var truncate_text_right = false;]]> + + ktime_get (1 samples, 0.08%) + + + + + read_tsc (1 samples, 0.08%) + + + + + native_read_tsc (1 samples, 0.08%) + + + cpuidle_idle_call (6 samples, 0.46%) @@ -2350,11 +4225,31 @@ var truncate_text_right = false;]]> + + int_sqrt (1 samples, 0.08%) + + + arch_cpu_idle (7 samples, 0.53%) + + menu_select (1 samples, 0.08%) + + + + + rcu_idle_enter (1 samples, 0.08%) + + + + + rcu_sysidle_enter (1 samples, 0.08%) + + + rcu_idle_exit (2 samples, 0.15%) @@ -2365,16 +4260,46 @@ var truncate_text_right = false;]]> + + __schedule (1 samples, 0.08%) + + + schedule_preempt_disabled (2 samples, 0.15%) + + _raw_spin_lock_irqsave (1 samples, 0.08%) + + + get_next_timer_interrupt (2 samples, 0.15%) + + hrtimer_start (1 samples, 0.08%) + + + + + __hrtimer_start_range_ns (1 samples, 0.08%) + + + + + __remove_hrtimer (1 samples, 0.08%) + + + + + timerqueue_del (1 samples, 0.08%) + + + __tick_nohz_idle_enter (4 samples, 0.30%) @@ -2385,11 +4310,36 @@ var truncate_text_right = false;]]> + + rcu_cpu_has_callbacks (1 samples, 0.08%) + + + tick_nohz_idle_enter (5 samples, 0.38%) + + ktime_get (1 samples, 0.08%) + + + + + hrtimer_cancel (1 samples, 0.08%) + + + + + hrtimer_try_to_cancel (1 samples, 0.08%) + + + + + _raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + tick_nohz_restart (4 samples, 0.30%) @@ -2435,6 +4385,16 @@ var truncate_text_right = false;]]> + + tick_nohz_stop_idle (1 samples, 0.08%) + + + + + nr_iowait_cpu (1 samples, 0.08%) + + + swapper (72 samples, 5.48%) @@ -2460,6 +4420,21 @@ var truncate_text_right = false;]]> r.. + + schedule_preempt_disabled (1 samples, 0.08%) + + + + + [libc-2.19.so] (1 samples, 0.08%) + + + + + sys_epoll_wait (1 samples, 0.08%) + + + socket_readable (2 samples, 0.15%) @@ -2475,16 +4450,56 @@ var truncate_text_right = false;]]> + + epoll_ctl (1 samples, 0.08%) + + + + + system_call (1 samples, 0.08%) + + + aeProcessEvents (3 samples, 0.23%) + + socket_writeable (1 samples, 0.08%) + + + + + epoll_ctl (1 samples, 0.08%) + + + + + system_call (1 samples, 0.08%) + + + __schedule (2 samples, 0.15%) + + __switch_to (1 samples, 0.08%) + + + + + __switch_to (1 samples, 0.08%) + + + + + system_call_after_swapgs (1 samples, 0.08%) + + + _raw_spin_lock_irqsave (2 samples, 0.15%) @@ -2510,6 +4525,11 @@ var truncate_text_right = false;]]> + + tcp_poll (1 samples, 0.08%) + + + ep_scan_ready_list.isra.9 (20 samples, 1.52%) @@ -2520,26 +4540,116 @@ var truncate_text_right = false;]]> + + enqueue_hrtimer (1 samples, 0.08%) + + + + + timerqueue_add (1 samples, 0.08%) + + + __hrtimer_start_range_ns (3 samples, 0.23%) + + lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + + + _raw_spin_lock_irqsave (1 samples, 0.08%) + + + + + enqueue_hrtimer (1 samples, 0.08%) + + + + + __remove_hrtimer (1 samples, 0.08%) + + + + + timerqueue_del (1 samples, 0.08%) + + + + + rb_erase (1 samples, 0.08%) + + + + + _raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + hrtimer_try_to_cancel (3 samples, 0.23%) + + lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + + + _raw_spin_lock_irqsave (1 samples, 0.08%) + + + + + idle_cpu (1 samples, 0.08%) + + + + + lock_hrtimer_base.isra.19 (1 samples, 0.08%) + + + + + account_entity_dequeue (1 samples, 0.08%) + + + + + update_cfs_rq_blocked_load (1 samples, 0.08%) + + + dequeue_entity (4 samples, 0.30%) + + update_curr (1 samples, 0.08%) + + + + + cpuacct_charge (1 samples, 0.08%) + + + dequeue_task_fair (6 samples, 0.46%) + + update_min_vruntime (1 samples, 0.08%) + + + deactivate_task (7 samples, 0.53%) @@ -2550,6 +4660,31 @@ var truncate_text_right = false;]]> + + update_rq_clock.part.63 (1 samples, 0.08%) + + + + + sched_clock_cpu (1 samples, 0.08%) + + + + + sched_clock (1 samples, 0.08%) + + + + + native_sched_clock (1 samples, 0.08%) + + + + + pick_next_task_fair (1 samples, 0.08%) + + + schedule_hrtimeout_range (20 samples, 1.52%) @@ -2570,6 +4705,11 @@ var truncate_text_right = false;]]> + + put_prev_task_fair (1 samples, 0.08%) + + + select_estimate_accuracy (5 samples, 0.38%) @@ -2590,6 +4730,11 @@ var truncate_text_right = false;]]> + + fget_light (1 samples, 0.08%) + + + [libc-2.19.so] (61 samples, 4.64%) @@ -2615,16 +4760,126 @@ var truncate_text_right = false;]]> + + apic_timer_interrupt (1 samples, 0.08%) + + + + + smp_apic_timer_interrupt (1 samples, 0.08%) + + + + + local_apic_timer_interrupt (1 samples, 0.08%) + + + + + hrtimer_interrupt (1 samples, 0.08%) + + + + + __run_hrtimer (1 samples, 0.08%) + + + + + tick_sched_timer (1 samples, 0.08%) + + + + + tick_sched_handle.isra.17 (1 samples, 0.08%) + + + + + update_process_times (1 samples, 0.08%) + + + + + account_process_tick (1 samples, 0.08%) + + + + + account_user_time (1 samples, 0.08%) + + + + + acct_account_cputime (1 samples, 0.08%) + + + + + __acct_update_integrals (1 samples, 0.08%) + + + + + jiffies_to_timeval (1 samples, 0.08%) + + + + + gettimeofday@plt (1 samples, 0.08%) + + + + + http_parser_execute (1 samples, 0.08%) + + + sock_read (2 samples, 0.15%) + + system_call_after_swapgs (1 samples, 0.08%) + + + + + fget_light (1 samples, 0.08%) + + + fget_light (2 samples, 0.15%) + + __kfree_skb (1 samples, 0.08%) + + + + + kfree_skbmem (1 samples, 0.08%) + + + + + _raw_spin_lock_bh (1 samples, 0.08%) + + + + + skb_copy_datagram_iovec (1 samples, 0.08%) + + + + + copy_user_generic_string (1 samples, 0.08%) + + + do_sync_read (8 samples, 0.61%) @@ -2650,11 +4905,46 @@ var truncate_text_right = false;]]> + + tcp_cleanup_rbuf (1 samples, 0.08%) + + + + + __tcp_select_window (1 samples, 0.08%) + + + apparmor_file_permission (2 samples, 0.15%) + + __fsnotify_parent (1 samples, 0.08%) + + + + + apparmor_file_permission (1 samples, 0.08%) + + + + + common_file_perm (1 samples, 0.08%) + + + + + aa_file_perm (1 samples, 0.08%) + + + + + common_file_perm (1 samples, 0.08%) + + + [libpthread-2.19.so] (26 samples, 1.98%) @@ -2685,6 +4975,36 @@ var truncate_text_right = false;]]> + + fsnotify (1 samples, 0.08%) + + + + + __libc_read (1 samples, 0.08%) + + + + + [[vdso]] (1 samples, 0.08%) + + + + + [[vdso]] (1 samples, 0.08%) + + + + + mutex_unlock (1 samples, 0.08%) + + + + + _raw_spin_lock_irq (1 samples, 0.08%) + + + epoll_ctl (6 samples, 0.46%) @@ -2700,6 +5020,11 @@ var truncate_text_right = false;]]> + + sock_poll (1 samples, 0.08%) + + + response_complete (13 samples, 0.99%) @@ -2715,6 +5040,11 @@ var truncate_text_right = false;]]> h.. + + stats_record (1 samples, 0.08%) + + + socket_readable (60 samples, 4.56%) @@ -2725,6 +5055,41 @@ var truncate_text_right = false;]]> + + system_call_after_swapgs (1 samples, 0.08%) + + + + + fget_light (1 samples, 0.08%) + + + + + fsnotify (1 samples, 0.08%) + + + + + __srcu_read_unlock (1 samples, 0.08%) + + + + + __tcp_push_pending_frames (1 samples, 0.08%) + + + + + tcp_transmit_skb (1 samples, 0.08%) + + + + + skb_clone (1 samples, 0.08%) + + + tcp_event_new_data_sent (3 samples, 0.23%) @@ -2745,6 +5110,26 @@ var truncate_text_right = false;]]> + + _raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + + + __skb_clone (1 samples, 0.08%) + + + + + __ip_local_out (1 samples, 0.08%) + + + + + harmonize_features.isra.92.part.93 (1 samples, 0.08%) + + + dev_queue_xmit (4 samples, 0.30%) @@ -2760,6 +5145,11 @@ var truncate_text_right = false;]]> + + tcp_wfree (1 samples, 0.08%) + + + call_function_single_interrupt (4 samples, 0.30%) @@ -2815,11 +5205,31 @@ var truncate_text_right = false;]]> + + raw_local_deliver (1 samples, 0.08%) + + + + + sock_put (1 samples, 0.08%) + + + + + tcp_prequeue (1 samples, 0.08%) + + + __inet_lookup_established (2 samples, 0.15%) + + inet_ehashfn (1 samples, 0.08%) + + + __tcp_ack_snd_check (3 samples, 0.23%) @@ -2845,6 +5255,31 @@ var truncate_text_right = false;]]> + + __internal_add_timer (1 samples, 0.08%) + + + + + bictcp_cong_avoid (1 samples, 0.08%) + + + + + bictcp_cong_avoid (1 samples, 0.08%) + + + + + tcp_clean_rtx_queue (1 samples, 0.08%) + + + + + ns_to_timeval (1 samples, 0.08%) + + + tcp_ack (9 samples, 0.68%) @@ -2865,11 +5300,31 @@ var truncate_text_right = false;]]> + + lock_timer_base.isra.35 (1 samples, 0.08%) + + + + + _raw_spin_lock_irqsave (1 samples, 0.08%) + + + __wake_up_common (2 samples, 0.15%) + + ep_poll_callback (1 samples, 0.08%) + + + + + _raw_spin_unlock_irqrestore (1 samples, 0.08%) + + + sock_def_readable (5 samples, 0.38%) @@ -2880,6 +5335,16 @@ var truncate_text_right = false;]]> + + _raw_spin_lock_irqsave (1 samples, 0.08%) + + + + + tcp_event_data_recv (1 samples, 0.08%) + + + __netif_receive_skb_core (33 samples, 2.51%) @@ -2950,6 +5415,11 @@ var truncate_text_right = false;]]> __.. + + ip_rcv (1 samples, 0.08%) + + + ip_queue_xmit (51 samples, 3.88%) @@ -2985,6 +5455,11 @@ var truncate_text_right = false;]]> do.. + + rcu_bh_qs (1 samples, 0.08%) + + + __tcp_push_pending_frames (61 samples, 4.64%) @@ -3000,6 +5475,46 @@ var truncate_text_right = false;]]> tcp_t.. + + skb_clone (1 samples, 0.08%) + + + + + __skb_clone (1 samples, 0.08%) + + + + + lock_sock_nested (1 samples, 0.08%) + + + + + local_bh_enable (1 samples, 0.08%) + + + + + release_sock (1 samples, 0.08%) + + + + + _raw_spin_unlock_bh (1 samples, 0.08%) + + + + + local_bh_enable_ip (1 samples, 0.08%) + + + + + __kmalloc_node_track_caller (1 samples, 0.08%) + + + __slab_alloc (3 samples, 0.23%) @@ -3010,6 +5525,21 @@ var truncate_text_right = false;]]> + + alloc_pages_current (1 samples, 0.08%) + + + + + __alloc_pages_nodemask (1 samples, 0.08%) + + + + + get_page_from_freelist (1 samples, 0.08%) + + + sk_stream_alloc_skb (7 samples, 0.53%) @@ -3025,6 +5555,11 @@ var truncate_text_right = false;]]> + + arch_local_irq_save (1 samples, 0.08%) + + + inet_sendmsg (78 samples, 5.93%) @@ -3035,6 +5570,26 @@ var truncate_text_right = false;]]> tcp_sen.. + + tcp_send_mss (1 samples, 0.08%) + + + + + tcp_current_mss (1 samples, 0.08%) + + + + + tcp_established_options (1 samples, 0.08%) + + + + + tcp_md5_do_lookup (1 samples, 0.08%) + + + do_sync_write (82 samples, 6.24%) @@ -3085,6 +5640,21 @@ var truncate_text_right = false;]]> + + _copy_from_user (1 samples, 0.08%) + + + + + mutex_unlock (1 samples, 0.08%) + + + + + fget_light (1 samples, 0.08%) + + + aeProcessEvents (171 samples, 13.00%) @@ -3115,6 +5685,11 @@ var truncate_text_right = false;]]> + + epoll_wait (1 samples, 0.08%) + + + socket_readable (2 samples, 0.15%) @@ -3125,6 +5700,11 @@ var truncate_text_right = false;]]> aeMain + + socket_writeable (1 samples, 0.08%) + + + all (1,315 samples, 100%) @@ -3145,5 +5725,10 @@ var truncate_text_right = false;]]> thread_main + + aeProcessEvents (1 samples, 0.08%) + + + \ No newline at end of file diff --git a/tests/data/flamegraph/flamechart/flame.svg b/tests/data/flamegraph/flamechart/flame.svg index f59acbd3..176242af 100644 --- a/tests/data/flamegraph/flamechart/flame.svg +++ b/tests/data/flamegraph/flamechart/flame.svg @@ -50,1349 +50,1704 @@ var truncate_text_right = false;]]> + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,800 samples, 0.30%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,700 samples, 0.28%) - + + + u8::CopyToLowered (300 samples, 0.05%) + + + Needless_copy_to_u32 (600 samples, 0.10%) - + u8::master_fast_size_for (1,200 samples, 0.20%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,200 samples, 0.20%) - + &[u8]::RLE_get_runs (2,200 samples, 0.37%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (5,700 samples, 0.95%) - + Needless_copy_to_u32 (800 samples, 0.13%) - + Samples (7,500 samples, 1.25%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,600 samples, 0.27%) - + u8::master_compress (13,000 samples, 2.17%) - + u.. u8::CopyToLowered (1,600 samples, 0.27%) - + alloc::vec::Vec<u64>::Integer_encode_all (14,700 samples, 2.46%) - + al.. + + &[bool]::encode_packed_bool (400 samples, 0.07%) + + + Final (600 samples, 0.10%) - + + + tree_buf::internal::types::boolean::PackedBoolCompressor::compress_PackedBool (500 samples, 0.08%) + + + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + Needless_copy_to_u32 (600 samples, 0.10%) - + u8::master_fast_size_for (1,900 samples, 0.32%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,800 samples, 0.30%) - + u8::CopyToLowered (1,900 samples, 0.32%) - + Samples (4,100 samples, 0.69%) - + bool::master_compress (4,900 samples, 0.82%) - + + + Final (200 samples, 0.03%) + + + + + tree_buf::internal::types::integer::PrefixVarIntCompressor::PrefixVarInt_compress (100 samples, 0.02%) + + + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::PrefixVarIntCompressor)>::fast_size_for (200 samples, 0.03%) + + + + + tree_buf::internal::types::integer::PrefixVarIntCompressor::fast_size_for (100 samples, 0.02%) + + + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (300 samples, 0.05%) + + + + + Needless_copy_to_u32 (200 samples, 0.03%) + + + u16::master_compress (1,000 samples, 0.17%) - + Samples (800 samples, 0.13%) - + + + u16::CopyToLowered (200 samples, 0.03%) + + + &[bool]::encode_rle_bool (2,100 samples, 0.35%) - + alloc::vec::Vec<u64>::Integer_encode_all (2,000 samples, 0.33%) - + Final (2,200 samples, 0.37%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (300 samples, 0.05%) + + + + + Needless_copy_to_u32 (200 samples, 0.03%) + + + + + u8::master_fast_size_for (500 samples, 0.08%) + + + Samples (1,100 samples, 0.18%) - + + + u8::CopyToLowered (400 samples, 0.07%) + + + alloc::vec::Vec<bool>::Boolean_encode_all (8,500 samples, 1.42%) - + bool::master_compress (3,500 samples, 0.58%) - + Final (2,900 samples, 0.48%) - + tree_buf::internal::types::integer::PrefixVarIntCompressor::PrefixVarInt_compress (2,800 samples, 0.47%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,200 samples, 0.20%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + u8::master_fast_size_for (1,500 samples, 0.25%) - + + + u8::CopyToLowered (400 samples, 0.07%) + + + + + tree_buf::internal::types::integer::PrefixVarIntCompressor::fast_size_for (300 samples, 0.05%) + + + Needless_copy_to_u32 (1,000 samples, 0.17%) - + u32::master_fast_size_for (7,900 samples, 1.32%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (7,500 samples, 1.25%) - + &[u32]::RLE_get_runs (2,000 samples, 0.33%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::DeltaZigZagCompressor,_tree_buf::internal::types::integer::PrefixVarIntCompressor)>::fast_size_for (12,000 samples, 2.01%) - + t.. tree_buf::internal::types::integer::PrefixVarIntCompressor::fast_size_for (2,100 samples, 0.35%) - + Needless_copy_to_u32 (1,100 samples, 0.18%) - + u32::master_compress (25,100 samples, 4.19%) - + u32::.. Samples (22,100 samples, 3.69%) - + Samp.. tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (7,900 samples, 1.32%) - + + + u32::CopyToLowered (500 samples, 0.08%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_compress (2,800 samples, 0.47%) - + Needless_copy_to_u32 (1,100 samples, 0.18%) - + Final (2,900 samples, 0.48%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,800 samples, 0.30%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,600 samples, 0.27%) - + + + u8::CopyToLowered (300 samples, 0.05%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,300 samples, 0.22%) - + Needless_copy_to_u32 (600 samples, 0.10%) - + u8::master_fast_size_for (1,400 samples, 0.23%) - + &[u8]::RLE_get_runs (2,200 samples, 0.37%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (6,000 samples, 1.00%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (2,200 samples, 0.37%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + u8::master_compress (11,400 samples, 1.91%) - + u.. Samples (8,400 samples, 1.40%) - + u8::CopyToLowered (900 samples, 0.15%) - + alloc::vec::Vec<u64>::Integer_encode_all (39,300 samples, 6.57%) - + alloc::ve.. + + Final (500 samples, 0.08%) + + + + + tree_buf::internal::types::integer::BytesCompressor::Bytes_compress (400 samples, 0.07%) + + + + + bool::master_fast_size_for (500 samples, 0.08%) + + + Needless_copy_to_u32 (800 samples, 0.13%) - + u8::master_fast_size_for (3,800 samples, 0.64%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (3,800 samples, 0.64%) - + &[u8]::RLE_get_runs (1,800 samples, 0.30%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (6,400 samples, 1.07%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + Samples (11,000 samples, 1.84%) - + S.. tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (4,500 samples, 0.75%) - + u8::master_compress (13,900 samples, 2.32%) - + u.. alloc::vec::Vec<u8>::Integer_encode_all (14,100 samples, 2.36%) - + a.. tree_buf::internal::types::array_fixed::_20::ArrayEncoder<alloc::vec::Vec<u8>>::ArrayFixed_flush (14,400 samples, 2.41%) - + tr.. Needless_copy_to_u32 (1,800 samples, 0.30%) - + Final (6,400 samples, 1.07%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_compress (6,300 samples, 1.05%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,500 samples, 0.25%) - + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,800 samples, 0.30%) - + + + u8::CopyToLowered (300 samples, 0.05%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,300 samples, 0.22%) - + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,400 samples, 0.23%) - + &[u8]::RLE_get_runs (2,000 samples, 0.33%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (5,700 samples, 0.95%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (2,200 samples, 0.37%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + u8::master_compress (14,500 samples, 2.42%) - + u8.. Samples (8,100 samples, 1.35%) - + alloc::vec::Vec<u64>::Integer_encode_all (16,000 samples, 2.67%) - + al.. u8::CopyToLowered (1,400 samples, 0.23%) - + tree_buf::internal::types::array::VecArrayEncoder<graphql::schemas::treebuf::BidTreeBufEncoderArray>::Array_flush (70,100 samples, 11.71%) - + tree_buf::interna.. Needless_copy_to_u32 (1,700 samples, 0.28%) - + Final (6,000 samples, 1.00%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_compress (5,900 samples, 0.99%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,700 samples, 0.28%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,500 samples, 0.25%) - + + + u8::CopyToLowered (300 samples, 0.05%) + + + Needless_copy_to_u32 (600 samples, 0.10%) - + u8::master_fast_size_for (1,300 samples, 0.22%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,200 samples, 0.20%) - + &[u8]::RLE_get_runs (2,400 samples, 0.40%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (5,900 samples, 0.99%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + Samples (7,900 samples, 1.32%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,900 samples, 0.32%) - + u8::master_compress (14,100 samples, 2.36%) - + u.. u8::CopyToLowered (1,500 samples, 0.25%) - + + + Final (300 samples, 0.05%) + + + + + tree_buf::internal::types::integer::PrefixVarIntCompressor::PrefixVarInt_compress (200 samples, 0.03%) + + + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::PrefixVarIntCompressor)>::fast_size_for (200 samples, 0.03%) + + + + + tree_buf::internal::types::integer::PrefixVarIntCompressor::fast_size_for (200 samples, 0.03%) + + + + + Needless_copy_to_u32 (100 samples, 0.02%) + + + Samples (800 samples, 0.13%) - + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (300 samples, 0.05%) + + + u16::master_compress (1,300 samples, 0.22%) - + + + u16::CopyToLowered (200 samples, 0.03%) + + + alloc::vec::Vec<u64>::Integer_encode_all (2,200 samples, 0.37%) - + Final (2,500 samples, 0.42%) - + &[bool]::encode_rle_bool (2,400 samples, 0.40%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (300 samples, 0.05%) + + + + + Needless_copy_to_u32 (200 samples, 0.03%) + + + u8::master_fast_size_for (600 samples, 0.10%) - + + + u8::CopyToLowered (400 samples, 0.07%) + + + bool::master_compress (3,900 samples, 0.65%) - + Samples (1,300 samples, 0.22%) - + alloc::vec::Vec<bool>::Boolean_encode_all (4,800 samples, 0.80%) - + alloc::vec::Vec<u64>::Integer_encode_all (20,800 samples, 3.48%) - + all.. Needless_copy_to_u32 (1,800 samples, 0.30%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_compress (15,000 samples, 2.51%) - + tr.. Final (15,100 samples, 2.52%) - + Fi.. + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (200 samples, 0.03%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,200 samples, 0.20%) - + Needless_copy_to_u32 (800 samples, 0.13%) - + u8::master_fast_size_for (1,500 samples, 0.25%) - + + + u8::CopyToLowered (400 samples, 0.07%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (3,200 samples, 0.53%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + u8::master_fast_size_for (3,300 samples, 0.55%) - + &[u8]::RLE_get_runs (2,000 samples, 0.33%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (7,500 samples, 1.25%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (3,700 samples, 0.62%) - + Needless_copy_to_u32 (1,100 samples, 0.18%) - + u8::master_compress (26,600 samples, 4.45%) - + u8::m.. Samples (11,400 samples, 1.91%) - + S.. u8::CopyToLowered (1,700 samples, 0.28%) - + alloc::vec::Vec<u64>::Integer_encode_all (28,500 samples, 4.76%) - + alloc:.. tree_buf::internal::types::string::Utf8Compressor::Utf8_compress (2,200 samples, 0.37%) - + &alloc::string::String::master_compress (2,300 samples, 0.38%) - + tree_buf::internal::encodings::dictionary::Dictionary<(tree_buf::internal::types::string::Utf8Compressor,)>::compress (79,800 samples, 13.34%) - + tree_buf::internal::.. &alloc::string::String::get_lookup_table (48,900 samples, 8.17%) - + &alloc::str.. Final (80,000 samples, 13.37%) - + Final + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + Needless_copy_to_u32 (800 samples, 0.13%) - + u8::master_fast_size_for (1,500 samples, 0.25%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,400 samples, 0.23%) - + + + u8::CopyToLowered (400 samples, 0.07%) + + + Needless_copy_to_u32 (800 samples, 0.13%) - + u8::master_fast_size_for (3,600 samples, 0.60%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (3,500 samples, 0.58%) - + &[u8]::RLE_get_runs (2,000 samples, 0.33%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (7,700 samples, 1.29%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (4,200 samples, 0.70%) - + Needless_copy_to_u32 (1,000 samples, 0.17%) - + u8::master_fast_size_for (12,100 samples, 2.02%) - + u.. u8::CopyToLowered (800 samples, 0.13%) - + + + tree_buf::internal::types::string::Utf8Compressor::Utf8_fast_size_for (200 samples, 0.03%) + + + + + &alloc::string::String::master_fast_size_for (300 samples, 0.05%) + + + &alloc::string::String::get_lookup_table (19,500 samples, 3.26%) - + &al.. tree_buf::internal::encodings::dictionary::Dictionary<(tree_buf::internal::types::string::Utf8Compressor,)>::fast_size_for (32,900 samples, 5.50%) - + tree_bu.. + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + Needless_copy_to_u32 (900 samples, 0.15%) - + u8::master_fast_size_for (1,600 samples, 0.27%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,400 samples, 0.23%) - + + + u8::CopyToLowered (400 samples, 0.07%) + + + + + tree_buf::internal::types::string::Utf8Compressor::Utf8_fast_size_for (200 samples, 0.03%) + + + + + &alloc::string::String::master_fast_size_for (400 samples, 0.07%) + + + &[&alloc::string::String]::RLE_get_runs (3,400 samples, 0.57%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::string::Utf8Compressor,)>::fast_size_for (6,000 samples, 1.00%) - + Samples (39,500 samples, 6.60%) - + Samples + + tree_buf::internal::types::string::Utf8Compressor::Utf8_fast_size_for (500 samples, 0.08%) + + + &alloc::string::String::master_compress (119,700 samples, 20.00%) - + &alloc::string::String::master_.. tree_buf::internal::types::integer::Simple16Compressor::Simple16_compress (7,000 samples, 1.17%) - + Needless_copy_to_u32 (1,800 samples, 0.30%) - + Final (7,100 samples, 1.19%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,200 samples, 0.20%) - + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,400 samples, 0.23%) - + + + u8::CopyToLowered (200 samples, 0.03%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,000 samples, 0.17%) - + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,200 samples, 0.20%) - + &[u8]::RLE_get_runs (1,700 samples, 0.28%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (4,800 samples, 0.80%) - + Needless_copy_to_u32 (1,000 samples, 0.17%) - + Samples (7,000 samples, 1.17%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (2,100 samples, 0.35%) - + u8::master_compress (14,300 samples, 2.39%) - + u8.. u8::CopyToLowered (1,900 samples, 0.32%) - + alloc::vec::Vec<u64>::Integer_encode_all (16,400 samples, 2.74%) - + al.. + + tree_buf::internal::types::string::Utf8Compressor::Utf8_compress (400 samples, 0.07%) + + + + + &alloc::string::String::master_compress (500 samples, 0.08%) + + + &alloc::string::String::get_lookup_table (31,800 samples, 5.31%) - + &alloc:.. tree_buf::internal::encodings::dictionary::Dictionary<(tree_buf::internal::types::string::Utf8Compressor,)>::compress (48,900 samples, 8.17%) - + tree_buf::i.. Final (49,000 samples, 8.19%) - + Final + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,300 samples, 0.22%) - + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,600 samples, 0.27%) - + + + u8::CopyToLowered (200 samples, 0.03%) + + + Needless_copy_to_u32 (600 samples, 0.10%) - + u8::master_fast_size_for (1,200 samples, 0.20%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,100 samples, 0.18%) - + &[u8]::RLE_get_runs (2,100 samples, 0.35%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (5,300 samples, 0.89%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + u8::master_fast_size_for (7,400 samples, 1.24%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (2,100 samples, 0.35%) - + u8::CopyToLowered (700 samples, 0.12%) - + + + &alloc::string::String::master_fast_size_for (200 samples, 0.03%) + + + + + tree_buf::internal::types::string::Utf8Compressor::Utf8_fast_size_for (200 samples, 0.03%) + + + &alloc::string::String::get_lookup_table (8,300 samples, 1.39%) - + tree_buf::internal::encodings::dictionary::Dictionary<(tree_buf::internal::types::string::Utf8Compressor,)>::fast_size_for (16,900 samples, 2.82%) - + tr.. + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,500 samples, 0.25%) - + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,700 samples, 0.28%) - + + + u8::CopyToLowered (400 samples, 0.07%) + + + + + tree_buf::internal::types::string::Utf8Compressor::Utf8_fast_size_for (100 samples, 0.02%) + + + + + &alloc::string::String::master_fast_size_for (300 samples, 0.05%) + + + &[&alloc::string::String]::RLE_get_runs (4,400 samples, 0.74%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::string::Utf8Compressor,)>::fast_size_for (7,100 samples, 1.19%) - + Samples (24,700 samples, 4.13%) - + Samp.. tree_buf::internal::types::string::Utf8Compressor::Utf8_fast_size_for (600 samples, 0.10%) - + &alloc::string::String::master_compress (73,900 samples, 12.35%) - + &alloc::string::St.. alloc::vec::Vec<&alloc::string::String>::String_EncoderArray::flush (194,200 samples, 32.45%) - + alloc::vec::Vec<&alloc::string::String>::String_Encod.. tree_buf::internal::types::integer::Simple16Compressor::Simple16_compress (10,100 samples, 1.69%) - + Needless_copy_to_u32 (1,800 samples, 0.30%) - + Final (10,200 samples, 1.70%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,500 samples, 0.25%) - + Needless_copy_to_u32 (800 samples, 0.13%) - + u8::master_fast_size_for (1,800 samples, 0.30%) - + + + u8::CopyToLowered (300 samples, 0.05%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (2,000 samples, 0.33%) - + Needless_copy_to_u32 (800 samples, 0.13%) - + u8::master_fast_size_for (2,100 samples, 0.35%) - + &[u8]::RLE_get_runs (2,300 samples, 0.38%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (6,800 samples, 1.14%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (2,600 samples, 0.43%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + u8::master_compress (19,900 samples, 3.33%) - + u8:.. Samples (9,600 samples, 1.60%) - + u8::CopyToLowered (1,600 samples, 0.27%) - + alloc::vec::Vec<u64>::Integer_encode_all (21,700 samples, 3.63%) - + allo.. tree_buf::internal::types::boolean::PackedBoolCompressor::compress_PackedBool (700 samples, 0.12%) - + &[bool]::encode_packed_bool (600 samples, 0.10%) - + Final (900 samples, 0.15%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,500 samples, 0.25%) - + Needless_copy_to_u32 (900 samples, 0.15%) - + u8::master_fast_size_for (1,800 samples, 0.30%) - + Samples (4,000 samples, 0.67%) - + u8::CopyToLowered (2,000 samples, 0.33%) - + bool::master_compress (5,100 samples, 0.85%) - + alloc::vec::Vec<bool>::Boolean_encode_all (9,500 samples, 1.59%) - + Needless_copy_to_u32 (2,000 samples, 0.33%) - + Final (21,100 samples, 3.53%) - + Fin.. tree_buf::internal::types::integer::Simple16Compressor::Simple16_compress (21,000 samples, 3.51%) - + tre.. + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (100 samples, 0.02%) + + + Needless_copy_to_u32 (700 samples, 0.12%) - + u8::master_fast_size_for (1,900 samples, 0.32%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,700 samples, 0.28%) - + + + u8::CopyToLowered (300 samples, 0.05%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (15,100 samples, 2.52%) - + tr.. Needless_copy_to_u32 (14,700 samples, 2.46%) - + Ne.. u8::master_fast_size_for (15,300 samples, 2.56%) - + u8.. &[u8]::RLE_get_runs (2,600 samples, 0.43%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (20,400 samples, 3.41%) - + tre.. Needless_copy_to_u32 (1,200 samples, 0.20%) - + Samples (23,100 samples, 3.86%) - + Samp.. tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (2,500 samples, 0.42%) - + u8::master_compress (44,400 samples, 7.42%) - + u8::master.. u8::CopyToLowered (3,200 samples, 0.53%) - + alloc::vec::Vec<u64>::Integer_encode_all (57,600 samples, 9.63%) - + alloc::vec::Ve.. tree_buf::internal::types::array::VecArrayEncoder<graphql::schemas::treebuf::BodyShapeTreeBufEncoderArray>::Array_flush (58,400 samples, 9.76%) - + tree_buf::inte.. tree_buf::internal::types::integer::PrefixVarIntCompressor::PrefixVarInt_compress (9,800 samples, 1.64%) - + Final (10,000 samples, 1.67%) - + + + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::BytesCompressor)>::fast_size_for (200 samples, 0.03%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (2,000 samples, 0.33%) - + Needless_copy_to_u32 (1,100 samples, 0.18%) - + u8::master_fast_size_for (2,300 samples, 0.38%) - + u8::CopyToLowered (600 samples, 0.10%) - + + + tree_buf::internal::types::integer::PrefixVarIntCompressor::fast_size_for (400 samples, 0.07%) + + + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,200 samples, 0.20%) - + Needless_copy_to_u32 (1,100 samples, 0.18%) - + u32::master_fast_size_for (1,700 samples, 0.28%) - + &[u32]::RLE_get_runs (2,800 samples, 0.47%) - + tree_buf::internal::encodings::rle::RLE<(tree_buf::internal::types::integer::Simple16Compressor,_tree_buf::internal::types::integer::DeltaZigZagCompressor,_tree_buf::internal::types::integer::PrefixVarIntCompressor)>::fast_size_for (7,900 samples, 1.32%) - + tree_buf::internal::types::integer::PrefixVarIntCompressor::fast_size_for (2,700 samples, 0.45%) - + tree_buf::internal::types::integer::Simple16Compressor::Simple16_fast_size_for (1,900 samples, 0.32%) - + Needless_copy_to_u32 (1,700 samples, 0.28%) - + Samples (12,700 samples, 2.12%) - + S.. u32::master_compress (22,900 samples, 3.83%) - + u32:.. u32::CopyToLowered (25,900 samples, 4.33%) - + u32::.. alloc::vec::Vec<u64>::Integer_encode_all (183,900 samples, 30.73%) - + alloc::vec::Vec<u64>::Integer_encode_all alloc::vec::Vec<graphql::schemas::treebuf::Order>::Array_encode_root (597,800 samples, 99.90%) - + alloc::vec::Vec<graphql::schemas::treebuf::Order>::Array_encode_root all (598,400 samples, 100%) - + GraphQL (598,400 samples, 100.00%) - + GraphQL graphql::schemas::treebuf::Response::encode_with_options (598,300 samples, 99.98%) - + graphql::schemas::treebuf::Response::encode_with_options