{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,1]],"date-time":"2026-05-01T12:04:52Z","timestamp":1777637092589,"version":"3.51.4"},"reference-count":77,"publisher":"Springer Science and Business Media LLC","issue":"5","license":[{"start":{"date-parts":[[2017,11,27]],"date-time":"2017-11-27T00:00:00Z","timestamp":1511740800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2017,11,27]],"date-time":"2017-11-27T00:00:00Z","timestamp":1511740800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"funder":[{"DOI":"10.13039\/100000083","name":"Directorate for Computer and Information Science and Engineering","doi-asserted-by":"publisher","award":["CCF-1652149"],"award-info":[{"award-number":["CCF-1652149"]}],"id":[{"id":"10.13039\/100000083","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000083","name":"Directorate for Computer and Information Science and Engineering","doi-asserted-by":"publisher","award":["CCF-1464032"],"award-info":[{"award-number":["CCF-1464032"]}],"id":[{"id":"10.13039\/100000083","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"crossref","award":["Emmy Noether project"],"award-info":[{"award-number":["Emmy Noether project"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2018,10]]},"DOI":"10.1007\/s10664-017-9578-1","type":"journal-article","created":{"date-parts":[[2017,11,27]],"date-time":"2017-11-27T10:21:48Z","timestamp":1511778108000},"page":"3034-3071","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":22,"title":["Pinpointing and repairing performance bottlenecks in concurrent programs"],"prefix":"10.1007","volume":"23","author":[{"given":"Tingting","family":"Yu","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Michael","family":"Pradel","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2017,11,27]]},"reference":[{"key":"9578_CR1","doi-asserted-by":"crossref","unstructured":"Alam K, Ahmad R, Ko K (2017) Enabling far-edge analytics: performance profiling of frequent pattern mining algorithms. IEEE Access","DOI":"10.1109\/ACCESS.2017.2699172"},{"key":"9578_CR2","doi-asserted-by":"crossref","unstructured":"Ammons G, Choi J-D, Gupta M, Swamy N (2004) Finding and removing performance bottlenecks in large systems","DOI":"10.1007\/978-3-540-24851-4_8"},{"key":"9578_CR3","unstructured":"Arlitt MF, Williamson CL (1996) Web server workload characterization: the search for invariants. 126\u2013137"},{"key":"9578_CR4","doi-asserted-by":"publisher","first-page":"207","DOI":"10.1002\/stvr.281","volume":"13","author":"C Artho","year":"2003","unstructured":"Artho C, Havelund K, Biere A (2003) High-level data races. J Softw Test Verif Reliab 13:207\u2013227","journal-title":"J Softw Test Verif Reliab"},{"key":"9578_CR5","doi-asserted-by":"crossref","unstructured":"Avritzer A, Kondek J, Liu D, Weyuker EJ (2002) Software performance testing based on workload characterization. In: Proceedings of the international workshop on software and performance, pp 17\u2013 24","DOI":"10.1145\/584369.584373"},{"key":"9578_CR6","first-page":"238","volume":"9","author":"P Barford","year":"2001","unstructured":"Barford P, Crovella M (2001) Critical path analysis of TCP, transactions. Proc Conf Appl Technol Architect Protoc Comput Commun 9:238\u2013248","journal-title":"Proc Conf Appl Technol Architect Protoc Comput Commun"},{"key":"9578_CR7","unstructured":"Bois K, Eyerman S, Sartor JB, Eeckhout L (2013) Criticality stacks: identifying critical threads in parallel programs using synchronization behavior. In: Proceedings of the 40th annual international symposium on computer architecture, pp 511\u2013522"},{"key":"9578_CR8","doi-asserted-by":"crossref","unstructured":"Bond MD, Coons KE, McKinley KS (2010) PACER: proportional detection of data races. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 255\u2013268","DOI":"10.1145\/1806596.1806626"},{"key":"9578_CR9","doi-asserted-by":"crossref","unstructured":"Burckhardt S, Kothari P, Musuvathi M, Nagarakatte S (2010) A randomized scheduler with probabilistic guarantees of finding bugs. In: Proceedings of the international conference on architectural support for programming languages and operating systems, pp 167\u2013178","DOI":"10.1145\/1736020.1736040"},{"key":"9578_CR10","doi-asserted-by":"crossref","unstructured":"Chen G, Stenstrom P (2012) Critical lock analysis: Diagnosing critical section bottlenecks in multithreaded applications. In: Proceedings of the international conference on high performance computing, networking, storage and analysis","DOI":"10.1109\/SC.2012.40"},{"key":"9578_CR11","doi-asserted-by":"crossref","unstructured":"Choudhary A, Lu S, Pradel M (2017) Efficient detection of thread safety violations via coverage-guided generation of concurrent tests. In: International conference on software engineering, pp 266\u2013277","DOI":"10.1109\/ICSE.2017.32"},{"key":"9578_CR12","unstructured":"Cleve H, Zeller A (2005) Locating causes of program failures. In: Proceedings of the international conference on software engineering, pp 342\u2013351"},{"key":"9578_CR13","doi-asserted-by":"crossref","unstructured":"Coons KE, Burckhardt S, Musuvathi M (2010) GAMBIT: effective unit testing for concurrency libraries. In: Proceedings of the ACM SIGPLAN symposium on principles and practice of parallel programming, pp 15\u201324","DOI":"10.1145\/1693453.1693458"},{"key":"9578_CR14","doi-asserted-by":"crossref","unstructured":"Curtsinger C, Berger ED (2015) Coz: finding code that counts with causal profiling. In: Proceedings of the ACM symposium on operating systems principles, pp 184\u2013197","DOI":"10.1145\/2815400.2815409"},{"key":"9578_CR15","unstructured":"Diagnosing Lock Contention with the Concurrency Visualizer (2010) Microsoft MSDN"},{"key":"9578_CR16","doi-asserted-by":"crossref","unstructured":"Draheim D, Grundy J, Hosking J, Lutteroth C, Weber G (2006) Realistic load testing of web applications. In: Conference on software maintenance and reengineering, pp 11\u201370","DOI":"10.1109\/CSMR.2006.43"},{"key":"9578_CR17","unstructured":"DRD (2015) A thread error detector, http:\/\/valgrind.org\/docs\/manual\/drd-manual.html"},{"key":"9578_CR18","unstructured":"Identify Thread Contention (2015) https:\/\/community.dynatrace.com"},{"key":"9578_CR19","unstructured":"Intel\u00ae vtuneTM amplifier xe (2014) http:\/\/software.intel.com\/en-us\/articles\/intel-vtune-amplifier-xe\/"},{"key":"9578_CR20","doi-asserted-by":"crossref","unstructured":"Effinger-Dean L, Lucia B, Ceze L, Grossman D, Boehm H-J (2012) Ifrit: interference-free regions for dynamic data-race detection. In: Proceedings of the ACM SIGPLAN international conference on object oriented programming systems languages and applications, pp 467\u2013484","DOI":"10.1145\/2384616.2384650"},{"key":"9578_CR21","doi-asserted-by":"crossref","unstructured":"Eyerman S, Eeckhout L (2010) Modeling critical sections in amdahl\u2019s law and its implications for multicore design. In: Proceedings of the international symposium on computer architecture, pp 362\u2013370","DOI":"10.1145\/1816038.1816011"},{"key":"9578_CR22","doi-asserted-by":"crossref","unstructured":"Flanagan C, Freund SN (2004) Atomizer: a dynamic atomicity checker for multithreaded programs. In: Proceedings of the international symposium on principles of programming languages, pp 256\u2013267","DOI":"10.1145\/964001.964023"},{"key":"9578_CR23","doi-asserted-by":"crossref","unstructured":"Flanagan C, Qadeer S (2003) A type and effect system for atomicity. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 338\u2013349","DOI":"10.1145\/781131.781169"},{"key":"9578_CR24","unstructured":"Fouch\u00e9 S, Cohen MB, Porter A (2007) Towards incremental adaptive covering arrays. In: Proceedings of the ACM SIGSOFT symposium on foundations of software engineering, pp 557\u2013560"},{"key":"9578_CR25","doi-asserted-by":"crossref","unstructured":"Gong L, Pradel M, Sen K (2015) JITProf pinpointing JIT-unfriendly JavaScript code. In: Proceedings of the ACM SIGSOFT symposium on foundations of software engineering, pp 357\u2013368","DOI":"10.1145\/2786805.2786831"},{"key":"9578_CR26","doi-asserted-by":"crossref","unstructured":"Gray JN, Lorie RA, Putzolu GR (1975) Granularity of locks in a shared data base. In: Proceedings of the international conference on very large data bases, pp 428\u2013451","DOI":"10.1145\/1282480.1282513"},{"key":"9578_CR27","doi-asserted-by":"crossref","unstructured":"Gu R, Jin G, Song L, Zhu L, Lu S (2015) What change history tells us about thread synchronization. In: Proceedings of the ACM SIGSOFT symposium on foundations of software engineering, pp 426\u2013438","DOI":"10.1145\/2786805.2786815"},{"issue":"3","key":"9578_CR28","doi-asserted-by":"publisher","first-page":"255","DOI":"10.1016\/0167-739X(90)90023-7","volume":"6","author":"R Gupta","year":"1990","unstructured":"Gupta R, Epstein M (1990) Achieving low cost synchronization in a multiprocessor system. Fut Gen Comput Syst 6(3):255\u2013269","journal-title":"Fut Gen Comput Syst"},{"key":"9578_CR29","doi-asserted-by":"crossref","unstructured":"Han S, Dang Y, Ge S, Zhang D, Xie T (2012) Performance debugging in the large via mining millions of stack traces. In: Proceedings of the international conference on software engineering, pp 145\u2013155","DOI":"10.1109\/ICSE.2012.6227198"},{"issue":"3","key":"9578_CR30","doi-asserted-by":"publisher","first-page":"30","DOI":"10.1145\/882105.882110","volume":"31","author":"M Heinrich","year":"2003","unstructured":"Heinrich M, Chaudhuri M (2003) Ocean warning: avoid drowning. SIGARCH Comput Archit News 31(3):30\u201332","journal-title":"SIGARCH Comput Archit News"},{"key":"9578_CR31","doi-asserted-by":"crossref","unstructured":"Heirman W, Carlson T, Che S, Skadron K, Eeckhout L (2011) Using cycle stacks to understand scaling bottlenecks in multi-threaded workloads. In: International symposium on workload characterization, pp 38\u201349","DOI":"10.1109\/IISWC.2011.6114195"},{"key":"9578_CR32","doi-asserted-by":"crossref","unstructured":"Jin G, Song L, Shi X, Scherpelz J, Lu S (2012) Understanding and detecting real-world performance bugs. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 77\u201388","DOI":"10.1145\/2254064.2254075"},{"key":"9578_CR33","doi-asserted-by":"crossref","unstructured":"Joao JA, Suleman MA, Mutlu O, Patt YN (2012) Bottleneck identification and scheduling in multithreaded applications. In: Proceedings of the international conference on architectural support for programming languages and operating systems, pp 223\u2013234","DOI":"10.1145\/2150976.2151001"},{"key":"9578_CR34","unstructured":"Jones JA, Harrold MJ (2005) Empirical evaluation of the tarantula automatic fault-localization technique. In: Proceedings of international conference on automated software engineering, pp 273\u2013282"},{"key":"9578_CR35","doi-asserted-by":"crossref","unstructured":"Joshi S, Lahiri SK, Lal A (2012) Underspecified harnesses and interleaved bugs. In: Proceedings of the international symposium on principles of programming languages, pp 19\u201330","DOI":"10.1145\/2103656.2103662"},{"key":"9578_CR36","doi-asserted-by":"crossref","unstructured":"Kahlon V, Sinha N, Kruus E, Zhang Y (2009) Static data race detection for concurrent programs with asynchronous calls. In: Proceedings of the ACM SIGSOFT symposium on foundations of software engineering, pp 13\u201322","DOI":"10.1145\/1595696.1595701"},{"key":"9578_CR37","doi-asserted-by":"crossref","unstructured":"Koskinen E, Herlihy M (2008) Dreadlocks: efficient deadlock detection. In: Proceedings of the symposium on parallelism in algorithms and architectures, pp 297\u2013303","DOI":"10.1145\/1378533.1378585"},{"key":"9578_CR38","unstructured":"Lozi J -P, David F, Thomas G, Lawall J, Muller G (2012) Remote core locking: migrating critical-section execution to improve the performance of multithreaded applications. In: USENIX annual technical conference, pp 6\u20136"},{"key":"9578_CR39","unstructured":"Luk C -K, Cohn R, Muth R, Patil H, Klauser A, Lowney G, Wallace S, Reddi VJ, Hazelwood K (2005) Pin: building customized program analysis tools with dynamic instrumentation. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 190\u2013200"},{"key":"9578_CR40","doi-asserted-by":"crossref","unstructured":"Marino D, Musuvathi M, Narayanasamy S (2009) LiteRace: effective sampling for lightweight data-race detection. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 134\u2013143","DOI":"10.1145\/1542476.1542491"},{"key":"9578_CR41","unstructured":"Mertler CA, Vannatta RA (2002) Advanced and multivariate statistical methods, Pyrczak, Los Angeles"},{"key":"9578_CR42","unstructured":"Michael MM, Scott ML (1996) Simple, fast, and practical non-blocking and blocking concurrent queue algorithms. In: Proceedings of the ACM symposium on principles of distributed computing, pp 267\u2013 275"},{"key":"9578_CR43","doi-asserted-by":"crossref","unstructured":"Miller B, Clark M, Hollingsworth J, Kierstead S, Lim S -S, Torzewski T (1990) IPS-2: the second generation of a parallel program measurement system. In: IEEE transactions on parallel and distributed systems, pp 206\u2013217","DOI":"10.1109\/71.80132"},{"issue":"3","key":"9578_CR44","doi-asserted-by":"publisher","first-page":"31","DOI":"10.1145\/306225.306235","volume":"26","author":"D Mosberger","year":"1998","unstructured":"Mosberger D, Jin T (1998) A tool for measuring web server performance. ACM SIGMETRICS Perform Eval Rev 26(3):31\u201337","journal-title":"ACM SIGMETRICS Perform Eval Rev"},{"key":"9578_CR45","unstructured":"Musuvathi M, Qadeer S, Ball T, Basler G, Nainar PA, Neamtiu I (2008) Finding and reproducing Heisenbugs in concurrent programs. In: Proceedings of the USENIX conference on operating systems design and implementation, pp 267\u2013280"},{"key":"9578_CR46","doi-asserted-by":"crossref","unstructured":"Naik M, Park C-S, Sen K, Gay D (2009) Effective static deadlock detection. In: Proceedings of the international conference on software engineering, pp 386\u2013396","DOI":"10.1109\/ICSE.2009.5070538"},{"key":"9578_CR47","doi-asserted-by":"crossref","unstructured":"Nistor A, Luo Q, Pradel M, Gross TR, Marinov D (2012) Ballerina: automatic generation and clustering of efficient random unit tests for multithreaded code. In: Proceedings of the international conference on software engineering, pp 727\u2013737","DOI":"10.1109\/ICSE.2012.6227145"},{"key":"9578_CR48","doi-asserted-by":"crossref","unstructured":"Nistor A, Song L, Marinov D, Lu S (2013) Toddler: detecting performance problems via similar memory-access patterns. In: Proceedings of the international conference on software engineering, pp 562\u2013571","DOI":"10.1109\/ICSE.2013.6606602"},{"key":"9578_CR49","doi-asserted-by":"crossref","unstructured":"Novillo E, Lu P (2003) A case study of selected SPLASH-2 applications and the sbt debugging tool. In: Proceedings of the international symposium on parallel and distributed processing, p 290.2","DOI":"10.1109\/IPDPS.2003.1213519"},{"key":"9578_CR50","doi-asserted-by":"crossref","unstructured":"Olivier S, Huan J, Liu J, Prins J, Dinan J, Sadayappan P, Tseng C-W (2007) UTS: an unbalanced tree search benchmark. In: LCPC, pp 235\u2013250","DOI":"10.1007\/978-3-540-72521-3_18"},{"key":"9578_CR51","unstructured":"Ongoing work on lock contention in QEMU driver (2013). https:\/\/www.redhat.com\/archives\/libvir-list\/2013-May\/msg01247.html"},{"key":"9578_CR52","doi-asserted-by":"crossref","unstructured":"Pradel M, Gross TR (2012) Fully automatic and precise detection of thread safety violations. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 521\u2013 530","DOI":"10.1145\/2254064.2254126"},{"key":"9578_CR53","doi-asserted-by":"crossref","unstructured":"Pradel M, Huggler M, Gross TR (2014) Performance regression testing of concurrent classes. In: Proceedings of the international symposium on software testing and analysis, pp 13\u201325","DOI":"10.1145\/2610384.2610393"},{"key":"9578_CR54","doi-asserted-by":"crossref","unstructured":"Pradel M, Schuh P, Necula G, Sen K (2014) EventBreak: analyzing the responsiveness of user interfaces through performance-guided test generation. In: Proceedings of the ACM SIGPLAN international conference on object oriented programming systems languages and applications","DOI":"10.1145\/2660193.2660233"},{"key":"9578_CR55","doi-asserted-by":"crossref","unstructured":"Rajwar R, Goodman JR (2001) Speculative lock elision: enabling highly concurrent multithreaded execution. In: Proceedings of the ACM\/IEEE international symposium on microarchitecture, pp 294\u2013305","DOI":"10.1109\/MICRO.2001.991127"},{"key":"9578_CR56","doi-asserted-by":"crossref","unstructured":"Roy A, Hand S, Harris T (2009) A runtime system for software lock elision. In: Proceedings of the SIGOPS\/EuroSys European conference on computer systems, pp 261\u2013274","DOI":"10.1145\/1519065.1519094"},{"key":"9578_CR57","doi-asserted-by":"crossref","unstructured":"Sahelices B, Ib\u00e1\u00f1ez P, Vi\u00f1als V, Llaber\u00eda J M (2009) A methodology to characterize critical section bottlenecks in dsm multiprocessors. In: Proceedings of the international euro-par conference on parallel processing, pp 149\u2013161","DOI":"10.1007\/978-3-642-03869-3_17"},{"key":"9578_CR58","doi-asserted-by":"crossref","unstructured":"Samak M, Ramanathan MK (2014) Trace driven dynamic deadlock detection and reproduction. In: Proceedings of the ACM SIGPLAN symposium on principles and practice of parallel programming, pp 29\u201342","DOI":"10.1145\/2555243.2555262"},{"key":"9578_CR59","doi-asserted-by":"crossref","unstructured":"Selakovic M, Pradel M (2016) Performance issues and optimizations in JavaScript: an empirical study. In: Proceedings of the international conference on software engineering","DOI":"10.1145\/2884781.2884829"},{"key":"9578_CR60","doi-asserted-by":"crossref","unstructured":"Selakovic M, Glaser T, Pradel M (2017) An actionable performance profiler for optimizing the order of evaluations. In: International symposium on software testing and analysis, pp 170\u2013180","DOI":"10.1145\/3092703.3092716"},{"key":"9578_CR61","doi-asserted-by":"crossref","unstructured":"Sen K (2007) Effective random testing of concurrent programs. In: Proceedings of international conference on automated software engineering, pp 323\u2013332","DOI":"10.1145\/1321631.1321679"},{"key":"9578_CR62","doi-asserted-by":"crossref","unstructured":"Sen K (2008) Race directed random testing of concurrent programs. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 11\u201321","DOI":"10.1145\/1375581.1375584"},{"key":"9578_CR63","doi-asserted-by":"crossref","unstructured":"Shacham O, Bronson N, Aiken A, Sagiv M, Vechev M, Yahav E (2011) Testing atomicity of composed concurrent operations. In: Proceedings of the ACM SIGPLAN international conference on object oriented programming systems languages and applications, pp 51\u201364","DOI":"10.1145\/2048066.2048073"},{"key":"9578_CR64","doi-asserted-by":"crossref","unstructured":"Sim J, Dasgupta A, Kim H, Vuduc R (2012) A performance analysis framework for identifying potential benefits in GPGPU applications. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 11\u201322","DOI":"10.1145\/2145816.2145819"},{"key":"9578_CR65","doi-asserted-by":"crossref","unstructured":"Tallent NR, Mellor-Crummey JM, Porterfield A (2010) Analyzing lock contention in multithreaded applications. In: Proceedings of the ACM SIGPLAN symposium on principles and practice of parallel programming, pp 269\u2013280","DOI":"10.1145\/1693453.1693489"},{"key":"9578_CR66","unstructured":"Toffola LD, Pradel M, Gross TR (2015) Performance problems you can fix: a dynamic analysis of memoization opportunities. In: Proceedings of the ACM SIGPLAN international conference on object oriented programming systems languages and applications"},{"issue":"2","key":"9578_CR67","doi-asserted-by":"publisher","first-page":"203","DOI":"10.1023\/A:1022920129859","volume":"10","author":"W Visser","year":"2003","unstructured":"Visser W, Havelund K, Brat GP, Park S, Lerda F (2003) Model checking programs. Autom Softw Eng 10(2):203\u2013232","journal-title":"Autom Softw Eng"},{"key":"9578_CR68","doi-asserted-by":"crossref","unstructured":"von Praun C, Gross TR (2003) Static conflict analysis for multi-threaded object-oriented programs. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 115\u2013128","DOI":"10.1145\/781131.781145"},{"key":"9578_CR69","doi-asserted-by":"crossref","unstructured":"Wang L, Stoller SD (2006) Accurate and efficient runtime detection of atomicity errors in concurrent programs. In: Proceedings of the ACM SIGPLAN symposium on principles and practice of parallel programming, pp 137\u2013146","DOI":"10.1145\/1122971.1122993"},{"key":"9578_CR70","unstructured":"Wang Y, Kelly T, Kudlur M, Lafortune S, Mahlke S (2008) Gadara: dynamic deadlock avoidance for multithreaded programs. In: Proceedings of the USENIX conference on operating systems design and implementation, pp 281\u2013294"},{"key":"9578_CR71","doi-asserted-by":"crossref","unstructured":"Wert A, Happe J, Happe L (2013) Supporting swift reaction: automatically uncovering performance problems by systematic experiments. In: Proceedings of the international conference on software engineering, pp 552\u2013561","DOI":"10.1109\/ICSE.2013.6606601"},{"key":"9578_CR72","doi-asserted-by":"crossref","unstructured":"Williams A, Thies W, Ernst MD (2005) Static deadlock detection for java libraries. In: European conference on object-oriented programming, pp 602\u2013629","DOI":"10.1007\/11531142_26"},{"key":"9578_CR73","doi-asserted-by":"crossref","unstructured":"Woo SC, Ohara M, Torrie E, Singh JP, Gupta A (1995) The SPLASH-2 programs: characterization and methodological considerations. In: Proceedings of the international symposium on computer architecture, pp 24\u201336","DOI":"10.1145\/223982.223990"},{"key":"9578_CR74","doi-asserted-by":"crossref","unstructured":"Xu M, Bod\u00edk R, Hill MD (2005) A serializability violation detector for shared-memory server programs. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation, pp 1\u201314","DOI":"10.1145\/1065010.1065013"},{"key":"9578_CR75","doi-asserted-by":"crossref","unstructured":"Yu T, Pradel M (2016) Syncprof: detecting, localizing, and optimizing synchronization bottlenecks. In: Proceedings of the international symposium on software testing and analysis, pp 389\u2013400","DOI":"10.1145\/2931037.2931070"},{"key":"9578_CR76","doi-asserted-by":"crossref","unstructured":"Yu X, Han S, Zhang D, Xie T (2014) Comprehending performance from real-world execution traces: a device-driver case. In: Proceedings of the international conference on architectural support for programming languages and operating systems, pp 193\u2013206","DOI":"10.1145\/2541940.2541968"},{"key":"9578_CR77","doi-asserted-by":"crossref","unstructured":"Zheng L, Liao X, He B, Wu S, Jin H (2015) On performance debugging of unnecessary lock contentions on multicore processors: a replay-based approach. In: Proceedings of the IEEE\/ACM international symposium on code generation and optimization","DOI":"10.1109\/CGO.2015.7054187"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10664-017-9578-1\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-017-9578-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-017-9578-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,8,29]],"date-time":"2023-08-29T07:05:13Z","timestamp":1693292713000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10664-017-9578-1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,11,27]]},"references-count":77,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2018,10]]}},"alternative-id":["9578"],"URL":"https:\/\/doi.org\/10.1007\/s10664-017-9578-1","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,11,27]]},"assertion":[{"value":"27 November 2017","order":1,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}