/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust Performance Tests Ċ Ċ import Ġcom . intellij . openapi . util . Dis poser Ċ import Ġcom . sun . management . Hot Spot Diagnostic MX Bean Ċ import Ġorg . rust . lang . core . crate . crate Graph Ċ import Ġorg . rust . lang . core . macros . Macro Expansion Scope Ċ import Ġorg . rust . lang . core . macros . macro Expansion Manager Ċ import Ġorg . rust . lang . core . resolve 2 . Def Map Service Ċ import Ġorg . rust . lang . core . resolve 2 . def Map Service Ċ import Ġjava . lang . management . Management Factory Ċ Ċ private Ġconst Ġval ĠD UMP _ HEAP : ĠBoolean Ġ= Ġfalse Ċ Ċ class ĠRs Build Def Map Test Ġ: ĠRs Real Project TestBase () Ġ{ ĊĊĠĠĠ Ġfun Ġ` test Ġbuild Ġrustc `() Ġ= Ġdo Test ( R UST C ) ĊĊĠĠĠ Ġfun Ġ` test Ġbuild ĠC argo `() Ġ= Ġdo Test ( C ARG O ) ĊĠĠĠ Ġfun Ġ` test Ġbuild Ġmysql _ async `() Ġ= Ġdo Test ( MYSQL _ ASYNC ) ĊĠĠĠ Ġfun Ġ` test Ġbuild Ġtok io `() Ġ= Ġdo Test ( TO K IO ) ĊĠĠĠ Ġfun Ġ` test Ġbuild Ġa meth yst `() Ġ= Ġdo Test ( AME TH Y ST ) ĊĠĠĠ Ġfun Ġ` test Ġbuild Ġcl ap `() Ġ= Ġdo Test ( CL AP ) ĊĠĠĠ Ġfun Ġ` test Ġbuild Ġdie sel `() Ġ= Ġdo Test ( DIE SEL ) ĊĠĠĠ Ġfun Ġ` test Ġbuild Ġrust _ analyzer `() Ġ= Ġdo Test ( R UST _ ANAL YZ ER ) ĊĠĠĠ Ġfun Ġ` test Ġbuild Ġxi _ editor `() Ġ= Ġdo Test ( XI _ EDITOR ) ĊĠĠĠ Ġfun Ġ` test Ġbuild Ġj uni per `() Ġ= Ġdo Test ( J UN IP ER ) ĊĊĠĠĠ Ġprivate Ġfun Ġdo Test ( info : ĠReal Project Info ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDef Map Service . set Use New Resolve ( project , Ġtest Root Disposable ) ĊĠĠĠĠĠĠĠ Ġval Ġdis posable Ġ= Ġproject . macro Expansion Manager . set UnitTest Expansion Mode And Directory ( Macro Expansion Scope . ALL , Ġname ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Real Project ( info ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdef Maps Ġ= Ġproject . crate Graph . top Sorted Cr ates . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġit . id Ġ?: Ġreturn @ map NotNull Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . def Map Service . get Def Map Holder ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( DUMP _ HEAP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdump Heap ( info . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck ( def Maps . isNotEmpty ()) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDis poser . dispose ( dis posable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġdump Heap ( name : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġmx Bean Ġ= ĠManagement Factory . new Platform MX Bean Proxy ( Management Factory . get Platform MBean Server (), Ġ" com . sun . management : type = Hot Spot Diagnostic ", ĠHot Spot Diagnostic MX Bean :: class . java ) ĊĠĠĠ Ġmx Bean . dump Heap ("../ dumps /$ name -${ System . currentTimeMillis ()}. h prof ", Ġtrue ) Ċ } Ċ