Precise Memory Leak Detection for Java Software Using Container Profiling

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "Precise Memory Leak Detection for Java Software Using Container Profiling"

Transcription

1 Distinguishd Papr Prcis Mmory Lak Dtction for Java Softwar Using Containr Profiling Guoqing Xu Atanas Rountv Dpartmnt of Computr Scinc and Enginring Ohio Stat Univrsity ABSTRACT A mmory lak in a Java program occurs whn objct rfrncs that ar no longr ndd ar unncssarily maintaind. Such laks ar difficult to undrstand bcaus static analyss typically cannot prcisly idntify ths rdundant rfrncs, and xisting dynamic analyss for lak dtction track and rport fin-graind information about individual objcts, producing rsults that ar usually hard to intrprt and lack prcision. W introduc a novl containr-basd hap-tracking tchniqu, basd on th obsrvation that many mmory laks in Java programs occur du to containrs that kp rfrncs to unusd data ntris. Th novlty of th dscribd work is two-fold: (1) instad of tracking arbitrary objcts and finding laks by analyzing rfrncs to unusd objcts, th tchniqu tracks only containrs and dirctly idntifis th sourc of th lak, and (2) th approach computs a confidnc valu for ach containr basd on a combination of its mmory consumption and its lmnts stalnss (tim sinc last rtrival), whil prvious approachs do not considr such combind mtrics. Our xprimntal rsults show that th rports gnratd by th proposd tchniqu can b vry prcis: for two bugs rportd by Sun and for a known bug in SPECjbb, th top containrs in th rports includ th containrs that lak mmory. Catgoris and Subjct Dscriptors D.2.4 [Softwar Enginring]: Softwar/Program Vrification Rliability; D.2.5 [Softwar Enginring]: Tsting and Dbugging Dbugging aids Gnral Trms Rliability, Prformanc, Masurmnt, Exprimntation Kywords Mmory laks, containr profiling, laking confidnc This matrial is basd upon work supportd by th National Scinc Foundation undr grant CCF Prmission to mak digital or hard copis of all or part of this work for prsonal or classroom us is grantd without f providd that copis ar not mad or distributd for profit or commrcial advantag and that copis bar this notic and th full citation on th first pag. To copy othrwis, to rpublish, to post on srvrs or to rdistribut to lists, rquirs prior spcific prmission and/or a f. ICSE 08, May 10 18, 2008, Lipzig, Grmany. Copyright 2008 ACM /08/05...$ INTRODUCTION Whil garbag-collctd languags can rduc mmoryrlatd bugs such as dangling pointrs, programs writtn in ths languags can still suffr from mmory laks causd by kping rfrncs to uslss objcts. Laks dgrad runtim prformanc and significant laks vn caus th program to run out of mmory and crash. In addition, mmory lak bugs ar notoriously difficult to find. Static analyss can b usd to attmpt th dtction of such laks. Howvr, this dtction is limitd by th lack of scalabl and prcis rfrnc/hap modling, as wll as by rflction, multipl thrads, scalability for larg programs, tc. Thus, in practic, idntification of mmory laks is mor oftn attmptd with dynamic analyss. Existing dynamic approachs for hap diagnosis hav srious limitations. Commrcial tools such as JProfilr [13] and JProb [12] wr dvlopd to hlp undrstand typs, instancs, and mmory usag. Howvr, this information is insufficint for programmrs to locat a bug. For xampl, in most cass, th fact that typ java.util.hashmap$entry has th highst numbr of instancs tlls th programmr nothing about th hash maps that hold ths ntris. Rsarch tools for mmory lak dtction typically focus on hap diffrncing [3, 4, 14] and fin-graind objct tracking [1, 8, 7, 20]. Of xisting dynamic tchniqus, LakBot [17], Cork [14], and Sligh [1] rprsnt th stat of th art. Both Lak- Bot and Cork us hap growth as a huristic, which could rsult in fals positivs (growing typs ar not ncssarily tru laks). Sligh, on th othr hand, uss stalnss (tim sinc last us) to find laks. This approach could lad to imprcision as wll. As an xampl, a fram in a Java Swing program cannot b tratd as a lak, although it may nvr b usd aftr it is cratd. In addition, largr objcts that ar lss stal may hav gratr contribution towards th lak. For xampl, mor attntion should b paid to a big containr that is not usd for a whil than to a nvr-usd string. Furthrmor, ths xisting tools follow a traditional from-symptom-to-caus approach that starts from tracking all objcts and finds thos that could potntially b uslss (symptom). It thn tris to find th laking data structur (caus) by analyzing dirct and transitiv rfrncs to ths uslss objcts. Howvr, th complx run-tim rfrnc rlationships among objcts in modrn Java softwar significantly incrass th difficulty of locating th sourc of th lak, which could lad to imprcis lak rports. It bcoms vn hardr to find th caus of a lak if thr ar multipl data structurs that ar contributing to th problm. For xampl, as rportd in [14], it took th authors a 151

2 B-Tr Transaction-containr HashMap ArrayList HashSt Obj... Obj Obj... Obj Obj... Figur 1: Containr hirarchy in Java. significant amount of tim to find th sourcs of laks aftr thy xamind th rports gnratd by Cork. Our proposal. W propos a novl tchniqu for Java that dtcts mmory laks using containr profiling. Arguably, misus of (usr-dfind or Java built-in) containrs is a major sourc of mmory lak bugs in ral-world Java applications. For xampl, many of th mmory lak bugs rportd in th Sun bug rpository [23] wr causd, dirctly or indirctly, by inappropriat us of containrs. Th ky ida bhind th proposd tchniqu is to track oprations on containrs rathr than on arbitrary objcts, and to rport containrs that ar most likly to lak. Th major diffrnc btwn our tchniqu and th from-symptom-to-caus diagnosis approach is that w start by suspcting that all containrs ar laking, and thn us th symptoms to rul out most of thm. Hnc, w avoid th procss of symptomto-caus sarching that can lad to imprcision and rducd programmr productivity. Figur 1 shows th containr hirarchy typically usd in a Java program: usr-dfind containrs in th top layr us containrs providd by th Java collction framwork (th middl layr), which vntually stor data in arrays (th bottom layr). Th focus of our tchniqu ar containrs in th first and scond layrs, bcaus in most cass ths containrs ar dirctly manipulatd by programmrs and hnc mor likly to b sourcs of laks. Arrays ar not trackd; compltmntary approachs such as [21] can potntially b usd to dtct laks dirctly causd by arrays. Our tchniqu rquirs ahad-of-tim modling of containrs: usrs nd to build a simpl glu layr that maps mthods of ach containr typ to primitiv oprations (.g., ADD, GET, and REMOVE). An automatd tool instrumnts th application cod and uss th usr annotations to connct invocations of containr mthods with our run-tim profiling libraris. To writ this glu cod, usrs hav to b familiar with th containr typs usd in th program. This dos not incras th burdn on th programmrs: whn using xisting lak dtction tools [17, 1, 14], programmrs hav to inspct th cod to gain similar knowldg so that thy can intrprt th tool rports. Using our approach rquirs larning such knowldg in advanc. Of cours, th tool mbds pr-dfind modls for containrs from th Java collction framwork, and thrfor programmrs nd to modl only usr-dfind containrs. Running th tool vn without modling of usr-dfind containrs can still provid usful insights for finding laks: in our rports, top-lvl Java library containrs (i.., th scond layr in Figur 1) can dirct on s attntion to thir dirct or transitiv ownrs, which ar likly to b usr-dfind containrs (i.., th first layr in Figur 1) that ar th actual causs of bugs. Obj W comput a huristic laking confidnc valu for ach containr, basd on a combination of its mmory consumption and th stalnss of its data lmnts; this could yild mor accurat rsults compard to xisting approachs [17, 1, 14]. For ach containr, w also rank call sits in th sourc cod, basd on th avrag stalnss of th lmnts rtrivd or addd at ths sits. This containr ranking and th rlatd call sit ranking can assist a programmr to quickly idntify th sourc of th mmory lak. Th concptual modl usd to comput ths valus and our implmntation of th tchniqu for Java ar prsntd in Sction 2 and Sction 3, rspctivly. Our tool achivd high prcision in rporting causs for two mmory lak bugs from th Sun bug databas [23] and a known mmory lak bug in SPECjbb [22] in fact, th top containrs in th rports includd th ons that lakd mmory. In addition, an valuation of th run-tim prformanc showd accptabl ovrhad for practical us. Contributions. Th main contributions of this work ar: A dynamic analysis that computs a confidnc valu for ach containr, providing a basis for idntification and ranking of likly-laking containrs A mmory lak dtction tchniqu for Java basd on this confidnc analysis A tool that implmnts th proposd tchniqu An xprimntal study of lak idntification and runtim prformanc, showing that our tchniqu can prcisly dtct mmory lak bugs with practical ovrhad 2. LEAK CONFIDENCE ANALYSIS This sction prsnts a confidnc analysis that computs laking confidnc valus for trackd containrs. Th goal of th analysis is to quantify th contribution of a containr to mmory laks. A containr is an abstract data typ (ADT) with a st of data lmnts and thr basic oprations ADD, GET, and REMOVE. W us σ n to dnot a containr σ with n lmnts. Th simplifid ffcts of th oprations ar as follows (o dnots a containr lmnt): ADD(σ n,o):void σpr n σpost, n+1 o/ σpr, n o σ n+1 post GET(σ n ):o σpr n = σpost, n o σpr n REMOVE(σ n,o):void σpr n σpost, n 1 o σpr, n o/ σ n 1 post W trat all (Java library and usr-dfind) containrs as implmntations of th containr ADT. Tracking oprations on a containr rquirs usr-supplid annotations to bridg th gap btwn mthods dfind in th Java implmntations and th thr basic ADT oprations. W hav alrady dfind such annotations for th containr typs from th standard Java libraris. During th xcution of a program, lt th program s mmory consumption at a timstamp τ i b m i. In cass whn τ i is a momnt immdiatly aftr garbag collction (w will rfr to such momnts as gc-vnts), it will b dnotd by τ gc i and its mmory consumption will b dnotd by m gc i. A program writtn in a garbag-collctd languag has a mmory lak symptom within a tim rgion [τ s, τ ] if (1) for vry gc-vnt τ gc i in th rgion, m s m gc i m, and (2) in this rgion, thr xists a subsqunc ss =(τ gc 1,τgc 2,...,τgc n ) of gc-vnts, with n 2, such that τ gc j <τ gc j+1 and mgc j <m gc j+1 for j =1,...,n 1. Th priod [τ s, τ ] will b rfrrd to as a laking rgion. 152

3 This dfinition hlps to idntify th appropriat tim rgion to analyz, bcaus most programs do not lak from th start of xcution. End momnt τ can b spcifid by tool usrs as an analysis paramtr, and can b diffrnt for diffrnt kinds of analyss. For post-mortm off-lin diagnosis, τ is ithr th nding tim of th program, or th tim whn an OutOfMmory rror occurrd. For on-lin diagnosis don whil th program is running, τ could b any tim at which th usr dsirs to stop data collction and to start analysis of th collctd data. W us gc-vnts as chckpoints bcaus at ths tims th program s hap mmory consumption dos not includ unrachabl objcts. Th dfinition of a mmory lak symptom dos not rquir th amount of consumd mmory at ach gc-vnt to b largr than it was at th prvious on, bcaus in many cass som gc-vnts rclaim larg amounts of mmory, whil in gnral th mmory footprint still kps incrasing. Th ratio btwn th numbr of lmnts n in th subsqunc ss and th siz of th ntir squnc of gc-vnts within th laking rgion can b dfind by tool usrs as anothr analysis paramtr, in ordr to control th lngth of th laking rgion. Givn a particular valu for this usr-dfind ratio, thr could b multipl valus of τ s corrsponding to this ratio. Our approach chooss th smallst such valu as τ s, which dfins th longst rgion and allows mor prcis analysis. (Additional dtails ar dscribd in Sction 3.) Acontainrσ is mmory-lak-fr if ithr (1) at tim τ, it is in stat σ 0 (i.., mpty), or (2) it is garbag collctd within th laking rgion. That is, σ n dos not lak mmory if at tim τ, its accumulatd numbr of ADD oprations is qual to its accumulatd numbr of REMOVE oprations, assuming w trat th dallocation of σ n as bing quivalnt to n REMOVE oprations. Containrs that ar not mmorylak-fr contribut to th mmory lak symptom and ar subjct to furthr valuations. Howvr, this dos not ncssarily man that all of thm lak mmory. For xampl, if an OutOfMmory rror occurs bfor som REMOVE oprations of a containr, this containr is not mmory-lak-fr according to th abov dfinition, although in rality it may vry wll b lak-fr. For ach containr that is not mmory-lak-fr by this dfinition, w comput a confidnc valu that indicats how larg is its contribution to th mmory lak symptom. Our tchniqu considrs both th mmory consumption and th stalnss whn computing th confidnc for a containr. Mmory contribution. On factor that charactrizs a containr s contribution to th lak is th amount of mmory th containr consums during its liftim. W quantify this factor by dfining a mmory tim graph which capturs a containr s mmory footprint. Th rlativ mmory consumption of a containr σ at tim τ is th ratio btwn th sum of th mmory consumption of all objcts rachabl from σ in its objct graph, and th total amount of mmory consumd by th program at τ. Th mmory tim graph for σ is a curv whr th x-axis rprsnts th rlativ tim of program xcution (i.., τ i/τ for timstamp τ i)andthy-axisrprsnts th rlativ mmory consumption of σ (i.., mm(σ) i/total i corrsponding to x- point τ i/τ ). Th starting point of th x-axis is τ 0/τ whr τ 0 = max(τ s, allocation tim of σ) and th nding point is τ 1/τ whr τ 1 = min(τ, dallocation tim of σ). A sampl graph is shown in Figur 2. Th x-axis starts at 0.4 rlativ tim (0.4 τ absolut tim), which rprsnts Figur 2: A sampl mmory tim graph. ithr th starting tim of th lak rgion τ s or σ s allocation tim, whichvr occurs latr. Th graph indicats that σ is not frd within th lak rgion, bcaus th x-axis nds at 1, which rprsnts th nding tim τ of th lak rgion. Using th mmory tim graph, a containr s mmory contribution (MC) is dfind to b th ara covrd by th mmory consumption curv in th graph. In Figur 2 this ara is shown in dark. Bcaus th graph starts from τ s (or latr), th MC considrs only a containr s mmory consumption within th laking rgion. For a containr, both its mmory consumption and its liftim contribut to its MC. Sinc MC should rflct th influnc of both th containr itslf and all objcts (dirctly or transitivly) rfrncd by it, th mmory consumption of th containr is dfind as th amount of mmory consumd by its ntir objct graph. Bcaus rlativ valus (i.., btwn 0 and 1) ar usd to masur th mmory consumption and th xcution tim, th MC of a containr is also a valu btwn 0 and 1. Containrs that hav largr MC contribut mor to th mmory lak symptom. Not that in practic it is likly to b too xpnsiv to comput th xact MC valu for a containr, bcaus th containr s mmory consumption changs frquntly as th program xcuts. Sction 3 prsnts a sampling approach that can b usd to approximat this valu. Stalnss contribution. Th scond factor that charactrizs a containr s contribution is th stalnss of its lmnts. Th stalnss of an objct is dfind in [1] as th tim sinc th objct s last us. W provid a nw dfinition of stalnss in trms of a containr and its lmnts. Th stalnss of an lmnt o in a containr σ is τ 2 τ 1 whr REMOVE(σ, o) occurd at τ 2,anoprationGET(σ):o or ADD(σ, o) occurd at τ 1, and thr dos not xist anothr GET opration that rturns o in th rgion [τ 1, τ 2]. If τ 1 <τ s, τ 1 is rdfind to b τ s. If τ 2 <τ s, th stalnss is undfind. In othr words, th stalnss of o is th distanc btwn th tim whn o is rmovd from σ and th most rcnt tim whn o is rtrivd from σ. Ifo is nvr rtrivd from σ, τ 1 should corrspond to th ADD opration that adds o to σ. If o is nvr rmovd from σ, τ 2 is ithr th dallocation tim of σ, or th nding tim of th laking rgion τ. Th intuition bhind this dfinition is that if th program no longr nds to rtriv an lmnt from a containr, th lmnt bcoms uslss to that containr. Hnc, th stalnss of th lmnt masurs th priod of tim whn th lmnt bcoms uslss but is still bing kpt by th containr. In addition, tracking occurs only within th laking rgion if an lmnt s rmoval tim τ 2 is arlir than th starting tim of th laking rgion, w do not comput th stalnss for th lmnt. Th stalnss contribution (SC) of a containr σ is th ratio of ( P n i=1 stalnss(oi)/n) and(τ τs), whr th sum 153

4 ID Typ LC MC SC util.hashmap util.linkdlist util.linkdlist util.wakhashmap util.linkdlist swing.jlayrdpan swing.jpanl swing.jrootpan util.hashtabl Tabl 1: Partial rport of LC, MC, and SC valus. is ovr all lmnts o 1,...,o n that hav bn addd to σ and whos stalnss is wll-dfind. Thus, SC is th avrag stalnss of lmnts that hav vr bn addd to σ,rlativ to th lngth of th laking rgion. In addition, th rmoval tim of ths lmnts must b within th laking rgion. Bcaus th stalnss of ach individual lmnt is th lngth of th laking rgion, SC is a valu btwn 0 and 1. Containrs that hav largr SC valus contribut mor to th mmory lak symptom. Putting it all togthr: laking confidnc. Basd on th mmory contribution and th stalnss contribution, w dfin a containr s laking confidnc (LC) to b computd as SC MC 1 SC. Clarly, LC is a valu btwn 0 and 1; also, incrasing ithr SC or MC whil kping th othr factor unchangd incrass LC. W dfin LC as an xponntial function of SC to show that stalnss is mor important than mmory consumption in dtrmining a mmory lak. This dfinition of LC has svral dsirabl proprtis: MC=0 and SC [0, 1] LC=0. If th mmory contribution of a containr is small nough (i.., clos to 0), th confidnc of this containr is clos to 0, no mattr how stal its lmnts ar. This proprty hlps filtr out containrs that hold small objcts, such as strings. SC=0 and MC [0, 1] LC=0. If vry lmnt in a containr gts rmovd immdiatly aftr it is no longr usd (i.., th tim btwn th GET and RE- MOVE oprations is clos to 0), th confidnc of this containr is 0, no mattr how larg th containr is. SC=1 and MC [0, 1] LC=1. If all lmnts of a containr nvr gt rmovd aftr thy ar addd (i.., vry lmnt crosss th ntir laking rgion), th confidnc of th containr is 1, no mattr how larg th containr is. MC=1 and SC [0, 1] LC=SC. If th mmory contribution of a containr is xtrmly high (clos to 1), th confidnc of this containr is dcidd by its stalnss contribution. Our study shows that this dfinition of confidnc ffctivly sparats containrs that ar th sourcs of laks from thos that do not lak. A sampl rport that includs LC, MC, and SC valus for svral containrs is shown in Tabl 1. This tabl is a part of th rport gnratd by our tool whn analyzing Sun s bug # Th first containr in th tabl is th on that actually laks mmory. Not that th LC valu of this containr is much largr than th LC valus for th rmaining containrs. Using this rport, it is straightforward to find and fix this bug. class HashMap { Objct put(objct ky, Objct valu) {...} Objct gt(objct ky) {...} Objct rmov(objct ky) {...}... } (a) Containr class HashMap class Java_util_HashMap { static void put_aftr(int csid, Map rcivr, Objct ky, Objct valu, Objct rsult) { /* if ky dos not xist in th map */ if (rsult == null) { /* us usr-dfind hash cod as ID */ Rcordr.v().usUsrDfHashCod(); /* rcord opration ADD(rcivr,ky) */ Rcordr.v().rcord(csID, rcivr, ky, rcivr.siz()-1, Rcordr.EFFECT_ADD); }} static void gt_aftr(int csid, Map rcivr, Objct ky, Objct rsult) { /* if an ntry is found */ if (rsult!= null) { Rcordr.v().usUsrDfHashCod(); /* rcord opration GET(rcivr):ky */ Rcordr.v().rcord(csID, rcivr, ky, rcivr.siz(), Rcordr.EFFECT_GET); }} static void rmov_aftr(int csid, Map rcivr, Objct ky, Objct rsult) { if (rsult!= null) { Rcordr.v().usUsrDfHashCod(); /* rcord opration REMOVE(rcivr,ky) */ Rcordr.v().rcord(csID, rcivr, ky, rcivr.siz()+1, Rcordr.EFFECT_REMOVE); }}} (b) Glu class for HashMap Figur 3: Modling of containr java.util.hashmap. 3. MEMORY LEAK DETECTION FOR JAVA Basd on th lak confidnc analysis, this sction prsnts a mmory lak dtction tchniqu for Java. Containr modling. W hav built th glu cod for all typs in th Java collctions framwork. For ach containr typ thr is a corrsponding glu class. For ach mthod in th containr typ that is rlatd to ADD, GET, and REMOVE oprations, thr is a static mthod in th glu class whos nam is th nam of th containr mthod plus th suffix bfor or aftr. Th suffix indicats whthr calls to th glu mthod should b insrtd bfor or aftr call sits invoking th original mthod. Th paramtr list of th glu mthod includs a call sit ID, th rcivr objct, and th formal paramtrs of th containr mthod. For th suffix aftr, th rturn valu of th containr mthod is also addd. Figur 3 shows th modling of containr class java.util.hashmap. It is important to not that most of this glu cod can b gnratd automatically using prdfind cod tmplats. Th glu mthods call our profiling library to pass th following data: th call sit ID (csid), th containr objct, th lmnt objct, th numbr of lmnts in th containr bfor th opration is prformd, and th opration typ. Th call sit ID is gnratd by our tool during instrumntation. Th containr objct, th lmnt objct, and th opration typ ar usd to comput th SC for th containr. Rcording th numbr of lmnts in a containr is ndd for th algorithm in Figur 5, as discussd latr. W us an intgr ID to track ach objct (i.., containr and lmnt). Th first tim a containr objct is obsrvd by th profiling library, w tag this objct with th ID using JVMTI. Th ID for a containr objct (.g., th objct rfrrd to by 154

5 Nam Dscription Purpos GC T GC timstamps To idntify th laking rgion GC M Total liv mmory aftr GCs To idntify th laking rgion CON M Mmory takn up by containrs To comput MC for containrs CON T Timstamps whn masuring CON M To comput MC for containrs CON A Allocation tims of containrs To comput MC and SC for containrs CON D Dallocation tims of containrs To comput MC and SC for containrs OPR Oprations (csid, containr, lmnt, #lmnts, typ) To comput SC for containrs Tabl 2: Data collctd by th profilr. rcivr in Figur 3) is its idntity hash cod dtrmind by its intrnal addrss in th JVM. For an lmnt objct, th idntity hash cod is usd as lmnt ID if th containr dos not hav hash-basd functions; othrwis, th lmnt ID is th usr-dfind hash cod. For xampl, in Figur 3, calls to ususrdfhashcod inform our library that th ID for ky should b its usr-dfind hashcod. For HashMap, w only track ky as a containr lmnt, bcaus ky is rprsntativ of a map ntry. Mthods that rtriv th ntir st of lmnts, such as toarray and itrator, ar tratd as a st of GET oprations prformd on all containr lmnts. Of cours, this approximat tratmnt of itrators may affct th prcision of th computd SC valus. Instrumntation. Th Soot analysis framwork [24] is usd to prform cod instrumntation. For ach call sit in an application class at which th rcivr is a containr, calls to th corrsponding glu mthod ar insrtd bfor and/or aftr th sit. For a containr objct, cod is also insrtd aftr its allocation sit in ordr to track its allocation tim. Naivly instrumnting a Java program can caus tracking of many containrs, which may introduc significant runtim ovrhad. Bcaus thrad-local and mthod-local containrs 1 ar lss likly to b sourcs of laks, w mploy an scap analysis to idntify a st S of thrad-local and mthod-local objcts. W do not instrumnt a call sit if th points-to sts of its rcivr variabl is a subst of S. Profiling. Tabl 2 lists th typs of data that nd to b obtaind by our profilr. In ordr to idntify th laking rgion, w nd to collct GC finishing tims (GC T ) and liv mmory at ths tims (GC M ), using JVMTI. For MC valus of containrs, it is ncssary to collct th amounts of mmory for th ntir objct graphs of containrs (CON M) and th corrsponding collction tims (CON T ). W masur th mmory usag of a containr by travrsing th objct graph starting from th containr, using rflction. Sinc it is impractical to comput th xact valu of MC, sampling is usd to approximat th mmory tim graph. Frqunt sampling rsults in prcis approximation, but incrass run-tim ovrhad. W launch priodic objct graph travrsals (for a st of trackd containrs) vry tim aftr a crtain numbr of gcvnts is sn. Th numbr of gc-vnts btwn two travrsals (i.., th sampling rat) can b givn as a paramtr to dtrmin prcision and ovrhad. Our study indicats that choosing 50 as th numbr of gc-vnts btwn travrsals can kp th ovrhad low whil achiving high prcision. Objct graph travrsal is prformd by a sparat thrad. Onc a containr opration occurs (i.., rcord in Figur 3 is invokd), rcord adds th ID of th containr to a global quu, if that ID is not alrady thr. Whn th givn num- 1 Containrs that ar not rachabl from multipl thrads, and whos liftim is limitd within thir allocating mthods. containrid containr typ java.util.hashmap lmntid, #lmnts, timstamp root... CSID*10+OPR_TYPE , 125, 1145 Figur 4: Comprssd rcording of OPR vnts. br of gc-vnts complt, th JVMTI agnt activats this thrad, which in turn suspnds all othr thrads, rads IDs from th quu, rtrivs th corrsponding objcts, and prforms graph travrsals. Th allocation tim of a containr (CON A) can b collctd by th instrumntation at th allocation sit, and th JVMTI agnt can provid th dallocation tim of a taggd containr (CON D). To comput SC valus for containrs, w hav to rcord vry opration that a trackd containr prforms (OPR). Bcaus OPR vnts can rsult in larg amounts of data, w us a data comprssion stratgy to rduc spac ovrhad. Th OPR data is stord in a tr structur. Data at a highr lvl of th tr is likly to b mor frquntly rpatd. For xampl, typ java.util.hashmap, which is at th highst lvl of th tr, appars in th vnt squnc for many containr IDs. Similarly, for a singl containr ID, many call sits and oprations nd to b rcordd. Th tr rprsntation is illustratd in Figur 4. Th typ of containr is a parnt of th containr ID. A child of th containr ID is a combination of th call sit ID and th opration typ (ncodd as a singl intgr csid*10+opr_typ). Th laf nods contain tupls of lmnt ID, numbr of lmnts in th containr bfor this opration, and a timstamp. Kping too much profiling data in mmory dgrads program prformanc. W priodically dump th data to disk to rduc its influnc on th run-tim xcution. Th frquncy of dumping is th sam as that of objct graph travrsal: th JVMTI agnt crats a dumping thrad that is activatd at th sam tim th graph travrsal thrad is activatd. Both of ths thrads must complt bfor th xcution of th application thrads is rsumd. Data analysis. Our implmntation prforms an offlin analysis aftr th program finishs or runs out of mmory. Thus, th nd of th laking rgion τ is th nding tim of th program. Th implmntation can asily b adaptd to run th analysis onlin (in anothr procss) and gnrat th rport whil th original program is still running. Th first stp of th analysis is to scan GC T and GC M information to dtrmin th laking rgion. Th currnt 155

6 1: FIND SC (Doubl τ, Doubl τ s,mapsiz map, Mapopr map) 2: /* opration list for ach containr */ 3: List opr list 4: /* Th rsult map contains ach containr ID and its SC */ 5: Map rsult = 6: for ach containr ID c in opr map do 7: Map tmp = /* a tmporary hlpr map */ 8: opr list = opr map.gt(c) 9: Intgr total = 0 /* total numbr of lmnts */ 10: Doubl sum =0/* P stalnss */ 11: /* Numbr of lmnts in c at tim τ s */ 12: Intgr n = siz map.gt(c) 13: for ach opration opr in opr list do 14: if opr.typ == ADD thn 15: tmp.add(opr.lmntid, opr.timstamp) 16: nd if 17: if opr.typ == GET thn 18: updat tmp with (opr.lmntid, opr.timstamp) 19: nd if 20: if opr.typ == REMOVE thn 21: if tmp.contains(opr.lmntid) thn 22: Intgr lastgt = tmp.gt(opr.lmntid) 23: sum += opr.timstamp lastgt 24: total += 1 25: tmp.rmov(opr.lmntid) 26: ls 27: /* Th lmnt is addd bfor τ s */ 28: sum += opr.timstamp τ s 29: total += 1 30: n = 1 31: nd if 32: nd if 33: nd for 34: if tmp.siz > 0 thn 35: /* Ths lmnts ar nvr rmovd */ 36: for ach lmntid in tmp do 37: Intgr lastgt = tmp.gt(lmntid) 38: sum += τ lastgt 39: total +=1 40: nd for 41: nd if 42: if n > 0 thn 43: /* Elmnts ar addd bfor τ s and nvr rmovd */ 44: sum += (τ τ s) n; 45: total += n 46: nd if 47: c.sc = (sum/total)/(τ τ s) 48: rsult.add(c, c.sc) 49: nd for 50: rturn rsult Figur 5: Computing SC for containrs. implmntation mploys 0.5 as th ratio usd to dfin this rgion, which mans that at last half of th gc-vnts form a subsqunc with incrasing mmory consumption (rcall th lak rgion dfinition from Sction 2). Aftr th smallst τ s that satisfis this constraint is found, ach containr s OPR data is uncomprssd into individual oprations and thy ar sortd by timstamp. Th containr ID and its opration list ar stord in map opr map. Forachcon- tainr, th analysis also dtrmins th first opration that is prformd aftr τ s; th containr ID and th numbr of containr lmnts at this first opration ar stord in map siz map. Oprations that occurd bfor τ s ar discardd. For ach containr, CON M and CON T data is usd to approximat th mmory tim graph and th MC valu. Th approximation assums that th mmory usd by th containr dos not chang btwn two sampls. Thus, MC is P n 1 i=0 (CONT,i+1 CONT,i) CONM,i whr i rprsnts th i-th sampl. Figur 5 shows th computation of SC for containrs. Th algorithm scans a containr s opration list, and for ach lmnt ID, finds its last GET opration, its REMOVE opration, and th distanc btwn thm. (Rcall that th dallocation of th containr is tratd as a st of REMOVE oprations on all lmnts.) For an lmnt that is addd bfor τ s (lins 27 30), stalnss is th distanc btwn th REMOVE opration and τ s. For an lmnt that is nvr rmovd (lins 34 39), stalnss is th distanc btwn τ and th last GET opration. For lmnts that ar addd bfor τ s and nvr rmovd (lins 42 45), stalnss is τ τ s. Laking call sits. For ach lmnt in a containr, th analysis finds th call sit ID corrsponding to its last GET or ADD opration. Thn, it computs th avrag stalnss of lmnts whos last GET or ADD oprations corrspond to that sam call sit ID. Th call sit IDs ar thn sortd in dcrasing ordr of this avrag valu. Thus, th tool rports not only th potntially laking containrs (sortd by th LC valu), but also, for ach containr, th potntially laking call sits (with thir sourc cod location) sortd in dscnding ordr by thir avrag stalnss. Our xprinc indicats that this information can b vry hlpful to a programmr trying to idntify th sourc of a mmory lak bug. 4. EMPIRICAL EVALUATION To valuat th proposd tchniqu for containr-basd mmory lak dtction for Java, w prformd a varity of xprimntal studis focusing on lak idntification and xcution ovrhad. Sction 4.1 illustrats th ability of th tchniqu to hlp a programmr find and fix ral-world bugs. Sction 4.2 prsnts a study of th incurrd ovrhad. 4.1 Dtction of Ral-World Mmory Laks Th xprimnts wr prformd on a 2.4GHz dual-cor PC with 2GB RAM. Thr diffrnt sampling/dumping rats wr usd: 1/15gc, 1/50gc, and 1/85gc (i.., onc vry 15, 50, or 85 gc-vnts). Th xprimntal subjcts wr two mmory lak bugs rportd in th Sun bug databas [23], as wll as a known lak in SPECjbb [22]. Java AWT/Swing bugs. About half of th mmory lak bugs in th JDK com from AWT and Swing. This is th rason w chos two AWT/Swing rlatd lak bugs # and # for valuation. Th first bug has alrady bn fixd in Java 6, whil th scond on was still opn and unrsolvd. Bug rport # dscribs a bug that manifsts itslf whn switching btwn a running Swing application that shows a JFram and anothr procss that uss a diffrnt display mod (.g., a scrn savr) th Swing application vntually runs out of mmory. According to a dvlopr s xprinc [18], th bug was vry difficult to track down bfor it was fixd. W instrumntd th ntir awt and swing packags, and th tst cas providd in th bug rport. W thn ran th instrumntd program and rproducd th bug. Figur 6 shows th tool rports with thr sampling rats. Each rport contains th top thr containrs, for ach containr th top thr potntially laking call sits (---cs), and th tim usd to analyz th data. Sampling rats 1/15gc and 1/50gc produc th sam containrs, in th sam ordr. Th first containr in th rports is a HashMap in class javax.swing.rpaintmanagr. Win- spctd th cod of RpaintManagr and found that th containr was an instanc fild volatilmap. Th call sit in th rport (with avrag stalnss 0.507) dirctd us to lin 591 in th cod of th class, which corrsponds to a GET opration imag = (VolatilImag)volatilMap.gt(config). Th tool rport indicats that th imag obtaind at this call 156

7 Containr: typ: java.util.hashmap (LC: 0.449, SC: 0.495, MC: 0.825) ---cs: javax.swing.rpaintmanagr:591 (Avrag stalnss: 0.507) Containr: typ: java.util.linkdlist (LC: 0.165, SC: 0.194, MC: 0.820) ---cs: java.awt.dfaultkyboardfocusmanagr:738 (0.246) Containr: typ: java.util.linkdlist (LC: 0.051, SC: 0.062, MC: 0.809) ---cs: java.awt.dfaultkyboardfocusmanagr:851 (0.063) ---cs: java.awt.dfaultkyboardfocusmanagr:740 (0.025) Data analyzd in ms (a) 1/15gc sampling rat Containr: typ: java.util.hashmap (LC: 0.443, SC: 0.480, MC: 0.855) ---cs: javax.swing.rpaintmanagr:591 (Avrag stalnss: 0.480) Containr: typ: class java.util.linkdlist (LC: 0.145, SC:0.172, MC: 0.814) ---cs: java.awt.dfaultkyboardfocusmanagr:738 (0.017) Containr: typ: class javax.swing.jpanl (LC: 0.038, SC:0.044, MC: 0.860) ---cs: javax.swing.jcomponnt:796 (0.044) Data analyzd in 21593ms (b) 1/50gc sampling rat Containr: typ: java.util.hashmap (LC: 0.384, SC:0.426, MC: 0.835) ---cs: javax.swing.rpaintmanagr:591 (0.426) Containr: typ: java.util.linkdlist (LC: 0.064, SC:0.199, MC: 0.244) ---cs: java.awt.squncdevnt:176 (0.204) ---cs: java.awt.squncdevnt:179 (0.010) ---cs: java.awt.squncdevnt:128 (1.660E-4) Containr: typ: javax.swing.jpanl (LC: 0.036, SC:0.042, MC: 0.839) ---cs: javax.swing.jcomponnt:796 (0.042) Data analyzd in 10547ms (c) 1/85gc sampling rat Figur 6: Rports for JDK bug # Containr: typ: java.util.vctor (LC: 0.890, SC: 0.938, MC: 0.427) ---cs: java.awt.window:1825 (0.938) Containr: typ: java.bans.proprtychangsupport (LC: 0.645, SC:0.779, MC: 0.427) ---cs: java.awt.componnt:7007 (0.779) Containr: typ: javax.swing.uidfaults (LC: 0.644, SC:0.875, MC: 0.087) ---cs: javax.swing.uidfaults:334 (0.868) ---cs: javax.swing.uidfaults:308 (0.660) Data analyzd in 454ms (a) 1/15gc sampling rat Containr: typ: java.util.vctor (LC: 0.890, SC:0.938, MC: 0.427) ---cs: java.awt.window:1825 (0.938) Containr: typ: java.bans.proprtychangsupport (LC: 0.668, SC:0.828, MC: 0.288) ---cs: java.awt.componnt:7007 (0.828) Containr: typ: javax.swing.uidfaults (LC: 0.101, SC: 0.327, MC: 0.175) ---cs: javax.swing.uidfaults:334 (0.984) ---cs: javax.swing.uidfaults:308 (0.903) Data analyzd in 282ms (b) 1/50gc sampling rat Containr: typ: java.util.vctor (LC: 0.293, SC:0.425, MC: 0.525) ---cs: java.awt.window:1825 (0.425) Containr: typ: javax.swing.jlayrdpan (LC: 0.117, SC:0.221, MC: 0.441) ---cs: javax.swing.jcomponnt:796 (0.162) Containr: typ: javax.swing.uidfaults (LC: 0.096, SC:0.363, MC: 0.124) ---cs: javax.swing.uidfaults:334 (0.359) ---cs: javax.swing.uidfaults:308 (0.340) Data analyzd in 297ms (c) 1/85gc sampling rat Figur 7: Rports for JDK bug # sit may not b proprly rmovd from th containr. For a programmr that is familiar with th cod, this information may b nough to idntify th bug quickly. Sinc th cod was nw to us, w had to larn mor about this class and th ovrall display handling stratgy of Swing to undrstand th bug. Bcaus th bug was alrady rsolvd, w xamind th bug valuation, which confirmd that volatilmap is th root of th lak. Th caus of th bug is caching by RpaintManagr of all VolatilImag objcts, rgardlss of whthr or not thy ar currntly valid. Upon a display mod switch, th old GraphicsConfiguration objcts undr th prvious display mod gt invalidatd and will not b usd again. Howvr, th VolatilImag for an obsolt GraphicsConfiguration is nvr rmovd from volatilmap, and hnc all rsourcs allocatd by th imag continu taking up mmory. Not that th rport with sampling rat 1/85gc loss th LinkdList in DfaultKyboardFocusManagr, whichap- pars as th scond containr in th othr two rports. Although this containr is not th sourc of th bug, it dmonstrats that sampling at 1/85gc may not b frqunt nough to maintain high prcision for LC computation. Also not that analysis tim dcrass with th dcras in sampling rat, bcaus th tool procsss lss data. Compard to our rports, xisting approachs that kp track of arbitrary objcts (i.., do not hav our containrcntric viw) would rport allocation sits of som typs of objcts that ithr (1) continuously grow in numbrs or (2) ar not usd for a whil. For bug # , for xampl, thr ar growing numbrs of objcts of numrous typs that ar rachabl by VolatilImag and GraphicsConfiguration objcts. Tools such as Cork [14] hav to backward- travrs th objct graph from th growing objcts to find th typ of objcts that do not grow in numbrs. Howvr, th uslss objcts ar intr-rfrncd, and morovr, travrsing back from ths growing objcts can potntially find multipl typs whos instancs rmain unchangd. In this cas, th containr that holds GraphicsConfigurations, th JFram window, th GraphicsDvic objct, th map that holds VolatilImags, tc. can all b data structurs that ar backward-rachabl from th growing objcts and whos numbrs of instancs do not grow. Tools such as Sligh [1] rport rrors basd solly on th stalnss of objcts. In this cas, th JFram objct would b th most stal objct bcaus it is nvr usd aftr it is cratd. In addition, thr ar numrous typs of objcts that ar mor stal than VolatilImags, such as all componnts in th fram. Hnc, Sligh could rport all ths objcts as th sourcs of th lak, including many fals positivs. Finally, both of ths xisting approachs rquir non-standard JVM modifications and support, whil our tchniqu uss only cod instrumntation and th standard JVMTI intrfac. Rport # dscribs a bug in Java 6 build : calling JScrollPan.updatUI() in a Swing program that uss JScrollPan causs th numbr of listnrs to grow. Bcaus it is common knowldg that ProprtyChangListnrs ar managd by java.ban.proprtychangsupport, w modld this class as a containr and wrot a glu class for it. Th rports ar shown in Figur 7. Th first containr in all thr rports is a vctor in java.awt.window, corrsponding to an instanc fild owndwindowlist; this fild is usd to hold all childrn windows of th currnt window. Lin 1825 of class Window contains an ADD opration addelmnt(wakwindow) for this fild. Th rporting 157

8 Bfor fixing th bug ) s t y b ( d s U y r o m M GC Runs ) s t y b ( d s U y r o m M Aftr fixing th bug GC Runs Figur 8: Mmory footprint bfor and aftr fixing JDK bug # of this call sit by th tool indicats that whn a Window objct is addd to th vctor, it may not b proprly rmovd latr. W quickly concludd that this cannot b th sourc of th bug, bcaus windows in a Swing program usually hold rfrncs to ach othr until th program finishs. This forcd us to look at th scond containr in rports (a) and (b), which is a ProprtyChangSupport objct in java.awt.componnt. Th rportd call sit at lin 7007 of Componnt is changsupport.addproprtychanglistnr(listnr) Th containr is an instanc fild changsupport, which stors all ProprtyChangListnrs rgistrd in this componnt. Th call sit indicats that th bug may b causd by som problm in JScrollPan that dos not appropriatly rmov listnrs. Rgistring and unrgistring of listnrs for JScrollPan is don in a st of ScrollPanUI classs. Th tst cas uss a mtal look and fl, which is rprsntd by class MtalScrollPanUI, a subclass of Basic- ScrollPanUI. WchckdmthoduninstallListnrs in MtalScrollPanUI, which is supposd to rlas listnrs from th componnt, and found that this mthod calls th mthod with th sam nam in its supr class, but dos not rmov thscrollbarswaplistnr objct hld by a privat fild in th subclass. Furthr invstigation rvald an vn mor srious problm: mthod uninstalllistnrs in th subclass was not xcutd at all, bcaus its signatur was diffrnt from th signatur of th mthod with th sam nam in suprclass BasicScrollPanUI: /* BasicScrollPanUI */ void uninstalllistnrs(jcomponnt c) /* MtalScrollPanUI */ void uninstalllistnrs(jscrollpan scrollpan) Hnc, th causs of th bug ar (1) uninstalllistnrs in MtalScrollPanUI fails to ovrrid th appropriat mthod in suprclass BasicScrollPanUI, and (2) th listnr dfind in subclass MtalScrollPanUI is not rmovd by its own uninstalllistnrs. Wmodifidthcodaccord- ingly, and th mmory lak disappard. Th mmory footprints bfor and aftr fixing th bug ar shown in Figur 8. W hav submittd our modification as a commnt in th bug databas. Again, th rport that usd 1/85gc sampling rat faild to includ th ProprtyChangSupport objct, which is th sourc of th lak. SPECjbb bug. Bnchmark SPECjbb2000 simulats an ordr procssing systm and is intndd for valuating srvrsid Java prformanc [22]. Th program contains a known mmory lak bug that manifsts itslf whn running for a long tim without changing warhouss. Th rport gnratd by our tool for rat 1/50gc is shown in Figur 9. Du to th imprcision of using sampling rat 1/85gc, th rport for it is not shown. W also do not show th rport for sampling rat 1/15gc, bcaus th containrs and thir ordr ar th sam as in th rport for 1/50gc. Containr: typ: java.util.hashtabl (LC: 0.135, SC: 0.190, MC: 0.659) ---cs: spc.jbb.stocklvltransaction:225 (0.214) ---cs: spc.jbb.stocklvltransaction:211 (0.190) Containr: typ: java.util.hashtabl (LC: 0.110, SC:0.157, MC: 0.659) ---cs: spc.jbb.stocklvltransaction:211 (0.157) ---cs: spc.jbb.stocklvltransaction:225 (0.114) Containr: typ: java.util.hashtabl (LC: 0.102, SC:0.146, MC: 0.654) ---cs: spc.jbb.stocklvltransaction:211 (0.146) ---cs: spc.jbb.stocklvltransaction:225 (0.122) Data analyzd in 4078ms (a) bfor modling of longbtr, using 1/50gc Containr: typ: spc.jbb.infra.collctions.longbtr (LC: 0.687, SC: 0.758, MC: 0.666) ---cs: spc.jbb.district:264 (0.826) ---cs: spc.jbb.stocklvltransaction:225 (0.624) ---cs: spc.jbb.stocklvltransaction:211 (0.519) Containr: typ: spc.jbb.infra.collctions.longbtr (LC: 0.685, SC: 0.757, MC: 0.662) ---cs: spc.jbb.district:264 (0.783) ---cs: spc.jbb.stocklvltransaction:211 (0.370) ---cs: spc.jbb.district:406 (2.944E-4) Containr: typ: spc.jbb.infra.collctions.longbtr (LC: 0.667, SC: 0.727, MC: 0.727) ---cs: spc.jbb.warhous:456 (0.798) ---cs: spc.jbb.district:264 (0.784) ---cs: spc.jbb.stocklvltransaction:211 (0.484) Data analyzd in 7579ms (b) aftr modling of longbtr, using 1/50gc Figur 9: Rport for SPECjbb2000 bug. antlr 4.1E-5 chart 2.7E-6 fop 1.3E-5 hsqldb 4.4E-7 jython 5.0E-8 luindx 9.1E-5 lusarch 2.3E-2 pmd 4.3E-6 xalan 5.2E-5 jflx 1.8E-7 Tabl 3: Confidncs for lak-fr programs. Th program was first instrumntd without modling any usr-dfind containrs. Th rsult is shown in Figur 9(a). Non of th containrs in th rport ar likly to lak mmory, bcaus thir confidncs ar vry small. Th first containr rfrs to a hashtabl that holds stocks of an ordr lin. W did not find any problm with th us of this containr. Howvr, w obsrvd that th ordr lins ar actually obtaind from an ordr tabl, which has a typ of longbtr. W found that longbtr is a containr class that implmnts a BTr data structur and is usd to hold ordrs. It took svral minuts to writ a glu class for longbtr. Th program was thn r-instrumntd and r-xcutd. Th rsulting rport is shown in Figur 9(b). Th top thr containrs in th rport ar now instancs of longbtr. Lin 264 of spc.jbb.district is an ADD opration ordrtabl.put(anordr.gtid(), anordr) which indicats that ordrtabl maylakmmory. Mthods rmovoldstordr, rmovoldordrs, anddstroy contain REMOVE oprations for ordrtabl. Wfocusdon th first two mthods, bcaus dstroy could not b calld whn a district is still usful. Using a standard IDE, w found th callrs of ths mthods: rmovoldstordr is calld only onc within DlivryTransaction, andrmov- OldOrdrs is nvr calld. Thrfor, whn a transaction complts, it rmovs only th oldst ordr from th tabl, which causs th hap growth. Insrting cod to rmov ordrs from th tabl fixd th bug. W usd lss tim (a fw hours) than th authors of [14] did (a day) to locat th bug in this program, which w had nvr studid bfor. 158

9 Program (a) (b) (c) 1/15gc (d) 1/50gc () #IS #IS IT (s) RT o(s) #GC d RT d (s) #GC l RT l (s) #GC d RT s(s) #GC l RT l (s) %OH antlr % chart % fop % hsqldb % jython % luindx % lusarch % pmd % xalan % jflx % bug bug % spcjbb Tabl 4: Ovrhad: (a) cod instrumntation; (b) original running tim; (c) running with 1/15gc rat; (d) running with 1/50gc rat; () run-tim ovrhad. Lak-fr programs. Th tool was also usd to analyz svral programs that hav bn usd widly and tstd xtnsivly for yars, and do not hav any known mmory laks. Tabl 3 shows th confidnc valus computd for ths programs. Th goal of this xprimnt was to dtrmin whthr th proposd tchniqu producd any fals positivs for ths (almost crtainly) lak-fr programs. Th low confidnc valus rportd by th tool ar th xpctd and dsirabl outcom for this xprimnt. 4.2 Static and Dynamic Ovrhad This sction dscribs a study of th ovrhad introducd by th tchniqu. This study utilizs th thr bugs dscribd arlir, as wll as th 10 programs from Tabl 3. Th instrumntd programs wr analyzd with rats 1/15gc and 1/50gc. Th maximum JVM hap siz for ach run was st to 512MB (JVM option Xmx512m). For ach sampling rat, w ran th programs onc with th dfault initial hap siz and onc with a larg initial hap siz (JVM option Xms512m), in ordr to obsrv diffrnt numbrs of gc-vnts. Th tool rports shown arlir wr obtaind with th dfault initial hap siz; with th larg initial siz, th top containrs and call sits and thir ordring wr th sam. Tabl 4 dscribs th static and dynamic ovrhad of th tool. Columns IS and IS show th numbrs of call sits instrumntd without and with mploying scap analysis, rspctivly. Column IT ( instrumntation tim ) rprsnts th static ovrhad of th tool that is, th tim (in sconds) it taks to produc th scap-analysis-basd instrumntd vrsion of th original cod. Column RT o ( running tim ) contains th original running tims of th programs. Th dynamic ovrhad of th approach is dscribd in th rmaindr of th tabl. Columns GC d and GC l show th numbrs of gc-vnts with th dfault and with th larg initial hap siz, rspctivly. Similarly, RT d and RT l show th program running tims with ths two choics of initial hap siz. Column OH rprsnts run-tim ovrhad introducd by our tool whn xcutd with th most optimal configuration, which corrsponds to RT l in columns (d). For bug 1 and spcjbb, w ran th tst cas for 10 minuts and an hour, rspctivly, bcaus th xcution of ths two programs dos not trminat. Applying scap analysis rducs th numbr of call sits that nd to b trackd (th rduction varis from 3 to 124 call sits), whil still maintaining rasonabl instrumntation tim. Using th sam sampling rat, running a program with a larg initial hap siz taks lss tim, bcaus this configuration rducs th numbr of gc-vnts, which in turn rducs th numbrs of thrad synchronizations, disk accsss, and objct graph travrsals prformd by th dynamic analysis. For th sam rasons, dcrasing th sampling rat rducs th run-tim ovrhad. On avrag, th tool introducd 88.5% run-tim ovrhad for th subjct programs (without mploying scap analysis, th ovrhad was vry slightly highr). Such ovrhad is accptabl for dbugging, but it may b too high for production runs. On possibl approach for rducing th ovrhad is to slctivly instrumnt a program. Basd on th manifstation of th bug, dvloprs may hav prfrncs and hints as to whr to focus th ffort of th tool. Th continuous optimization of th tool is part of our futur work. For xampl, th optimization may focus on xcuting th objct graph travrsal thrad and th data dumping thrad in paralll with th application thrads. In addition, th rtrival of a containr objct from its tag though JVMTI also contributs to th xcution ovrhad. Hnc, anothr dirction for futur work is to r-implmnt th tool within an xisting opn-sourc JVM, such as th Jiks RMV [11], in ordr to avoid th ovrhad causd by JVMTI. 5. RELATED WORK Thr is a larg body of work dvotd to th problm of mmory lak dtction. Th discussion blow is rstrictd to approachs that ar most closly rlatd to our tchniqu. Static analysis can find mmory rrors such as doubl frs and missing frs for programs writtn in non-garbagcollctd languags. For xampl, [2] rducs th mmory lak analysis to a rachability problm on th program s guardd valu flow graph. Saturn [25], taking anothr prspctiv, stats mmory lak dtction as a boolan satisfiability problm. Dor t al. [5] propos a shap analysis to prov th absnc of mmory laks in svral list manipulation functions. Hacktt and Rugina [6] us a shap analysis that tracks singl hap clls to idntify mmory laks. Orlovich and Rugina [19] propos an approach that starts by assuming th prsnc of rrors, and prforms a dataflow analysis to disprov thir fasibility. Clousau [9] is a lak dtction tool that uss pointr ownrship to dscrib variabls rsponsibl for fring hap clls, and formulats th analysis as an ownrship constraint systm. Follow-up work [10] proposs a typ systm to dscrib th objct ownrship for containrs, and uss typ infrnc to dtct constraint violations. Although both this work and our tchniqu fo- 159

10 cus on containrs, th targt of this prvious ffort ar C and C++ program whras w ar intrstd in a garbagcollctd languag. Th analysis from [10] dos not hlp dtct unncssary rfrncs in a Java program. Mor gnrally, all static approachs ar limitd by th lack of gnral, scalabl, and prcis rfrnc/hap modling. Dspit a larg body of work on such modling, it rmains an opn problm for larg ral-world systms, with many challngs du to analysis scalability, modling of multi-thradd bhavior, dynamic class loading, rflction, tc. Dynamic analysis [1, 8, 7, 14, 4, 3, 12, 13, 15] has typically bn th wapon of choic for dtcting mmory laks in ral-world softwar. Howvr, as dscribd in Sction 1 and Sction 4, xisting tchniqus hav a numbr of dficincis. Th work in [4, 3, 12, 13] nabls visualization of hap objcts of diffrnt typs, but dos not provid th ability to dirctly idntify th caus of th mmory lak. Existing tchniqus us growing typs [14, 17] (i.., typs whos numbr of instancs continus to grow), objct stalnss [1], or growing containrs [15] to idntify suspicious data structurs that may contribut to a mmory lak. Howvr, in gnral, a mmory lak causd by rdundant rfrncs is du to a complx intrplay of mmory growing and stalnss and possibly othr factors. By considring a singl mtric which combins both factors, our tchniqu could potntially improv th prcision of lak idntification. In addition, all xisting dynamic-analysis-basd lak dtction approachs xcpt [15] start by considring th lak symptoms (.g., growing typs or stal objcts), and thn attmpt to trac back to th root caus of th lak. As discussd in th dscription of th JDK bugs from Sction 4, th complxity of such bottom-up tracking maks it hard to gnrat prcis analysis rports, and ultimatly puts a significant burdn on th programmr. In contrast, our approach is dsignd from a containr-cntric point of viw it automatically tracks th suspicious bhavior in a top-down mannr, by monitoring (1) th objct graph rachabl from a containr, and (2) th containr-lvl oprations. This highr lvl of abstraction, compard to traditional low-lvl tracking of arbitrary objcts, simplifis th difficult task of idntifying th sourcs of mmory laks. 6. CONCLUSIONS This papr prsnts a novl tchniqu for dtcting mmory laks in Java softwar. Unlik xisting dynamic analyss for lak dtction, th proposd approach mploys a highrlvl abstraction, focusing on containr objcts and thir oprations, and uss both mmory contribution and stalnss contribution to dcid how significant is a containr s laking bhavior. W prsnt an implmntation of this tchniqu and xprimntal studis dmonstrating that th proposd tool can produc prcis bug rports at a practical cost. Ths promising initial rsults indicat that th tchniqu and any futur gnralizations ar worth furthr invstigation. Futur work will focus on optimizations to rduc th run-tim ovrhad. Anothr possibl dirction may b ways to idntify data structurs that act as containrs (.g., using th approach from [16]) instad of rlying on th programmr, and to automat th mapping of containr mthods to th ADT oprations. Altrnativ dfinitions for LC could also b invstigatd, and mor prcis handling of itrators may b dsirabl. Mor contxt information about containrs and call sits could mak th rports mor usful. Acknowldgmnts. W would lik to thank th ICSE rviwrs for thir valuabl commnts and suggstions. 7. REFERENCES [1] M. D. Bond and K. S. McKinly. Bll: Bit-ncoding onlin mmory lak dtction. In ASPLOS, pags 61 72, [2] S. Chrm, L. Princhous, and R. Rugina. Practical mmory lak dtction using guardd valu-flow analysis. In PLDI, pags , [3] W.DPauw,D.Lornz,J.Vlissids,andM.Wgman. Excution pattrns in objct-orintd visualization. In USENIX COOTS, pags , [4] W. DPauw and G. Svitsky. Visualizing rfrnc pattrns for solving mmory laks in Java. Concurrncy: Practic and Exprinc, 12(14): , [5] N. Dor, M. Rodh, and S. Sagiv. Chcking clannss in linkd lists. In SAS, pags , [6] B. Hacktt and R. Rugina. Rgion-basd shap analysis with trackd locations. In POPL, pags , [7] R. Hastings and B. Joyc. Purify: A tool for dtcting mmory laks and accss rrors in C and C++ programs. In Wintr 1992 USENIX Confrnc, pags , [8] M. Hauswirth and T. M. Chilimbi. Low-ovrhad mmory lak dtction using adaptiv statistical profiling. In ASPLOS, pags , [9] D. L. Hin and M. S. Lam. A practical flow-snsitiv and contxt-snsitiv C and C++ mmory lak dtctor. In PLDI, pags , [10] D. L. Hin and M. S. Lam. Static dtction of laks in polymorphic containrs. In ICSE, pags , [11] Jiks Rsarch Virtual Machin. jiksrvm.org. [12] JProb. [13] JProfilr. [14] M. Jump and K. S. McKinly. Cork: Dynamic mmory lak dtction for garbag-collctd languags. In POPL, pags 31 38, [15] LakHuntr. [16] N. Mitchll. Th runtim structur of objct ownrship. In ECOOP, pags 74 98, [17] N. Mitchll and G. Svitsky. Lakbot: An automatd and lightwight tool for diagnosing mmory laks in larg Java applications. In ECOOP, pags , [18] E. Nicholas. wblogs.java.nt/blog/ nicholas/archiv/2006/04/laking_vil.html. [19] M. Orlovich and R. Rugina. Mmory lak analysis by contradiction. In SAS, pags , [20] F. Qin, S. Lu, and Y. Zhou. Safmm: Exploiting ECC-mmory for dtcting mmory laks and mmory corruption during production runs. In HPCA, pags , [21] R. Shaham, E. K. Kolodnr, and M. Sagiv. Automatic rmoval of array mmory laks in Java. In CC, pags 50 66, [22] SPECjbb2000 Documntation. [23] Sun Bug Databas. bugs.sun.com/bugdatabas. [24] R. Vallé-Rai, E. Gagnon, L. Hndrn, P. Lam, P. Pominvill, and V. Sundarsan. Optimizing Java bytcod using th Soot framwork: Is it fasibl? In CC, pags 18 34, [25] Y. Xi and A. Aikn. Contxt- and path-snsitiv mmory lak dtction. In FSE, pags ,

Genetic Drift and Gene Flow Illustration

Genetic Drift and Gene Flow Illustration Gntic Drift and Gn Flow Illustration This is a mor dtaild dscription of Activity Ida 4, Chaptr 3, If Not Rac, How do W Explain Biological Diffrncs? in: How Ral is Rac? A Sourcbook on Rac, Cultur, and Biology.

More information

by John Donald, Lecturer, School of Accounting, Economics and Finance, Deakin University, Australia

by John Donald, Lecturer, School of Accounting, Economics and Finance, Deakin University, Australia Studnt Nots Cost Volum Profit Analysis by John Donald, Lcturr, School of Accounting, Economics and Financ, Dakin Univrsity, Australia As mntiond in th last st of Studnt Nots, th ability to catgoris costs

More information

QUANTITATIVE METHODS CLASSES WEEK SEVEN

QUANTITATIVE METHODS CLASSES WEEK SEVEN QUANTITATIVE METHODS CLASSES WEEK SEVEN Th rgrssion modls studid in prvious classs assum that th rspons variabl is quantitativ. Oftn, howvr, w wish to study social procsss that lad to two diffrnt outcoms.

More information

The example is taken from Sect. 1.2 of Vol. 1 of the CPN book.

The example is taken from Sect. 1.2 of Vol. 1 of the CPN book. Rsourc Allocation Abstract This is a small toy xampl which is wll-suitd as a first introduction to Cnts. Th CN modl is dscribd in grat dtail, xplaining th basic concpts of C-nts. Hnc, it can b rad by popl

More information

Improving Managerial Accounting and Calculation of Labor Costs in the Context of Using Standard Cost

Improving Managerial Accounting and Calculation of Labor Costs in the Context of Using Standard Cost Economy Transdisciplinarity Cognition www.ugb.ro/tc Vol. 16, Issu 1/2013 50-54 Improving Managrial Accounting and Calculation of Labor Costs in th Contxt of Using Standard Cost Lucian OCNEANU, Constantin

More information

Non-Homogeneous Systems, Euler s Method, and Exponential Matrix

Non-Homogeneous Systems, Euler s Method, and Exponential Matrix Non-Homognous Systms, Eulr s Mthod, and Exponntial Matrix W carry on nonhomognous first-ordr linar systm of diffrntial quations. W will show how Eulr s mthod gnralizs to systms, giving us a numrical approach

More information

Chi-Square. Hypothesis: There is an equal chance of flipping heads or tails on a coin. Coin A. Expected (e) (o e) (o e) 2 (o e) 2 e

Chi-Square. Hypothesis: There is an equal chance of flipping heads or tails on a coin. Coin A. Expected (e) (o e) (o e) 2 (o e) 2 e Why? Chi-Squar How do you know if your data is th rsult of random chanc or nvironmntal factors? Biologists and othr scintists us rlationships thy hav discovrd in th lab to prdict vnts that might happn

More information

Lecture 3: Diffusion: Fick s first law

Lecture 3: Diffusion: Fick s first law Lctur 3: Diffusion: Fick s first law Today s topics What is diffusion? What drivs diffusion to occur? Undrstand why diffusion can surprisingly occur against th concntration gradint? Larn how to dduc th

More information

Question 3: How do you find the relative extrema of a function?

Question 3: How do you find the relative extrema of a function? ustion 3: How do you find th rlativ trma of a function? Th stratgy for tracking th sign of th drivativ is usful for mor than dtrmining whr a function is incrasing or dcrasing. It is also usful for locating

More information

Exponential Growth and Decay; Modeling Data

Exponential Growth and Decay; Modeling Data Exponntial Growth and Dcay; Modling Data In this sction, w will study som of th applications of xponntial and logarithmic functions. Logarithms wr invntd by John Napir. Originally, thy wr usd to liminat

More information

Econ 371: Answer Key for Problem Set 1 (Chapter 12-13)

Econ 371: Answer Key for Problem Set 1 (Chapter 12-13) con 37: Answr Ky for Problm St (Chaptr 2-3) Instructor: Kanda Naknoi Sptmbr 4, 2005. (2 points) Is it possibl for a country to hav a currnt account dficit at th sam tim and has a surplus in its balanc

More information

Simulated Radioactive Decay Using Dice Nuclei

Simulated Radioactive Decay Using Dice Nuclei Purpos: In a radioactiv sourc containing a vry larg numbr of radioactiv nucli, it is not possibl to prdict whn any on of th nucli will dcay. Although th dcay tim for any on particular nuclus cannot b prdictd,

More information

Adverse Selection and Moral Hazard in a Model With 2 States of the World

Adverse Selection and Moral Hazard in a Model With 2 States of the World Advrs Slction and Moral Hazard in a Modl With 2 Stats of th World A modl of a risky situation with two discrt stats of th world has th advantag that it can b natly rprsntd using indiffrnc curv diagrams,

More information

The Matrix Exponential

The Matrix Exponential Th Matrix Exponntial (with xrciss) 92.222 - Linar Algbra II - Spring 2006 by D. Klain prliminary vrsion Corrctions and commnts ar wlcom! Th Matrix Exponntial For ach n n complx matrix A, dfin th xponntial

More information

7 Timetable test 1 The Combing Chart

7 Timetable test 1 The Combing Chart 7 Timtabl tst 1 Th Combing Chart 7.1 Introduction 7.2 Tachr tams two workd xampls 7.3 Th Principl of Compatibility 7.4 Choosing tachr tams workd xampl 7.5 Ruls for drawing a Combing Chart 7.6 Th Combing

More information

Architecture of the proposed standard

Architecture of the proposed standard Architctur of th proposd standard Introduction Th goal of th nw standardisation projct is th dvlopmnt of a standard dscribing building srvics (.g.hvac) product catalogus basd on th xprincs mad with th

More information

Foreign Exchange Markets and Exchange Rates

Foreign Exchange Markets and Exchange Rates Microconomics Topic 1: Explain why xchang rats indicat th pric of intrnational currncis and how xchang rats ar dtrmind by supply and dmand for currncis in intrnational markts. Rfrnc: Grgory Mankiw s Principls

More information

Traffic Flow Analysis (2)

Traffic Flow Analysis (2) Traffic Flow Analysis () Statistical Proprtis. Flow rat distributions. Hadway distributions. Spd distributions by Dr. Gang-Ln Chang, Profssor Dirctor of Traffic safty and Oprations Lab. Univrsity of Maryland,

More information

Enforcing Fine-grained Authorization Policies for Java Mobile Agents

Enforcing Fine-grained Authorization Policies for Java Mobile Agents Enforcing Fin-graind Authorization Policis for Java Mobil Agnts Giovanni Russllo Changyu Dong Narankr Dulay Dpartmnt of Computing Imprial Collg London South Knsington London, SW7 2AZ, UK {g.russllo, changyu.dong,

More information

SUBATOMIC PARTICLES AND ANTIPARTICLES AS DIFFERENT STATES OF THE SAME MICROCOSM OBJECT. Eduard N. Klenov* Rostov-on-Don. Russia

SUBATOMIC PARTICLES AND ANTIPARTICLES AS DIFFERENT STATES OF THE SAME MICROCOSM OBJECT. Eduard N. Klenov* Rostov-on-Don. Russia SUBATOMIC PARTICLES AND ANTIPARTICLES AS DIFFERENT STATES OF THE SAME MICROCOSM OBJECT Eduard N. Klnov* Rostov-on-Don. Russia Th distribution law for th valus of pairs of th consrvd additiv quantum numbrs

More information

Parallel and Distributed Programming. Performance Metrics

Parallel and Distributed Programming. Performance Metrics Paralll and Distributd Programming Prformanc! wo main goals to b achivd with th dsign of aralll alications ar:! Prformanc: th caacity to rduc th tim to solv th roblm whn th comuting rsourcs incras;! Scalability:

More information

EFFECT OF GEOMETRICAL PARAMETERS ON HEAT TRANSFER PERFORMACE OF RECTANGULAR CIRCUMFERENTIAL FINS

EFFECT OF GEOMETRICAL PARAMETERS ON HEAT TRANSFER PERFORMACE OF RECTANGULAR CIRCUMFERENTIAL FINS 25 Vol. 3 () January-March, pp.37-5/tripathi EFFECT OF GEOMETRICAL PARAMETERS ON HEAT TRANSFER PERFORMACE OF RECTANGULAR CIRCUMFERENTIAL FINS *Shilpa Tripathi Dpartmnt of Chmical Enginring, Indor Institut

More information

Version Issue Date Reason / Description of Change Author Draft February, N/A 2009

Version Issue Date Reason / Description of Change Author Draft February, N/A 2009 Appndix A: CNS Managmnt Procss: OTRS POC Documnt Control Titl : CNS Managmnt Procss Documnt : (Location of Documnt and Documnt numbr) Author : Ettin Vrmuln (EV) Ownr : ICT Stratgic Srvics Vrsion : Draft

More information

Deer: Predation or Starvation

Deer: Predation or Starvation : Prdation or Starvation National Scinc Contnt Standards: Lif Scinc: s and cosystms Rgulation and Bhavior Scinc in Prsonal and Social Prspctiv s, rsourcs and nvironmnts Unifying Concpts and Procsss Systms,

More information

Sigmoid Functions and Their Usage in Artificial Neural Networks

Sigmoid Functions and Their Usage in Artificial Neural Networks Sigmoid Functions and Thir Usag in Artificial Nural Ntworks Taskin Kocak School of Elctrical Enginring and Computr Scinc Applications of Calculus II: Invrs Functions Eampl problm Calculus Topic: Invrs

More information

Constraint-Based Analysis of Gene Deletion in a Metabolic Network

Constraint-Based Analysis of Gene Deletion in a Metabolic Network Constraint-Basd Analysis of Gn Dltion in a Mtabolic Ntwork Abdlhalim Larhlimi and Alxandr Bockmayr DFG-Rsarch Cntr Mathon, FB Mathmatik und Informatik, Fri Univrsität Brlin, Arnimall, 3, 14195 Brlin, Grmany

More information

CPS 220 Theory of Computation REGULAR LANGUAGES. Regular expressions

CPS 220 Theory of Computation REGULAR LANGUAGES. Regular expressions CPS 22 Thory of Computation REGULAR LANGUAGES Rgular xprssions Lik mathmatical xprssion (5+3) * 4. Rgular xprssion ar built using rgular oprations. (By th way, rgular xprssions show up in various languags:

More information

Free ACA SOLUTION (IRS 1094&1095 Reporting)

Free ACA SOLUTION (IRS 1094&1095 Reporting) Fr ACA SOLUTION (IRS 1094&1095 Rporting) Th Insuranc Exchang (301) 279-1062 ACA Srvics Transmit IRS Form 1094 -C for mployrs Print & mail IRS Form 1095-C to mploys HR Assist 360 will gnrat th 1095 s for

More information

SPECIAL VOWEL SOUNDS

SPECIAL VOWEL SOUNDS SPECIAL VOWEL SOUNDS Plas consult th appropriat supplmnt for th corrsponding computr softwar lsson. Rfr to th 42 Sounds Postr for ach of th Spcial Vowl Sounds. TEACHER INFORMATION: Spcial Vowl Sounds (SVS)

More information

A Derivation of Bill James Pythagorean Won-Loss Formula

A Derivation of Bill James Pythagorean Won-Loss Formula A Drivation of Bill Jams Pythagoran Won-Loss Formula Ths nots wr compild by John Paul Cook from a papr by Dr. Stphn J. Millr, an Assistant Profssor of Mathmatics at Williams Collg, for a talk givn to th

More information

June 2012. Enprise Rent. Enprise 1.1.6. Author: Document Version: Product: Product Version: SAP Version: 8.81.100 8.8

June 2012. Enprise Rent. Enprise 1.1.6. Author: Document Version: Product: Product Version: SAP Version: 8.81.100 8.8 Jun 22 Enpris Rnt Author: Documnt Vrsion: Product: Product Vrsion: SAP Vrsion: Enpris Enpris Rnt 88 88 Enpris Rnt 22 Enpris Solutions All rights rsrvd No parts of this work may b rproducd in any form or

More information

Principles of Humidity Dalton s law

Principles of Humidity Dalton s law Principls of Humidity Dalton s law Air is a mixtur of diffrnt gass. Th main gas componnts ar: Gas componnt volum [%] wight [%] Nitrogn N 2 78,03 75,47 Oxygn O 2 20,99 23,20 Argon Ar 0,93 1,28 Carbon dioxid

More information

C H A P T E R 1 Writing Reports with SAS

C H A P T E R 1 Writing Reports with SAS C H A P T E R 1 Writing Rports with SAS Prsnting information in a way that s undrstood by th audinc is fundamntally important to anyon s job. Onc you collct your data and undrstand its structur, you nd

More information

Basis risk. When speaking about forward or futures contracts, basis risk is the market

Basis risk. When speaking about forward or futures contracts, basis risk is the market Basis risk Whn spaking about forward or futurs contracts, basis risk is th markt risk mismatch btwn a position in th spot asst and th corrsponding futurs contract. Mor broadly spaking, basis risk (also

More information

Lecture 20: Emitter Follower and Differential Amplifiers

Lecture 20: Emitter Follower and Differential Amplifiers Whits, EE 3 Lctur 0 Pag of 8 Lctur 0: Emittr Followr and Diffrntial Amplifirs Th nxt two amplifir circuits w will discuss ar ry important to lctrical nginring in gnral, and to th NorCal 40A spcifically.

More information

5 2 index. e e. Prime numbers. Prime factors and factor trees. Powers. worked example 10. base. power

5 2 index. e e. Prime numbers. Prime factors and factor trees. Powers. worked example 10. base. power Prim numbrs W giv spcial nams to numbrs dpnding on how many factors thy hav. A prim numbr has xactly two factors: itslf and 1. A composit numbr has mor than two factors. 1 is a spcial numbr nithr prim

More information

The international Internet site of the geoviticulture MCC system Le site Internet international du système CCM géoviticole

The international Internet site of the geoviticulture MCC system Le site Internet international du système CCM géoviticole Th intrnational Intrnt sit of th goviticultur MCC systm L sit Intrnt intrnational du systèm CCM géoviticol Flávio BELLO FIALHO 1 and Jorg TONIETTO 1 1 Rsarchr, Embrapa Uva Vinho, Caixa Postal 130, 95700-000

More information

Category 7: Employee Commuting

Category 7: Employee Commuting 7 Catgory 7: Employ Commuting Catgory dscription This catgory includs missions from th transportation of mploys 4 btwn thir homs and thir worksits. Emissions from mploy commuting may aris from: Automobil

More information

SPECIFIC HEAT AND HEAT OF FUSION

SPECIFIC HEAT AND HEAT OF FUSION PURPOSE This laboratory consists of to sparat xprimnts. Th purpos of th first xprimnt is to masur th spcific hat of to solids, coppr and rock, ith a tchniqu knon as th mthod of mixturs. Th purpos of th

More information

HSBC Bank International Expat Explorer Survey 08

HSBC Bank International Expat Explorer Survey 08 HSBC Bank Intrnational Expat Explorr Survy 08 Rport On: Expat Existnc Th Survy Th Expat Explorr survy qustiond 2,155 xpatriats across four continnts about th opportunitis and challngs thy fac. Th survy

More information

Noble gas configuration. Atoms of other elements seek to attain a noble gas electron configuration. Electron configuration of ions

Noble gas configuration. Atoms of other elements seek to attain a noble gas electron configuration. Electron configuration of ions Valnc lctron configuration dtrmins th charactristics of lmnts in a group Nobl gas configuration Th nobl gass (last column in th priodic tabl) ar charactrizd by compltly filld s and p orbitals this is a

More information

LABORATORY 1 IDENTIFICATION OF CIRCUIT IN A BLACK-BOX

LABORATORY 1 IDENTIFICATION OF CIRCUIT IN A BLACK-BOX LABOATOY IDENTIFICATION OF CICUIT IN A BLACK-BOX OBJECTIES. To idntify th configuration of an lctrical circuit nclosd in a two-trminal black box.. To dtrmin th valus of ach componnt in th black box circuit.

More information

A Project Management framework for Software Implementation Planning and Management

A Project Management framework for Software Implementation Planning and Management PPM02 A Projct Managmnt framwork for Softwar Implmntation Planning and Managmnt Kith Lancastr Lancastr Stratgis Kith.Lancastr@LancastrStratgis.com Th goal of introducing nw tchnologis into your company

More information

A Note on Approximating. the Normal Distribution Function

A Note on Approximating. the Normal Distribution Function Applid Mathmatical Scincs, Vol, 00, no 9, 45-49 A Not on Approimating th Normal Distribution Function K M Aludaat and M T Alodat Dpartmnt of Statistics Yarmouk Univrsity, Jordan Aludaatkm@hotmailcom and

More information

FACULTY SALARIES FALL 2004. NKU CUPA Data Compared To Published National Data

FACULTY SALARIES FALL 2004. NKU CUPA Data Compared To Published National Data FACULTY SALARIES FALL 2004 NKU CUPA Data Compard To Publishd National Data May 2005 Fall 2004 NKU Faculty Salaris Compard To Fall 2004 Publishd CUPA Data In th fall 2004 Northrn Kntucky Univrsity was among

More information

WORKERS' COMPENSATION ANALYST, 1774 SENIOR WORKERS' COMPENSATION ANALYST, 1769

WORKERS' COMPENSATION ANALYST, 1774 SENIOR WORKERS' COMPENSATION ANALYST, 1769 08-16-85 WORKERS' COMPENSATION ANALYST, 1774 SENIOR WORKERS' COMPENSATION ANALYST, 1769 Summary of Dutis : Dtrmins City accptanc of workrs' compnsation cass for injurd mploys; authorizs appropriat tratmnt

More information

Use a high-level conceptual data model (ER Model). Identify objects of interest (entities) and relationships between these objects

Use a high-level conceptual data model (ER Model). Identify objects of interest (entities) and relationships between these objects Chaptr 3: Entity Rlationship Modl Databas Dsign Procss Us a high-lvl concptual data modl (ER Modl). Idntify objcts of intrst (ntitis) and rlationships btwn ths objcts Idntify constraints (conditions) End

More information

Planning and Managing Copper Cable Maintenance through Cost- Benefit Modeling

Planning and Managing Copper Cable Maintenance through Cost- Benefit Modeling Planning and Managing Coppr Cabl Maintnanc through Cost- Bnfit Modling Jason W. Rup U S WEST Advancd Tchnologis Bouldr Ky Words: Maintnanc, Managmnt Stratgy, Rhabilitation, Cost-bnfit Analysis, Rliability

More information

Entity-Relationship Model

Entity-Relationship Model Entity-Rlationship Modl Kuang-hua Chn Dpartmnt of Library and Information Scinc National Taiwan Univrsity A Company Databas Kps track of a company s mploys, dpartmnts and projcts Aftr th rquirmnts collction

More information

AP Calculus AB 2008 Scoring Guidelines

AP Calculus AB 2008 Scoring Guidelines AP Calculus AB 8 Scoring Guidlins Th Collg Board: Conncting Studnts to Collg Succss Th Collg Board is a not-for-profit mmbrship association whos mission is to connct studnts to collg succss and opportunity.

More information

The Normal Distribution: A derivation from basic principles

The Normal Distribution: A derivation from basic principles Th Normal Distribution: A drivation from basic principls Introduction Dan Tagu Th North Carolina School of Scinc and Mathmatics Studnts in lmntary calculus, statistics, and finit mathmatics classs oftn

More information

SIMULATION OF THE PERFECT COMPETITION AND MONOPOLY MARKET STRUCTURE IN THE COMPANY THEORY

SIMULATION OF THE PERFECT COMPETITION AND MONOPOLY MARKET STRUCTURE IN THE COMPANY THEORY 1 SIMULATION OF THE PERFECT COMPETITION AND MONOPOLY MARKET STRUCTURE IN THE COMPANY THEORY ALEXA Vasil ABSTRACT Th prsnt papr has as targt to crat a programm in th Matlab ara, in ordr to solv, didactically

More information

Statistical Machine Translation

Statistical Machine Translation Statistical Machin Translation Sophi Arnoult, Gidon Mailltt d Buy Wnnigr and Andra Schuch Dcmbr 7, 2010 1 Introduction All th IBM modls, and Statistical Machin Translation (SMT) in gnral, modl th problm

More information

MEASUREMENT AND ASSESSMENT OF IMPACT SOUND IN THE SAME ROOM. Hans G. Jonasson

MEASUREMENT AND ASSESSMENT OF IMPACT SOUND IN THE SAME ROOM. Hans G. Jonasson MEASUREMENT AND ASSESSMENT OF IMPACT SOUND IN THE SAME ROOM Hans G. Jonasson SP Tchnical Rsarch Institut of Swdn Box 857, SE-501 15 Borås, Swdn hans.jonasson@sp.s ABSTRACT Drum sound, that is th walking

More information

Gold versus stock investment: An econometric analysis

Gold versus stock investment: An econometric analysis Intrnational Journal of Dvlopmnt and Sustainability Onlin ISSN: 268-8662 www.isdsnt.com/ijds Volum Numbr, Jun 202, Pag -7 ISDS Articl ID: IJDS20300 Gold vrsus stock invstmnt: An conomtric analysis Martin

More information

Performance Evaluation

Performance Evaluation Prformanc Evaluation ( ) Contnts lists availabl at ScincDirct Prformanc Evaluation journal hompag: www.lsvir.com/locat/pva Modling Bay-lik rputation systms: Analysis, charactrization and insuranc mchanism

More information

Rural and Remote Broadband Access: Issues and Solutions in Australia

Rural and Remote Broadband Access: Issues and Solutions in Australia Rural and Rmot Broadband Accss: Issus and Solutions in Australia Dr Tony Warrn Group Managr Rgulatory Stratgy Tlstra Corp Pag 1 Tlstra in confidnc Ovrviw Australia s gographical siz and population dnsity

More information

Singleton Theorem Using Models

Singleton Theorem Using Models Singlton Thorm Using Modls Srivathsan B, Igor Walukiwicz LaBRI Paris, March 2010 Srivathsan B, Igor Walukiwicz (LaBRI) Singlton Thorm Using Modls Paris, March 2010 1 / 17 Introduction Singlton Thorm [Statman

More information

CPU. Rasterization. Per Vertex Operations & Primitive Assembly. Polynomial Evaluator. Frame Buffer. Per Fragment. Display List.

CPU. Rasterization. Per Vertex Operations & Primitive Assembly. Polynomial Evaluator. Frame Buffer. Per Fragment. Display List. Elmntary Rndring Elmntary rastr algorithms for fast rndring Gomtric Primitivs Lin procssing Polygon procssing Managing OpnGL Stat OpnGL uffrs OpnGL Gomtric Primitivs ll gomtric primitivs ar spcifid by

More information

Continuity Cloud Virtual Firewall Guide

Continuity Cloud Virtual Firewall Guide Cloud Virtual Firwall Guid uh6 Vrsion 1.0 Octobr 2015 Foldr BDR Guid for Vam Pag 1 of 36 Cloud Virtual Firwall Guid CONTENTS INTRODUCTION... 3 ACCESSING THE VIRTUAL FIREWALL... 4 HYPER-V/VIRTUALBOX CONTINUITY

More information

Installation Saving Space-efficient Panel Enhanced Physical Durability Enhanced Performance Warranty The IRR Comparison

Installation Saving Space-efficient Panel Enhanced Physical Durability Enhanced Performance Warranty The IRR Comparison Contnts Tchnology Nwly Dvlopd Cllo Tchnology Cllo Tchnology : Improvd Absorption of Light Doubl-sidd Cll Structur Cllo Tchnology : Lss Powr Gnration Loss Extrmly Low LID Clls 3 3 4 4 4 Advantag Installation

More information

Data warehouse on Manpower Employment for Decision Support System

Data warehouse on Manpower Employment for Decision Support System Data warhous on Manpowr Employmnt for Dcision Support Systm Amro F. ALASTA, and Muftah A. Enaba Abstract Sinc th us of computrs in businss world, data collction has bcom on of th most important issus du

More information

Solutions to Homework 8 chem 344 Sp 2014

Solutions to Homework 8 chem 344 Sp 2014 1. Solutions to Homwork 8 chm 44 Sp 14 .. 4. All diffrnt orbitals mans thy could all b paralll spins 5. Sinc lctrons ar in diffrnt orbitals any combination is possibl paird or unpaird spins 6. Equivalnt

More information

Abstract. Introduction. Statistical Approach for Analyzing Cell Phone Handoff Behavior. Volume 3, Issue 1, 2009

Abstract. Introduction. Statistical Approach for Analyzing Cell Phone Handoff Behavior. Volume 3, Issue 1, 2009 Volum 3, Issu 1, 29 Statistical Approach for Analyzing Cll Phon Handoff Bhavior Shalini Saxna, Florida Atlantic Univrsity, Boca Raton, FL, shalinisaxna1@gmail.com Sad A. Rajput, Farquhar Collg of Arts

More information

Key Management System Framework for Cloud Storage Singa Suparman, Eng Pin Kwang Temasek Polytechnic {singas,engpk}@tp.edu.sg

Key Management System Framework for Cloud Storage Singa Suparman, Eng Pin Kwang Temasek Polytechnic {singas,engpk}@tp.edu.sg Ky Managmnt Systm Framwork for Cloud Storag Singa Suparman, Eng Pin Kwang Tmask Polytchnic {singas,ngpk}@tp.du.sg Abstract In cloud storag, data ar oftn movd from on cloud storag srvic to anothr. Mor frquntly

More information

Cloud and Big Data Summer School, Stockholm, Aug., 2015 Jeffrey D. Ullman

Cloud and Big Data Summer School, Stockholm, Aug., 2015 Jeffrey D. Ullman Cloud and Big Data Summr Scool, Stockolm, Aug., 2015 Jffry D. Ullman Givn a st of points, wit a notion of distanc btwn points, group t points into som numbr of clustrs, so tat mmbrs of a clustr ar clos

More information

e = C / electron Q = Ne

e = C / electron Q = Ne Physics 0 Modul 01 Homwork 1. A glass rod that has bn chargd to +15.0 nc touchs a mtal sphr. Aftrword, th rod's charg is +8.00 nc. What kind of chargd particl was transfrrd btwn th rod and th sphr, and

More information

New Basis Functions. Section 8. Complex Fourier Series

New Basis Functions. Section 8. Complex Fourier Series Nw Basis Functions Sction 8 Complx Fourir Sris Th complx Fourir sris is prsntd first with priod 2, thn with gnral priod. Th connction with th ral-valud Fourir sris is xplaind and formula ar givn for convrting

More information

PROJECT FOCUS: More Key Skills in Music Year 5 Project 2

PROJECT FOCUS: More Key Skills in Music Year 5 Project 2 PROJECT FOCUS: Mor Ky Skills in Music Yar 5 Projct 2 This projct dvlops som of th ky skills that will b important for studying music throughout Yars 5 through 8. Pupils will work to improv thir skill lvl

More information

A Multi-Heuristic GA for Schedule Repair in Precast Plant Production

A Multi-Heuristic GA for Schedule Repair in Precast Plant Production From: ICAPS-03 Procdings. Copyright 2003, AAAI (www.aaai.org). All rights rsrvd. A Multi-Huristic GA for Schdul Rpair in Prcast Plant Production Wng-Tat Chan* and Tan Hng W** *Associat Profssor, Dpartmnt

More information

L13: Spectrum estimation nonparametric and parametric

L13: Spectrum estimation nonparametric and parametric L13: Spctrum stimation nonparamtric and paramtric Lnnart Svnsson Dpartmnt of Signals and Systms Chalmrs Univrsity of Tchnology Problm formulation Larning objctivs Aftr today s lctur you should b abl to

More information

Incomplete 2-Port Vector Network Analyzer Calibration Methods

Incomplete 2-Port Vector Network Analyzer Calibration Methods Incomplt -Port Vctor Ntwork nalyzr Calibration Mthods. Hnz, N. Tmpon, G. Monastrios, H. ilva 4 RF Mtrology Laboratory Instituto Nacional d Tcnología Industrial (INTI) Bunos irs, rgntina ahnz@inti.gov.ar

More information

Inference by Variable Elimination

Inference by Variable Elimination Chaptr 5 Infrnc by Variabl Elimination Our purpos in this chaptr is to prsnt on of th simplst mthods for gnral infrnc in Baysian ntworks, known as th mthod of Variabl Elimination. 5.1 Introduction Considr

More information

A Loadable Task Execution Recorder for Hierarchical Scheduling in Linux

A Loadable Task Execution Recorder for Hierarchical Scheduling in Linux A Loadabl Task Excution Rcordr for Hirarchical Schduling in Linux Mikal Åsbrg and Thomas Nolt MRTC/Mälardaln Univrsity PO Box 883, SE-721 23, Västrås, Swdn {mikalasbrg,thomasnolt@mdhs Shinpi Kato Carngi

More information

Cookie Policy- May 5, 2014

Cookie Policy- May 5, 2014 Cooki Policy- May 5, 2014 Us of Cookis on Sizmk Wbsits This Cooki Disclosur applis only to us of cookis on corporat wbsits (www.sizmk.com and rlatd rgional wbsits) publishd by Sizmk Inc. and its affiliats

More information

Sci.Int.(Lahore),26(1),131-138,2014 ISSN 1013-5316; CODEN: SINTE 8 131

Sci.Int.(Lahore),26(1),131-138,2014 ISSN 1013-5316; CODEN: SINTE 8 131 Sci.Int.(Lahor),26(1),131-138,214 ISSN 113-5316; CODEN: SINTE 8 131 REQUIREMENT CHANGE MANAGEMENT IN AGILE OFFSHORE DEVELOPMENT (RCMAOD) 1 Suhail Kazi, 2 Muhammad Salman Bashir, 3 Muhammad Munwar Iqbal,

More information

14.3 Area Between Curves

14.3 Area Between Curves 14. Ara Btwn Curvs Qustion 1: How is th ara btwn two functions calculatd? Qustion : What ar consumrs and producrs surplus? Earlir in this chaptr, w usd dfinit intgrals to find th ara undr a function and

More information

(Analytic Formula for the European Normal Black Scholes Formula)

(Analytic Formula for the European Normal Black Scholes Formula) (Analytic Formula for th Europan Normal Black Schols Formula) by Kazuhiro Iwasawa Dcmbr 2, 2001 In this short summary papr, a brif summary of Black Schols typ formula for Normal modl will b givn. Usually

More information

Chapter 9 Nuclear Radiation Radioactive Isotopes 9.1 radioactive isotope Natural Radioactivity

Chapter 9 Nuclear Radiation Radioactive Isotopes 9.1 radioactive isotope Natural Radioactivity Chaptr 9 Nuclar Radiation 9. Natural Radioactivity Radioactiv Isotops A radioactiv isotop has an unstabl nuclus. mits radiation to bcom mor stabl. can b on or mor of th isotops of an lmnt 2 Nuclar Radiation

More information

Ground Fault Current Distribution on Overhead Transmission Lines

Ground Fault Current Distribution on Overhead Transmission Lines FACTA UNIVERSITATIS (NIŠ) SER.: ELEC. ENERG. vol. 19, April 2006, 71-84 Ground Fault Currnt Distribution on Ovrhad Transmission Lins Maria Vintan and Adrian Buta Abstract: Whn a ground fault occurs on

More information

Modern Portfolio Theory (MPT) Statistics

Modern Portfolio Theory (MPT) Statistics Modrn Portfolio Thory (MPT) Statistics Morningstar Mthodology Papr May 9, 009 009 Morningstar, Inc. All rights rsrvd. Th information in this documnt is th proprty of Morningstar, Inc. Rproduction or transcription

More information

A Theoretical Model of Public Response to the Homeland Security Advisory System

A Theoretical Model of Public Response to the Homeland Security Advisory System A Thortical Modl of Public Rspons to th Homland Scurity Advisory Systm Amy (Wnxuan) Ding Dpartmnt of Information and Dcision Scincs Univrsity of Illinois Chicago, IL 60607 wxding@uicdu Using a diffrntial

More information

Factorials! Stirling s formula

Factorials! Stirling s formula Author s not: This articl may us idas you havn t larnd yt, and might sm ovrly complicatd. It is not. Undrstanding Stirling s formula is not for th faint of hart, and rquirs concntrating on a sustaind mathmatical

More information

http://www.wwnorton.com/chemistry/tutorials/ch14.htm Repulsive Force

http://www.wwnorton.com/chemistry/tutorials/ch14.htm Repulsive Force ctivation nrgis http://www.wwnorton.com/chmistry/tutorials/ch14.htm (back to collision thory...) Potntial and Kintic nrgy during a collision + + ngativly chargd lctron cloud Rpulsiv Forc ngativly chargd

More information

Combinatorial Analysis of Network Security

Combinatorial Analysis of Network Security Combinatorial Analysis of Ntwork Scurity Stvn Nol a, Brian O Brry a, Charls Hutchinson a, Sushil Jajodia a, Lynn Kuthan b, and Andy Nguyn b a Gorg Mason Univrsity Cntr for Scur Information Systms b Dfns

More information

ME 612 Metal Forming and Theory of Plasticity. 6. Strain

ME 612 Metal Forming and Theory of Plasticity. 6. Strain Mtal Forming and Thory of Plasticity -mail: azsnalp@gyt.du.tr Makin Mühndisliği Bölümü Gbz Yüksk Tknoloji Enstitüsü 6.1. Uniaxial Strain Figur 6.1 Dfinition of th uniaxial strain (a) Tnsil and (b) Comprssiv.

More information

Remember you can apply online. It s quick and easy. Go to www.gov.uk/advancedlearningloans. Title. Forename(s) Surname. Sex. Male Date of birth D

Remember you can apply online. It s quick and easy. Go to www.gov.uk/advancedlearningloans. Title. Forename(s) Surname. Sex. Male Date of birth D 24+ Advancd Larning Loan Application form Rmmbr you can apply onlin. It s quick and asy. Go to www.gov.uk/advancdlarningloans About this form Complt this form if: you r studying an ligibl cours at an approvd

More information

IHE IT Infrastructure (ITI) Technical Framework Supplement. Cross-Enterprise Document Workflow (XDW) Trial Implementation

IHE IT Infrastructure (ITI) Technical Framework Supplement. Cross-Enterprise Document Workflow (XDW) Trial Implementation Intgrating th Halthcar Entrpris 5 IHE IT Infrastructur (ITI) Tchnical Framwork Supplmnt 10 Cross-Entrpris Documnt Workflow (XDW) 15 Trial Implmntation 20 Dat: Octobr 13, 2014 Author: IHE ITI Tchnical Committ

More information

Mathematics. Mathematics 3. hsn.uk.net. Higher HSN23000

Mathematics. Mathematics 3. hsn.uk.net. Higher HSN23000 hsn uknt Highr Mathmatics UNIT Mathmatics HSN000 This documnt was producd spcially for th HSNuknt wbsit, and w rquir that any copis or drivativ works attribut th work to Highr Still Nots For mor dtails

More information

3. Yes. You can put 20 of the 6-V lights in series, or you can put several of the 6-V lights in series with a large resistance.

3. Yes. You can put 20 of the 6-V lights in series, or you can put several of the 6-V lights in series with a large resistance. CHAPTE 6: DC Circuits sponss to Qustions. Evn though th bird s ft ar at high potntial with rspct to th ground, thr is vry littl potntial diffrnc btwn thm, bcaus thy ar clos togthr on th wir. Th rsistanc

More information

GOAL SETTING AND PERSONAL MISSION STATEMENT

GOAL SETTING AND PERSONAL MISSION STATEMENT Prsonal Dvlopmnt Track Sction 4 GOAL SETTING AND PERSONAL MISSION STATEMENT Ky Points 1 Dfining a Vision 2 Writing a Prsonal Mission Statmnt 3 Writing SMART Goals to Support a Vision and Mission If you

More information

Analysis Of Injection Moulding Process Parameters

Analysis Of Injection Moulding Process Parameters Analysis Of Injction Moulding Procss Paramtrs Mr. M.G. Rathi Assistant Profssor, partmnt of Mchanical Enginring, Govrnmnt Collg of Enginring Aurangabad, (MS), India. Mr. Manoj amodar Salunk Studnt, partmnt

More information

Analyzing Failures of a Semi-Structured Supercomputer Log File Efficiently by Using PIG on Hadoop

Analyzing Failures of a Semi-Structured Supercomputer Log File Efficiently by Using PIG on Hadoop Intrnational Journal of Computr Scinc and Enginring Opn Accss Rsarch Papr Volum-2, Issu-1 E-ISSN: 2347-2693 Analyzing Failurs of a Smi-Structurd Suprcomputr Log Fil Efficintly by Using PIG on Hadoop Madhuri

More information

Introduction to Finite Element Modeling

Introduction to Finite Element Modeling Introduction to Finit Elmnt Modling Enginring analysis of mchanical systms hav bn addrssd by driving diffrntial quations rlating th variabls of through basic physical principls such as quilibrium, consrvation

More information

Optical Modulation Amplitude (OMA) and Extinction Ratio

Optical Modulation Amplitude (OMA) and Extinction Ratio Application Not: HFAN-.. Rv; 4/8 Optical Modulation Amplitud (OMA) and Extinction Ratio AVAILABLE Optical Modulation Amplitud (OMA) and Extinction Ratio Introduction Th optical modulation amplitud (OMA)

More information

81-1-ISD Economic Considerations of Heat Transfer on Sheet Metal Duct

81-1-ISD Economic Considerations of Heat Transfer on Sheet Metal Duct Air Handling Systms Enginring & chnical Bulltin 81-1-ISD Economic Considrations of Hat ransfr on Sht Mtal Duct Othr bulltins hav dmonstratd th nd to add insulation to cooling/hating ducts in ordr to achiv

More information

I/O Deduplication: Utilizing Content Similarity to Improve I/O Performance

I/O Deduplication: Utilizing Content Similarity to Improve I/O Performance I/O Dduplication: Utilizing Contnt Similarity to Improv I/O Prformanc Ricardo Kollr Raju Rangaswami rkoll001@cs.fiu.du raju@cs.fiu.du School of Computing and Information Scincs, Florida Intrnational Univrsity

More information

Meerkats: A Power-Aware, Self-Managing Wireless Camera Network for Wide Area Monitoring

Meerkats: A Power-Aware, Self-Managing Wireless Camera Network for Wide Area Monitoring Mrkats: A Powr-Awar, Slf-Managing Wirlss Camra Ntwork for Wid Ara Monitoring C. B. Margi 1, X. Lu 1, G. Zhang 1, G. Stank 2, R. Manduchi 1, K. Obraczka 1 1 Dpartmnt of Computr Enginring, Univrsity of California,

More information

Modelling and Solving Two-Step Equations: ax + b = c

Modelling and Solving Two-Step Equations: ax + b = c Modlling and Solving To-Stp Equations: a + b c Focus on Aftr this lsson, you ill b abl to φ modl problms φ ith to-stp linar quations solv to-stp linar quations and sho ho you ord out th ansr Cali borrod

More information

An Broad outline of Redundant Array of Inexpensive Disks Shaifali Shrivastava 1 Department of Computer Science and Engineering AITR, Indore

An Broad outline of Redundant Array of Inexpensive Disks Shaifali Shrivastava 1 Department of Computer Science and Engineering AITR, Indore Intrnational Journal of mrging Tchnology and dvancd nginring Wbsit: www.ijta.com (ISSN 2250-2459, Volum 2, Issu 4, pril 2012) n road outlin of Rdundant rray of Inxpnsiv isks Shaifali Shrivastava 1 partmnt

More information