From d0018e221047a6577c9b74ebd3fae88413219195 Mon Sep 17 00:00:00 2001 From: Andrii Radyk Date: Fri, 26 Jun 2020 21:30:56 +0200 Subject: [PATCH] add async profiler test for java palette with partial async-profiler collapsed input and generated output --- .../colors/async-profiler-collapsed-part.txt | 30 + .../flamegraph/colors/async-profiler-java.svg | 1214 +++++++++++++++++ tests/flamegraph.rs | 11 + 3 files changed, 1255 insertions(+) create mode 100644 tests/data/flamegraph/colors/async-profiler-collapsed-part.txt create mode 100644 tests/data/flamegraph/colors/async-profiler-java.svg diff --git a/tests/data/flamegraph/colors/async-profiler-collapsed-part.txt b/tests/data/flamegraph/colors/async-profiler-collapsed-part.txt new file mode 100644 index 00000000..1183dbaa --- /dev/null +++ b/tests/data/flamegraph/colors/async-profiler-collapsed-part.txt @@ -0,0 +1,30 @@ +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Optimize();PhaseIdealLoop::build_and_optimize(bool, bool);PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&);PhaseIdealLoop::build_loop_late_post(Node*);PhaseIdealLoop::get_late_ctrl(Node*, Node*);PhaseIdealLoop::is_dominator(Node*, Node*) [clone .part.114] 496 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseChaitin::Split(unsigned int, ResourceArea*) 213 +start_thread;java_start(Thread*);GCTaskThread::run();OldToYoungRootsTask::do_it(GCTaskManager*, unsigned int);CardTableExtension::scavenge_contents_parallel(ObjectStartArray*, MutableSpace*, HeapWord*, PSPromotionManager*, unsigned int, unsigned int);PSPromotionManager::drain_stacks_depth(bool);oopDesc* PSPromotionManager::copy_to_survivor_space(oopDesc*) 197 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);Compiler::compile_method(ciEnv*, ciMethod*, int);Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*);Compilation::compile_method();ciEnv::register_method(ciMethod*, int, CodeOffsets*, int, CodeBuffer*, int, OopMapSet*, ExceptionHandlerTable*, ImplicitExceptionTable*, AbstractCompiler*, int, bool, bool, RTMState);nmethod::new_nmethod(methodHandle, int, int, CodeOffsets*, int, DebugInformationRecorder*, Dependencies*, CodeBuffer*, int, OopMapSet*, ExceptionHandlerTable*, ImplicitExceptionTable*, AbstractCompiler*, int);CodeCache::allocate(int, bool);CodeHeap::allocate(unsigned long, bool) 172 +start_thread;java_start(Thread*);GCTaskThread::run();OldToYoungRootsTask::do_it(GCTaskManager*, unsigned int);CardTableExtension::scavenge_contents_parallel(ObjectStartArray*, MutableSpace*, HeapWord*, PSPromotionManager*, unsigned int, unsigned int);PSPromotionManager::drain_stacks_depth(bool);oopDesc* PSPromotionManager::copy_to_survivor_space(oopDesc*);InstanceKlass::oop_push_contents(PSPromotionManager*, oopDesc*) 161 +start_thread;java_start(Thread*);GCTaskThread::run();OldToYoungRootsTask::do_it(GCTaskManager*, unsigned int);CardTableExtension::scavenge_contents_parallel(ObjectStartArray*, MutableSpace*, HeapWord*, PSPromotionManager*, unsigned int, unsigned int);PSPromotionManager::drain_stacks_depth(bool) 132 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseChaitin::build_ifg_physical(ResourceArea*) 122 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseChaitin::build_ifg_physical(ResourceArea*);PhaseChaitin::interfere_with_live(unsigned int, IndexSet*) 117 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseLive::compute(unsigned int) 110 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();Matcher::match();Matcher::xform(Node*, int);Arena::contains(void const*) const 109 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Optimize();PhaseIdealLoop::build_and_optimize(bool, bool);PhaseIdealLoop::build_loop_early(VectorSet&, Node_List&, Node_Stack&) 108 +start_thread;java_start(Thread*);GCTaskThread::run();DrainStacksCompactionTask::do_it(GCTaskManager*, unsigned int);ParCompactionManager::drain_region_stacks();PSParallelCompact::fill_region(ParCompactionManager*, unsigned long);ParMarkBitMap::iterate(ParMarkBitMapClosure*, unsigned long, unsigned long) const;MoveAndUpdateClosure::do_addr(HeapWord*, unsigned long);InstanceKlass::oop_update_pointers(ParCompactionManager*, oopDesc*);ParallelCompactData::calc_new_pointer(HeapWord*);ParMarkBitMap::live_words_in_range(HeapWord*, oopDesc*) const 105 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Optimize();PhaseIdealLoop::build_and_optimize(bool, bool);PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&) 99 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseChaitin::gather_lrg_masks(bool) 95 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseCoalesce::coalesce_driver();PhaseConservativeCoalesce::coalesce(Block*);PhaseConservativeCoalesce::update_ifg(unsigned int, unsigned int, IndexSet*, IndexSet*) 92 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseAggressiveCoalesce::insert_copies(Matcher&) 86 +start_thread;java_start(Thread*);GCTaskThread::run();StealTask::do_it(GCTaskManager*, unsigned int);PSPromotionManager::drain_stacks_depth(bool);oopDesc* PSPromotionManager::copy_to_survivor_space(oopDesc*);InstanceKlass::oop_push_contents(PSPromotionManager*, oopDesc*) 80 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseChaitin::post_allocate_copy_removal();PhaseChaitin::elide_copy(Node*, int, Block*, Node_List&, Node_List&, bool) 76 +java.lang.Thread.run;java.util.concurrent.ThreadPoolExecutor$Worker.run;java.util.concurrent.ThreadPoolExecutor.runWorker;java.util.concurrent.FutureTask.run;java.util.concurrent.Executors$RunnableAdapter.call;java.util.concurrent.FutureTask.run;sbt.CompletionService$$anon$2.call;sbt.ConcurrentRestrictions$$anon$4$$Lambda$2176.1600330912.apply;sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1;sbt.Execute$$Lambda$2169.2034046523.apply;sbt.Execute.$anonfun$submit$1;sbt.Execute.work;sbt.internal.util.ErrorHandling$.wideConvert;sbt.Execute$$Lambda$2178.2095669414.apply;sbt.Execute.$anonfun$submit$2;sbt.std.Transform$$anon$4.work;sbt.std.Transform$$anon$3$$Lambda$2167.231900526.apply;sbt.std.Transform$$anon$3.$anonfun$apply$2;sbt.Tests$$$Lambda$7842.1208470949.apply;sbt.Tests$.$anonfun$toTask$1;sbt.TestFunction.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply;sbt.TestFramework$.sbt$TestFramework$$withContextLoader;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1$$Lambda$7850.1117892339.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1;sbt.TestRunner.run;sbt.TestRunner.runTest$1;org.scalatest.tools.Framework$ScalaTestTask.execute;org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite;org.scalatest.wordspec.AnyWordSpec.run;org.scalatest.wordspec.AnyWordSpecLike.run$;org.scalatest.wordspec.AnyWordSpecLike.run;org.scalatest.SuperEngine.runImpl;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7943.1056778999.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$run$1;org.scalatest.wordspec.AnyWordSpec.org$scalatest$wordspec$AnyWordSpecLike$$super$run;org.scalatest.Suite.run$;org.scalatest.Suite.run;org.scalatest.wordspec.AnyWordSpec.runTests;org.scalatest.wordspec.AnyWordSpecLike.runTests$;org.scalatest.wordspec.AnyWordSpecLike.runTests;org.scalatest.SuperEngine.runTestsImpl;org.scalatest.SuperEngine.runTestsInBranch;org.scalatest.SuperEngine.traverseSubNodes$1;scala.collection.immutable.List.foreach;org.scalatest.SuperEngine$$Lambda$7952.1547585176.apply;org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1;org.scalatest.SuperEngine.runTestsInBranch;org.scalatest.SuperEngine.traverseSubNodes$1;scala.collection.immutable.List.foreach;org.scalatest.SuperEngine$$Lambda$7952.1547585176.apply;org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7951.1136212450.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTests$1;org.scalatest.wordspec.AnyWordSpec.runTest;org.scalatest.wordspec.AnyWordSpecLike.runTest$;org.scalatest.wordspec.AnyWordSpecLike.runTest;org.scalatest.SuperEngine.runTestImpl;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7967.812636372.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTest$1;org.scalatest.wordspec.AnyWordSpecLike.invokeWithFixture$1;org.scalatest.wordspec.AnyWordSpec.withFixture;org.scalatest.TestSuite.withFixture$;org.scalatest.TestSuite.withFixture;org.scalatest.wordspec.AnyWordSpecLike$$anon$3.apply;org.scalatest.Transformer.apply;org.scalatest.Transformer.apply;org.scalatest.OutcomeOf$.outcomeOf;org.scalatest.OutcomeOf.outcomeOf$;org.scalatest.OutcomeOf.outcomeOf;scala.runtime.java8.JFunction0$mcV$sp.apply;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$8575.1705890900.apply$mcV$sp;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$124;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.forAll;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll$;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll;org.scalatestplus.scalacheck.UnitCheckerAsserting$CheckerAssertingImpl.check;org.scalacheck.Test$.check;org.scalacheck.Platform$.runWorkers;org.scalacheck.Test$$$Lambda$8420.1048877523.apply;org.scalacheck.Test$.$anonfun$check$1$adapted;org.scalacheck.Test$.$anonfun$check$1;org.scalacheck.Test$.workerFun$1;org.scalacheck.PropFromFun.apply;org.scalacheck.Prop$$$Lambda$8392.1163160283.apply;org.scalacheck.Prop$.$anonfun$apply$1;org.scalacheck.Prop$$$Lambda$8391.1460249324.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$1;org.scalacheck.Prop$.result$1;org.scalacheck.PropFromFun.apply;org.scalacheck.Prop$$$Lambda$8392.1163160283.apply;org.scalacheck.Prop$.$anonfun$apply$1;org.scalacheck.Prop$$$Lambda$8391.1460249324.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$1;org.scalacheck.Prop$.result$1;org.scalacheck.Prop$.secure;org.scalacheck.Prop$$$Lambda$8437.980556189.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$2;org.scalacheck.Prop$$$Lambda$9326.169489320.apply;org.scalacheck.Prop$.$anonfun$forAll$3;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks$$Lambda$9322.742157558.apply;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.$anonfun$forAll$21;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.liftedTree13$1;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$9984.1092558103.apply;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$128$adapted;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$128;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.check$5;com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.readBase16AsBytes;com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.parseBase16;scoverage.Invoker$.invoked;scala.collection.AbstractMap.contains;scala.collection.MapOps.contains$;scala.collection.MapOps.contains;scala.collection.concurrent.TrieMap.get;scala.collection.concurrent.TrieMap.lookuphc;scala.collection.concurrent.INode.rec_lookup 69 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Optimize();PhaseIdealLoop::build_and_optimize(bool, bool);PhaseIdealLoop::Dominators() 67 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseChaitin::build_ifg_physical(ResourceArea*);PhaseChaitin::interfere_with_live(unsigned int, IndexSet*);IndexSetIterator::advance_and_next() 66 +java.lang.Thread.run;java.util.concurrent.ThreadPoolExecutor$Worker.run;java.util.concurrent.ThreadPoolExecutor.runWorker;java.util.concurrent.FutureTask.run;java.util.concurrent.Executors$RunnableAdapter.call;java.util.concurrent.FutureTask.run;sbt.CompletionService$$anon$2.call;sbt.ConcurrentRestrictions$$anon$4$$Lambda$2176.1600330912.apply;sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1;sbt.Execute$$Lambda$2169.2034046523.apply;sbt.Execute.$anonfun$submit$1;sbt.Execute.work;sbt.internal.util.ErrorHandling$.wideConvert;sbt.Execute$$Lambda$2178.2095669414.apply;sbt.Execute.$anonfun$submit$2;sbt.std.Transform$$anon$4.work;sbt.std.Transform$$anon$3$$Lambda$2167.231900526.apply;sbt.std.Transform$$anon$3.$anonfun$apply$2;sbt.Tests$$$Lambda$7842.1208470949.apply;sbt.Tests$.$anonfun$toTask$1;sbt.TestFunction.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply;sbt.TestFramework$.sbt$TestFramework$$withContextLoader;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1$$Lambda$7850.1117892339.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1;sbt.TestRunner.run;sbt.TestRunner.runTest$1;org.scalatest.tools.Framework$ScalaTestTask.execute;org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite;org.scalatest.wordspec.AnyWordSpec.run;org.scalatest.wordspec.AnyWordSpecLike.run$;org.scalatest.wordspec.AnyWordSpecLike.run;org.scalatest.SuperEngine.runImpl;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7943.1056778999.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$run$1;org.scalatest.wordspec.AnyWordSpec.org$scalatest$wordspec$AnyWordSpecLike$$super$run;org.scalatest.Suite.run$;org.scalatest.Suite.run;org.scalatest.wordspec.AnyWordSpec.runTests;org.scalatest.wordspec.AnyWordSpecLike.runTests$;org.scalatest.wordspec.AnyWordSpecLike.runTests;org.scalatest.SuperEngine.runTestsImpl;org.scalatest.SuperEngine.runTestsInBranch;org.scalatest.SuperEngine.traverseSubNodes$1;scala.collection.immutable.List.foreach;org.scalatest.SuperEngine$$Lambda$7952.1547585176.apply;org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1;org.scalatest.SuperEngine.runTestsInBranch;org.scalatest.SuperEngine.traverseSubNodes$1;scala.collection.immutable.List.foreach;org.scalatest.SuperEngine$$Lambda$7952.1547585176.apply;org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7951.1136212450.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTests$1;org.scalatest.wordspec.AnyWordSpec.runTest;org.scalatest.wordspec.AnyWordSpecLike.runTest$;org.scalatest.wordspec.AnyWordSpecLike.runTest;org.scalatest.SuperEngine.runTestImpl;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7967.812636372.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTest$1;org.scalatest.wordspec.AnyWordSpecLike.invokeWithFixture$1;org.scalatest.wordspec.AnyWordSpec.withFixture;org.scalatest.TestSuite.withFixture$;org.scalatest.TestSuite.withFixture;org.scalatest.wordspec.AnyWordSpecLike$$anon$3.apply;org.scalatest.Transformer.apply;org.scalatest.Transformer.apply;org.scalatest.OutcomeOf$.outcomeOf;org.scalatest.OutcomeOf.outcomeOf$;org.scalatest.OutcomeOf.outcomeOf;scala.runtime.java8.JFunction0$mcV$sp.apply;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$8582.1627656208.apply$mcV$sp;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$136;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.forAll;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll$;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll;org.scalatestplus.scalacheck.UnitCheckerAsserting$CheckerAssertingImpl.check;org.scalacheck.Test$.check;org.scalacheck.Platform$.runWorkers;org.scalacheck.Test$$$Lambda$8420.1048877523.apply;org.scalacheck.Test$.$anonfun$check$1$adapted;org.scalacheck.Test$.$anonfun$check$1;org.scalacheck.Test$.workerFun$1;org.scalacheck.PropFromFun.apply;org.scalacheck.Prop$$$Lambda$8392.1163160283.apply;org.scalacheck.Prop$.$anonfun$apply$1;org.scalacheck.Prop$$$Lambda$8391.1460249324.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$1;org.scalacheck.Prop$.result$1;org.scalacheck.PropFromFun.apply;org.scalacheck.Prop$$$Lambda$8392.1163160283.apply;org.scalacheck.Prop$.$anonfun$apply$1;org.scalacheck.Prop$$$Lambda$8391.1460249324.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$1;org.scalacheck.Prop$.result$1;org.scalacheck.Prop$.secure;org.scalacheck.Prop$$$Lambda$8437.980556189.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$2;org.scalacheck.Prop$$$Lambda$9326.169489320.apply;org.scalacheck.Prop$.$anonfun$forAll$3;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks$$Lambda$9322.742157558.apply;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.$anonfun$forAll$21;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.liftedTree13$1;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$10462.775835262.apply;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$137$adapted;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$137;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.check$6;com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.readBase64UrlAsBytes;com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.parseBase64;scoverage.Invoker$.invoked;scala.collection.AbstractMap.contains;scala.collection.MapOps.contains$;scala.collection.MapOps.contains;scala.collection.concurrent.TrieMap.get;scala.collection.concurrent.TrieMap.lookuphc;scala.collection.concurrent.INode.rec_lookup 63 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseChaitin::post_allocate_copy_removal() 63 +start_thread;java_start(Thread*);GCTaskThread::run();StealTask::do_it(GCTaskManager*, unsigned int);PSPromotionManager::drain_stacks_depth(bool);oopDesc* PSPromotionManager::copy_to_survivor_space(oopDesc*) 58 +start_thread;java_start(Thread*);GCTaskThread::run();StealTask::do_it(GCTaskManager*, unsigned int);PSPromotionManager::drain_stacks_depth(bool) 60 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Optimize();PhaseIdealLoop::build_and_optimize(bool, bool);PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&);PhaseIdealLoop::build_loop_late_post(Node*);PhaseIdealLoop::get_late_ctrl(Node*, Node*) 60 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseIFG::Compute_Effective_Degree();IndexSetIterator::advance_and_next() 53 +java.lang.Thread.run;java.util.concurrent.ThreadPoolExecutor$Worker.run;java.util.concurrent.ThreadPoolExecutor.runWorker;java.util.concurrent.FutureTask.run;java.util.concurrent.Executors$RunnableAdapter.call;java.util.concurrent.FutureTask.run;sbt.CompletionService$$anon$2.call;sbt.ConcurrentRestrictions$$anon$4$$Lambda$2176.1600330912.apply;sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1;sbt.Execute$$Lambda$2169.2034046523.apply;sbt.Execute.$anonfun$submit$1;sbt.Execute.work;sbt.internal.util.ErrorHandling$.wideConvert;sbt.Execute$$Lambda$2178.2095669414.apply;sbt.Execute.$anonfun$submit$2;sbt.std.Transform$$anon$4.work;sbt.std.Transform$$anon$3$$Lambda$2167.231900526.apply;sbt.std.Transform$$anon$3.$anonfun$apply$2;sbt.Tests$$$Lambda$7842.1208470949.apply;sbt.Tests$.$anonfun$toTask$1;sbt.TestFunction.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply;sbt.TestFramework$.sbt$TestFramework$$withContextLoader;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1$$Lambda$7850.1117892339.apply;sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1;sbt.TestRunner.run;sbt.TestRunner.runTest$1;org.scalatest.tools.Framework$ScalaTestTask.execute;org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite;org.scalatest.wordspec.AnyWordSpec.run;org.scalatest.wordspec.AnyWordSpecLike.run$;org.scalatest.wordspec.AnyWordSpecLike.run;org.scalatest.SuperEngine.runImpl;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7943.1056778999.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$run$1;org.scalatest.wordspec.AnyWordSpec.org$scalatest$wordspec$AnyWordSpecLike$$super$run;org.scalatest.Suite.run$;org.scalatest.Suite.run;org.scalatest.wordspec.AnyWordSpec.runTests;org.scalatest.wordspec.AnyWordSpecLike.runTests$;org.scalatest.wordspec.AnyWordSpecLike.runTests;org.scalatest.SuperEngine.runTestsImpl;org.scalatest.SuperEngine.runTestsInBranch;org.scalatest.SuperEngine.traverseSubNodes$1;scala.collection.immutable.List.foreach;org.scalatest.SuperEngine$$Lambda$7952.1547585176.apply;org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1;org.scalatest.SuperEngine.runTestsInBranch;org.scalatest.SuperEngine.traverseSubNodes$1;scala.collection.immutable.List.foreach;org.scalatest.SuperEngine$$Lambda$7952.1547585176.apply;org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7951.1136212450.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTests$1;org.scalatest.wordspec.AnyWordSpec.runTest;org.scalatest.wordspec.AnyWordSpecLike.runTest$;org.scalatest.wordspec.AnyWordSpecLike.runTest;org.scalatest.SuperEngine.runTestImpl;org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7967.812636372.apply;org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTest$1;org.scalatest.wordspec.AnyWordSpecLike.invokeWithFixture$1;org.scalatest.wordspec.AnyWordSpec.withFixture;org.scalatest.TestSuite.withFixture$;org.scalatest.TestSuite.withFixture;org.scalatest.wordspec.AnyWordSpecLike$$anon$3.apply;org.scalatest.Transformer.apply;org.scalatest.Transformer.apply;org.scalatest.OutcomeOf$.outcomeOf;org.scalatest.OutcomeOf.outcomeOf$;org.scalatest.OutcomeOf.outcomeOf;scala.runtime.java8.JFunction0$mcV$sp.apply;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$8582.1627656208.apply$mcV$sp;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$136;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.forAll;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll$;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll;org.scalatestplus.scalacheck.UnitCheckerAsserting$CheckerAssertingImpl.check;org.scalacheck.Test$.check;org.scalacheck.Platform$.runWorkers;org.scalacheck.Test$$$Lambda$8420.1048877523.apply;org.scalacheck.Test$.$anonfun$check$1$adapted;org.scalacheck.Test$.$anonfun$check$1;org.scalacheck.Test$.workerFun$1;org.scalacheck.PropFromFun.apply;org.scalacheck.Prop$$$Lambda$8392.1163160283.apply;org.scalacheck.Prop$.$anonfun$apply$1;org.scalacheck.Prop$$$Lambda$8391.1460249324.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$1;org.scalacheck.Prop$.result$1;org.scalacheck.PropFromFun.apply;org.scalacheck.Prop$$$Lambda$8392.1163160283.apply;org.scalacheck.Prop$.$anonfun$apply$1;org.scalacheck.Prop$$$Lambda$8391.1460249324.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$1;org.scalacheck.Prop$.result$1;org.scalacheck.Prop$.secure;org.scalacheck.Prop$$$Lambda$8437.980556189.apply;org.scalacheck.Prop$.$anonfun$forAllShrink$2;org.scalacheck.Prop$$$Lambda$9326.169489320.apply;org.scalacheck.Prop$.$anonfun$forAll$3;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks$$Lambda$9322.742157558.apply;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.$anonfun$forAll$21;org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.liftedTree13$1;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$10462.775835262.apply;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$137$adapted;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$137;com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.check$6;com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.readBase64AsBytes;com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.parseBase64;scoverage.Invoker$.invoked;scala.collection.AbstractMap.contains;scala.collection.MapOps.contains$;scala.collection.MapOps.contains;scala.collection.concurrent.TrieMap.get;scala.collection.concurrent.TrieMap.lookuphc;scala.collection.concurrent.INode.rec_lookup 52 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Optimize();PhaseIdealLoop::build_and_optimize(bool, bool);PhaseIdealLoop::build_loop_tree() 50 +start_thread;java_start(Thread*);JavaThread::run();JavaThread::thread_main_inner();CompileBroker::compiler_thread_loop();CompileBroker::invoke_compiler_on_method(CompileTask*);C2Compiler::compile_method(ciEnv*, ciMethod*, int);Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool);Compile::Code_Gen();PhaseChaitin::Register_Allocate();PhaseIFG::SquareUp();IndexSetIterator::advance_and_next() 48 diff --git a/tests/data/flamegraph/colors/async-profiler-java.svg b/tests/data/flamegraph/colors/async-profiler-java.svg new file mode 100644 index 00000000..2ce86692 --- /dev/null +++ b/tests/data/flamegraph/colors/async-profiler-java.svg @@ -0,0 +1,1214 @@ + + + + + + + + + + + + + Flame Graph + + Reset Zoom + Search + + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$8575.1705890900.apply$mcV$sp (69 samples, 2.10%) + + c.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$124 (69 samples, 2.10%) + + c.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.forAll (69 samples, 2.10%) + + c.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll$ (69 samples, 2.10%) + + o.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll (69 samples, 2.10%) + + o.. + + + org.scalatestplus.scalacheck.UnitCheckerAsserting$CheckerAssertingImpl.check (69 samples, 2.10%) + + o.. + + + org.scalacheck.Test$.check (69 samples, 2.10%) + + o.. + + + org.scalacheck.Platform$.runWorkers (69 samples, 2.10%) + + o.. + + + org.scalacheck.Test$$$Lambda$8420.1048877523.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Test$.$anonfun$check$1$adapted (69 samples, 2.10%) + + o.. + + + org.scalacheck.Test$.$anonfun$check$1 (69 samples, 2.10%) + + o.. + + + org.scalacheck.Test$.workerFun$1 (69 samples, 2.10%) + + o.. + + + org.scalacheck.PropFromFun.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$$$Lambda$8392.1163160283.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.$anonfun$apply$1 (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$$$Lambda$8391.1460249324.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.$anonfun$forAllShrink$1 (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.result$1 (69 samples, 2.10%) + + o.. + + + org.scalacheck.PropFromFun.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$$$Lambda$8392.1163160283.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.$anonfun$apply$1 (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$$$Lambda$8391.1460249324.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.$anonfun$forAllShrink$1 (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.result$1 (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.secure (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$$$Lambda$8437.980556189.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.$anonfun$forAllShrink$2 (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$$$Lambda$9326.169489320.apply (69 samples, 2.10%) + + o.. + + + org.scalacheck.Prop$.$anonfun$forAll$3 (69 samples, 2.10%) + + o.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks$$Lambda$9322.742157558.apply (69 samples, 2.10%) + + o.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.$anonfun$forAll$21 (69 samples, 2.10%) + + o.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.liftedTree13$1 (69 samples, 2.10%) + + o.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$9984.1092558103.apply (69 samples, 2.10%) + + c.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$128$adapted (69 samples, 2.10%) + + c.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$128 (69 samples, 2.10%) + + c.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.check$5 (69 samples, 2.10%) + + c.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.readBase16AsBytes (69 samples, 2.10%) + + c.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.parseBase16 (69 samples, 2.10%) + + c.. + + + scoverage.Invoker$.invoked (69 samples, 2.10%) + + s.. + + + scala.collection.AbstractMap.contains (69 samples, 2.10%) + + s.. + + + scala.collection.MapOps.contains$ (69 samples, 2.10%) + + s.. + + + scala.collection.MapOps.contains (69 samples, 2.10%) + + s.. + + + scala.collection.concurrent.TrieMap.get (69 samples, 2.10%) + + s.. + + + scala.collection.concurrent.TrieMap.lookuphc (69 samples, 2.10%) + + s.. + + + scala.collection.concurrent.INode.rec_lookup (69 samples, 2.10%) + + s.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.readBase64AsBytes (52 samples, 1.59%) + + + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.parseBase64 (52 samples, 1.59%) + + + + + scoverage.Invoker$.invoked (52 samples, 1.59%) + + + + + scala.collection.AbstractMap.contains (52 samples, 1.59%) + + + + + scala.collection.MapOps.contains$ (52 samples, 1.59%) + + + + + scala.collection.MapOps.contains (52 samples, 1.59%) + + + + + scala.collection.concurrent.TrieMap.get (52 samples, 1.59%) + + + + + scala.collection.concurrent.TrieMap.lookuphc (52 samples, 1.59%) + + + + + scala.collection.concurrent.INode.rec_lookup (52 samples, 1.59%) + + + + + java.lang.Thread.run (184 samples, 5.61%) + + java.la.. + + + java.util.concurrent.ThreadPoolExecutor$Worker.run (184 samples, 5.61%) + + java.ut.. + + + java.util.concurrent.ThreadPoolExecutor.runWorker (184 samples, 5.61%) + + java.ut.. + + + java.util.concurrent.FutureTask.run (184 samples, 5.61%) + + java.ut.. + + + java.util.concurrent.Executors$RunnableAdapter.call (184 samples, 5.61%) + + java.ut.. + + + java.util.concurrent.FutureTask.run (184 samples, 5.61%) + + java.ut.. + + + sbt.CompletionService$$anon$2.call (184 samples, 5.61%) + + sbt.Com.. + + + sbt.ConcurrentRestrictions$$anon$4$$Lambda$2176.1600330912.apply (184 samples, 5.61%) + + sbt.Con.. + + + sbt.ConcurrentRestrictions$$anon$4.$anonfun$submitValid$1 (184 samples, 5.61%) + + sbt.Con.. + + + sbt.Execute$$Lambda$2169.2034046523.apply (184 samples, 5.61%) + + sbt.Exe.. + + + sbt.Execute.$anonfun$submit$1 (184 samples, 5.61%) + + sbt.Exe.. + + + sbt.Execute.work (184 samples, 5.61%) + + sbt.Exe.. + + + sbt.internal.util.ErrorHandling$.wideConvert (184 samples, 5.61%) + + sbt.int.. + + + sbt.Execute$$Lambda$2178.2095669414.apply (184 samples, 5.61%) + + sbt.Exe.. + + + sbt.Execute.$anonfun$submit$2 (184 samples, 5.61%) + + sbt.Exe.. + + + sbt.std.Transform$$anon$4.work (184 samples, 5.61%) + + sbt.std.. + + + sbt.std.Transform$$anon$3$$Lambda$2167.231900526.apply (184 samples, 5.61%) + + sbt.std.. + + + sbt.std.Transform$$anon$3.$anonfun$apply$2 (184 samples, 5.61%) + + sbt.std.. + + + sbt.Tests$$$Lambda$7842.1208470949.apply (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.Tests$.$anonfun$toTask$1 (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.TestFunction.apply (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.apply (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.TestFramework$.sbt$TestFramework$$withContextLoader (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1$$Lambda$7850.1117892339.apply (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.TestFramework$$anon$3$$anonfun$$lessinit$greater$1.$anonfun$apply$1 (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.TestRunner.run (184 samples, 5.61%) + + sbt.Tes.. + + + sbt.TestRunner.runTest$1 (184 samples, 5.61%) + + sbt.Tes.. + + + org.scalatest.tools.Framework$ScalaTestTask.execute (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.tools.Framework.org$scalatest$tools$Framework$$runSuite (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpec.run (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.run$ (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.run (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.runImpl (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7943.1056778999.apply (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.$anonfun$run$1 (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpec.org$scalatest$wordspec$AnyWordSpecLike$$super$run (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.Suite.run$ (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.Suite.run (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpec.runTests (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.runTests$ (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.runTests (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.runTestsImpl (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.runTestsInBranch (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.traverseSubNodes$1 (184 samples, 5.61%) + + org.sca.. + + + scala.collection.immutable.List.foreach (184 samples, 5.61%) + + scala.c.. + + + org.scalatest.SuperEngine$$Lambda$7952.1547585176.apply (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1 (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.runTestsInBranch (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.traverseSubNodes$1 (184 samples, 5.61%) + + org.sca.. + + + scala.collection.immutable.List.foreach (184 samples, 5.61%) + + scala.c.. + + + org.scalatest.SuperEngine$$Lambda$7952.1547585176.apply (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.$anonfun$runTestsInBranch$1 (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7951.1136212450.apply (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTests$1 (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpec.runTest (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.runTest$ (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.runTest (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.SuperEngine.runTestImpl (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike$$Lambda$7967.812636372.apply (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.$anonfun$runTest$1 (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike.invokeWithFixture$1 (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpec.withFixture (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.TestSuite.withFixture$ (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.TestSuite.withFixture (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.wordspec.AnyWordSpecLike$$anon$3.apply (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.Transformer.apply (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.Transformer.apply (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.OutcomeOf$.outcomeOf (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.OutcomeOf.outcomeOf$ (184 samples, 5.61%) + + org.sca.. + + + org.scalatest.OutcomeOf.outcomeOf (184 samples, 5.61%) + + org.sca.. + + + scala.runtime.java8.JFunction0$mcV$sp.apply (184 samples, 5.61%) + + scala.r.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$8582.1627656208.apply$mcV$sp (115 samples, 3.51%) + + com.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$136 (115 samples, 3.51%) + + com.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.forAll (115 samples, 3.51%) + + com.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll$ (115 samples, 3.51%) + + org.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.forAll (115 samples, 3.51%) + + org.. + + + org.scalatestplus.scalacheck.UnitCheckerAsserting$CheckerAssertingImpl.check (115 samples, 3.51%) + + org.. + + + org.scalacheck.Test$.check (115 samples, 3.51%) + + org.. + + + org.scalacheck.Platform$.runWorkers (115 samples, 3.51%) + + org.. + + + org.scalacheck.Test$$$Lambda$8420.1048877523.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Test$.$anonfun$check$1$adapted (115 samples, 3.51%) + + org.. + + + org.scalacheck.Test$.$anonfun$check$1 (115 samples, 3.51%) + + org.. + + + org.scalacheck.Test$.workerFun$1 (115 samples, 3.51%) + + org.. + + + org.scalacheck.PropFromFun.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$$$Lambda$8392.1163160283.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.$anonfun$apply$1 (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$$$Lambda$8391.1460249324.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.$anonfun$forAllShrink$1 (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.result$1 (115 samples, 3.51%) + + org.. + + + org.scalacheck.PropFromFun.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$$$Lambda$8392.1163160283.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.$anonfun$apply$1 (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$$$Lambda$8391.1460249324.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.$anonfun$forAllShrink$1 (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.result$1 (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.secure (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$$$Lambda$8437.980556189.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.$anonfun$forAllShrink$2 (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$$$Lambda$9326.169489320.apply (115 samples, 3.51%) + + org.. + + + org.scalacheck.Prop$.$anonfun$forAll$3 (115 samples, 3.51%) + + org.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks$$Lambda$9322.742157558.apply (115 samples, 3.51%) + + org.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.$anonfun$forAll$21 (115 samples, 3.51%) + + org.. + + + org.scalatestplus.scalacheck.ScalaCheckDrivenPropertyChecks.liftedTree13$1 (115 samples, 3.51%) + + org.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec$$Lambda$10462.775835262.apply (115 samples, 3.51%) + + com.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$137$adapted (115 samples, 3.51%) + + com.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.$anonfun$new$137 (115 samples, 3.51%) + + com.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReaderSpec.check$6 (115 samples, 3.51%) + + com.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.readBase64UrlAsBytes (63 samples, 1.92%) + + c.. + + + com.github.plokhotnyuk.jsoniter_scala.core.JsonReader.parseBase64 (63 samples, 1.92%) + + c.. + + + scoverage.Invoker$.invoked (63 samples, 1.92%) + + s.. + + + scala.collection.AbstractMap.contains (63 samples, 1.92%) + + s.. + + + scala.collection.MapOps.contains$ (63 samples, 1.92%) + + s.. + + + scala.collection.MapOps.contains (63 samples, 1.92%) + + s.. + + + scala.collection.concurrent.TrieMap.get (63 samples, 1.92%) + + s.. + + + scala.collection.concurrent.TrieMap.lookuphc (63 samples, 1.92%) + + s.. + + + scala.collection.concurrent.INode.rec_lookup (63 samples, 1.92%) + + s.. + + + DrainStacksCompactionTask::do_it(GCTaskManager*, unsigned int) (105 samples, 3.20%) + + Dra.. + + + ParCompactionManager::drain_region_stacks() (105 samples, 3.20%) + + Par.. + + + PSParallelCompact::fill_region(ParCompactionManager*, unsigned long) (105 samples, 3.20%) + + PSP.. + + + ParMarkBitMap::iterate(ParMarkBitMapClosure*, unsigned long, unsigned long) const (105 samples, 3.20%) + + Par.. + + + MoveAndUpdateClosure::do_addr(HeapWord*, unsigned long) (105 samples, 3.20%) + + Mov.. + + + InstanceKlass::oop_update_pointers(ParCompactionManager*, oopDesc*) (105 samples, 3.20%) + + Ins.. + + + ParallelCompactData::calc_new_pointer(HeapWord*) (105 samples, 3.20%) + + Par.. + + + ParMarkBitMap::live_words_in_range(HeapWord*, oopDesc*) const (105 samples, 3.20%) + + Par.. + + + OldToYoungRootsTask::do_it(GCTaskManager*, unsigned int) (490 samples, 14.94%) + + OldToYoungRootsTask::do.. + + + CardTableExtension::scavenge_contents_parallel(ObjectStartArray*, MutableSpace*, HeapWord*, PSPromotionManager*, unsigned int, unsigned int) (490 samples, 14.94%) + + CardTableExtension::sca.. + + + PSPromotionManager::drain_stacks_depth(bool) (490 samples, 14.94%) + + PSPromotionManager::dra.. + + + oopDesc* PSPromotionManager::copy_to_survivor_space<false>(oopDesc*) (358 samples, 10.92%) + + oopDesc* PSPromo.. + + + InstanceKlass::oop_push_contents(PSPromotionManager*, oopDesc*) (161 samples, 4.91%) + + Instan.. + + + GCTaskThread::run() (793 samples, 24.18%) + + GCTaskThread::run() + + + StealTask::do_it(GCTaskManager*, unsigned int) (198 samples, 6.04%) + + StealTas.. + + + PSPromotionManager::drain_stacks_depth(bool) (198 samples, 6.04%) + + PSPromot.. + + + oopDesc* PSPromotionManager::copy_to_survivor_space<false>(oopDesc*) (138 samples, 4.21%) + + oopDe.. + + + InstanceKlass::oop_push_contents(PSPromotionManager*, oopDesc*) (80 samples, 2.44%) + + In.. + + + Matcher::match() (109 samples, 3.32%) + + Mat.. + + + Matcher::xform(Node*, int) (109 samples, 3.32%) + + Mat.. + + + Arena::contains(void const*) const (109 samples, 3.32%) + + Are.. + + + PhaseAggressiveCoalesce::insert_copies(Matcher&) (86 samples, 2.62%) + + Ph.. + + + PhaseChaitin::Split(unsigned int, ResourceArea*) (213 samples, 6.50%) + + PhaseChai.. + + + PhaseChaitin::build_ifg_physical(ResourceArea*) (305 samples, 9.30%) + + PhaseChaitin:.. + + + PhaseChaitin::interfere_with_live(unsigned int, IndexSet*) (183 samples, 5.58%) + + PhaseCh.. + + + IndexSetIterator::advance_and_next() (66 samples, 2.01%) + + I.. + + + PhaseChaitin::gather_lrg_masks(bool) (95 samples, 2.90%) + + Ph.. + + + PhaseChaitin::post_allocate_copy_removal() (139 samples, 4.24%) + + Phase.. + + + PhaseChaitin::elide_copy(Node*, int, Block*, Node_List&, Node_List&, bool) (76 samples, 2.32%) + + P.. + + + PhaseCoalesce::coalesce_driver() (92 samples, 2.81%) + + Ph.. + + + PhaseConservativeCoalesce::coalesce(Block*) (92 samples, 2.81%) + + Ph.. + + + PhaseConservativeCoalesce::update_ifg(unsigned int, unsigned int, IndexSet*, IndexSet*) (92 samples, 2.81%) + + Ph.. + + + PhaseIFG::Compute_Effective_Degree() (53 samples, 1.62%) + + + + + IndexSetIterator::advance_and_next() (53 samples, 1.62%) + + + + + PhaseIFG::SquareUp() (48 samples, 1.46%) + + + + + IndexSetIterator::advance_and_next() (48 samples, 1.46%) + + + + + Compile::Code_Gen() (1,250 samples, 38.12%) + + Compile::Code_Gen() + + + PhaseChaitin::Register_Allocate() (1,141 samples, 34.80%) + + PhaseChaitin::Register_Allocate() + + + PhaseLive::compute(unsigned int) (110 samples, 3.35%) + + Pha.. + + + PhaseIdealLoop::Dominators() (67 samples, 2.04%) + + P.. + + + PhaseIdealLoop::build_loop_early(VectorSet&, Node_List&, Node_Stack&) (108 samples, 3.29%) + + Pha.. + + + PhaseIdealLoop::build_loop_late(VectorSet&, Node_List&, Node_Stack&) (655 samples, 19.98%) + + PhaseIdealLoop::build_loop_late.. + + + PhaseIdealLoop::build_loop_late_post(Node*) (556 samples, 16.96%) + + PhaseIdealLoop::build_loop.. + + + PhaseIdealLoop::get_late_ctrl(Node*, Node*) (556 samples, 16.96%) + + PhaseIdealLoop::get_late_c.. + + + PhaseIdealLoop::is_dominator(Node*, Node*) [clone .part.114] (496 samples, 15.13%) + + PhaseIdealLoop::is_domi.. + + + C2Compiler::compile_method(ciEnv*, ciMethod*, int) (2,130 samples, 64.96%) + + C2Compiler::compile_method(ciEnv*, ciMethod*, int) + + + Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool) (2,130 samples, 64.96%) + + Compile::Compile(ciEnv*, C2Compiler*, ciMethod*, int, bool, bool, bool) + + + Compile::Optimize() (880 samples, 26.84%) + + Compile::Optimize() + + + PhaseIdealLoop::build_and_optimize(bool, bool) (880 samples, 26.84%) + + PhaseIdealLoop::build_and_optimize(bool, bo.. + + + PhaseIdealLoop::build_loop_tree() (50 samples, 1.52%) + + + + + all (3,279 samples, 100%) + + + + + start_thread (3,095 samples, 94.39%) + + start_thread + + + java_start(Thread*) (3,095 samples, 94.39%) + + java_start(Thread*) + + + JavaThread::run() (2,302 samples, 70.20%) + + JavaThread::run() + + + JavaThread::thread_main_inner() (2,302 samples, 70.20%) + + JavaThread::thread_main_inner() + + + CompileBroker::compiler_thread_loop() (2,302 samples, 70.20%) + + CompileBroker::compiler_thread_loop() + + + CompileBroker::invoke_compiler_on_method(CompileTask*) (2,302 samples, 70.20%) + + CompileBroker::invoke_compiler_on_method(CompileTask*) + + + Compiler::compile_method(ciEnv*, ciMethod*, int) (172 samples, 5.25%) + + Compil.. + + + Compilation::Compilation(AbstractCompiler*, ciEnv*, ciMethod*, int, BufferBlob*) (172 samples, 5.25%) + + Compil.. + + + Compilation::compile_method() (172 samples, 5.25%) + + Compil.. + + + ciEnv::register_method(ciMethod*, int, CodeOffsets*, int, CodeBuffer*, int, OopMapSet*, ExceptionHandlerTable*, ImplicitExceptionTable*, AbstractCompiler*, int, bool, bool, RTMState) (172 samples, 5.25%) + + ciEnv:.. + + + nmethod::new_nmethod(methodHandle, int, int, CodeOffsets*, int, DebugInformationRecorder*, Dependencies*, CodeBuffer*, int, OopMapSet*, ExceptionHandlerTable*, ImplicitExceptionTable*, AbstractCompiler*, int) (172 samples, 5.25%) + + nmetho.. + + + CodeCache::allocate(int, bool) (172 samples, 5.25%) + + CodeCa.. + + + CodeHeap::allocate(unsigned long, bool) (172 samples, 5.25%) + + CodeHe.. + + + \ No newline at end of file diff --git a/tests/flamegraph.rs b/tests/flamegraph.rs index 13a00f20..1352dbcd 100644 --- a/tests/flamegraph.rs +++ b/tests/flamegraph.rs @@ -134,6 +134,17 @@ fn flamegraph_colors_java() { test_flamegraph(input_file, expected_result_file, options).unwrap(); } +#[test] +fn flamegraph_colors_java_async_profile() { + let input_file = "./tests/data/flamegraph/colors/async-profiler-collapsed-part.txt"; + let expected_result_file = "./tests/data/flamegraph/colors/async-profiler-java.svg"; + + let mut options = flamegraph::Options::default(); + options.colors = Palette::from_str("java").unwrap(); + + test_flamegraph(input_file, expected_result_file, options).unwrap(); +} + #[test] fn flamegraph_colors_js() { let input_file = "./flamegraph/test/results/perf-js-stacks-01-collapsed-all.txt";