{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,28]],"date-time":"2026-04-28T15:33:12Z","timestamp":1777390392947,"version":"3.51.4"},"reference-count":29,"publisher":"Springer Science and Business Media LLC","issue":"4","license":[{"start":{"date-parts":[[2023,6,17]],"date-time":"2023-06-17T00:00:00Z","timestamp":1686960000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2023,6,17]],"date-time":"2023-06-17T00:00:00Z","timestamp":1686960000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"funder":[{"DOI":"10.13039\/501100001809","name":"National Science Foundation of China","doi-asserted-by":"crossref","award":["61702144"],"award-info":[{"award-number":["61702144"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Zhejiang Provincial National Science Foundation of China","award":["LQ17F020003"],"award-info":[{"award-number":["LQ17F020003"]}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Software Qual J"],"published-print":{"date-parts":[[2023,12]]},"DOI":"10.1007\/s11219-023-09641-5","type":"journal-article","created":{"date-parts":[[2023,6,17]],"date-time":"2023-06-17T17:01:36Z","timestamp":1687021296000},"page":"1303-1330","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":1,"title":["Towards an understanding of memory leak patterns: an empirical study in Python"],"prefix":"10.1007","volume":"31","author":[{"given":"Jie","family":"Chen","sequence":"first","affiliation":[]},{"given":"Dongjin","family":"Yu","sequence":"additional","affiliation":[]},{"given":"Haiyang","family":"Hu","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2023,6,17]]},"reference":[{"key":"9641_CR1","doi-asserted-by":"crossref","unstructured":"Campos, E. C., & Maia, M. D. A. (2017). Common bug-fix patterns: a large-scale observational study. In ACM\/IEEE International Symposium on Empirical Software Engineering and Measurement. ACM.","DOI":"10.1109\/ESEM.2017.55"},{"key":"9641_CR2","doi-asserted-by":"crossref","unstructured":"Cherem, S., Princehouse, L., & Rugina. R. (2007). Practical memory leak detection using guarded value-flow analysis. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 480\u2013491.","DOI":"10.1145\/1273442.1250789"},{"issue":"6","key":"9641_CR3","first-page":"503","volume":"14","author":"TW Christopher","year":"1984","unstructured":"Christopher, T. W. (1984). Reference count garbage collection. Software: Practice and Experience, 14(6), 503\u2013507.","journal-title":"Software: Practice and Experience"},{"key":"9641_CR4","doi-asserted-by":"crossref","unstructured":"Clause, J., & Orso, A. (2010). Leakpoint: Pinpointing the causes of memory leaks. In Proceedings of the 32nd ACM\/IEEE International Conference on Software Engineering (vol. 1), ICSE \u201910, pp. 515\u2013524.","DOI":"10.1145\/1806799.1806874"},{"key":"9641_CR5","unstructured":"Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms. MIT Press, Cambridge, MA, third edition."},{"key":"9641_CR6","doi-asserted-by":"crossref","unstructured":"Distefano, D., & Filipovic, I. (2010). Memory leaks detection in Java by bi-abductive inference. In International Conference on Fundamental Approaches to Software Engineering (FASE), pp. 278\u2013292.","DOI":"10.1007\/978-3-642-12029-9_20"},{"key":"9641_CR7","doi-asserted-by":"crossref","unstructured":"Fan, G., Wu, R., Shi, Q., et al. (2019). Smoke: Scalable path-sensitive memory leak detection for millions of lines of code. In 2019 IEEE\/ACM 41st International Conference on Software Engineering (ICSE). IEEE.","DOI":"10.1109\/ICSE.2019.00025"},{"key":"9641_CR8","doi-asserted-by":"publisher","first-page":"678","DOI":"10.1007\/s10664-019-09731-8","volume":"25","author":"M Ghanavati","year":"2020","unstructured":"Ghanavati, M., Costa, D., Seboek, J., et al. (2020). Memory and resource leak defects and their repairs in Java projects. Empirical Software Engineering, 25, 678\u2013718. https:\/\/doi.org\/10.1007\/s10664-019-09731-8","journal-title":"Empirical Software Engineering"},{"key":"9641_CR9","doi-asserted-by":"crossref","unstructured":"Hanam, Q., Brito, F. S. D. M., & Mesbah, A. (2016). Discovering bug patterns in JavaScript. ACM Sigsoft International Symposium on Foundations of Software Engineering. ACM, 2016, 144\u2013156.","DOI":"10.1145\/2950290.2950308"},{"key":"9641_CR10","doi-asserted-by":"crossref","unstructured":"Hu, M., & Zhang, Y. (2020). The Python\/C API: Evolution, usage statistics, and bug patterns. In 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER). IEEE.","DOI":"10.1109\/SANER48275.2020.9054835"},{"key":"9641_CR11","doi-asserted-by":"crossref","unstructured":"Jump, M., & McKinley, K. S. (2007). Cork: Dynamic memory leak detection for garbage-collected languages. In Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 31\u201338.","DOI":"10.1145\/1190216.1190224"},{"key":"9641_CR12","doi-asserted-by":"crossref","unstructured":"Jung, C., Lee, S., Raman, E., & Pande, S. (2014). Automated memory leak detection for production use. In Proceedings of the 36th International Conference on Software Engineering, ICSE 2014, pp. 825\u2013836.","DOI":"10.1145\/2568225.2568311"},{"key":"9641_CR13","doi-asserted-by":"crossref","unstructured":"Liu, T., Curtsinger, C., & Berger, E. D. (2016). DoubleTake: Fast and precise error detection via evidence-based dynamic analysis. In IEEE\/ACM International Conference on Software Engineering. IEEE.","DOI":"10.1145\/2884781.2884784"},{"key":"9641_CR14","doi-asserted-by":"crossref","unstructured":"Lo, D., Nagappan, N., & Zimmermann, T. (2015). How practitioners perceive the relevance of software engineering research. In Joint Meeting on Foundations of Software Engineering. ACM.","DOI":"10.1145\/2786805.2786809"},{"issue":"9","key":"9641_CR15","doi-asserted-by":"publisher","first-page":"575","DOI":"10.1145\/367593.367649","volume":"6","author":"JH McBeth","year":"1963","unstructured":"McBeth, J. H. (1963). On the reference counter method. Communications of ACM, 6(9), 575\u2013584.","journal-title":"Communications of ACM"},{"issue":"4","key":"9641_CR16","doi-asserted-by":"publisher","first-page":"184","DOI":"10.1145\/367177.367199","volume":"3","author":"J McCarthy","year":"1960","unstructured":"McCarthy, J. (1960). Recursive functions of symbolic expressions and their computation by machine, part I. Communications of the ACM, 3(4), 184\u2013195.","journal-title":"Communications of the ACM"},{"key":"9641_CR17","doi-asserted-by":"crossref","unstructured":"Orlovich, M., & Rugina, R. (2006). Memory leak analysis by contradiction. In Static Analysis Symposium (SAS), pp. 405\u2013424.","DOI":"10.1007\/11823230_26"},{"key":"9641_CR18","doi-asserted-by":"crossref","unstructured":"Pan, K., Kim, S., & Whitehead, E. J. (2009) Toward an understanding of bug fix patterns. Empirical Software Engineering, 14(3), 286\u2013315.","DOI":"10.1007\/s10664-008-9077-5"},{"key":"9641_CR19","unstructured":"Python Programming Language Homepage. Retrieved June 13, 2023, from\u00a0https:\/\/www.python.org"},{"key":"9641_CR20","unstructured":"Retrieved June 13, 2023, from https:\/\/github.com\/benfred\/github-analysis\/#inferring-languages"},{"key":"9641_CR21","doi-asserted-by":"crossref","unstructured":"Shaham, R., Kolodner, E. K., & Sagiv, M. (2000). Automatic removal of array memory leaks in Java. In International Conference on Compiler Construction (CC), pp. 50\u201366.","DOI":"10.1007\/3-540-46423-9_4"},{"key":"9641_CR22","doi-asserted-by":"crossref","unstructured":"Sor, V., & Srirama, S. N. (2014). Memory leak detection in Java: Taxonomy and classification of approaches. Journal of Systems and Software, 96, 139\u2013151.","DOI":"10.1016\/j.jss.2014.06.005"},{"issue":"2","key":"9641_CR23","doi-asserted-by":"publisher","first-page":"107","DOI":"10.1109\/TSE.2014.2302311","volume":"40","author":"Y Sui","year":"2014","unstructured":"Sui, Y., Ye, D., & Xue, J. (2014). Detecting memory leaks statically with full-sparse value-flow analysis. IEEE Transactions on Software Engineering, 40(2), 107\u2013122.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"9641_CR24","doi-asserted-by":"crossref","unstructured":"Sun, X., Xu, S., Guo, C., et al. (2018). A projection-based approach for memory leak detection. In IEEE Computer Software & Applications Conference. IEEE.","DOI":"10.1109\/COMPSAC.2018.10271"},{"issue":"6","key":"9641_CR25","doi-asserted-by":"publisher","first-page":"1665","DOI":"10.1007\/s10664-013-9258-8","volume":"19","author":"L Tan","year":"2014","unstructured":"Tan, L., Liu, C., Li, Z., et al. (2014). Bug characteristics in open source software. Empirical Software Engineering, 19(6), 1665\u20131705.","journal-title":"Empirical Software Engineering"},{"key":"9641_CR26","doi-asserted-by":"crossref","unstructured":"Xu, G., & Rountev, A. (2008). Precise memory leak detection for java software using container profiling. In Proceedings of the 30th International Conference on Software Engineering, ICSE \u201908, pp. 151\u2013160.","DOI":"10.1145\/1368088.1368110"},{"key":"9641_CR27","doi-asserted-by":"crossref","unstructured":"Xu, G., Bond, M. D., Qin, F., & Rountev, A. (2011). Leakchaser: Helping programmers narrow down causes of memory leaks. In Proceedings of the 32Nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pp. 270\u2013282.","DOI":"10.1145\/1993498.1993530"},{"key":"9641_CR28","doi-asserted-by":"crossref","unstructured":"Yan, D., Xu, G., Yang, S., et al. (2014). LeakChecker: Practical static memory leak detection for managed languages. In Proceedings of Annual IEEE\/ACM International Symposium on Code Generation and Optimization. ACM.","DOI":"10.1145\/2581122.2544151"},{"key":"9641_CR29","doi-asserted-by":"crossref","unstructured":"Zhong, H., & Su, Z. (2015). An empirical study on real bug fixes. In IEEE\/ACM IEEE International Conference on Software Engineering. ACM.","DOI":"10.1109\/ICSE.2015.101"}],"container-title":["Software Quality Journal"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s11219-023-09641-5.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s11219-023-09641-5\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s11219-023-09641-5.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,11,10]],"date-time":"2023-11-10T15:14:57Z","timestamp":1699629297000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s11219-023-09641-5"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,6,17]]},"references-count":29,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2023,12]]}},"alternative-id":["9641"],"URL":"https:\/\/doi.org\/10.1007\/s11219-023-09641-5","relation":{},"ISSN":["0963-9314","1573-1367"],"issn-type":[{"value":"0963-9314","type":"print"},{"value":"1573-1367","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,6,17]]},"assertion":[{"value":"18 May 2023","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"17 June 2023","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare no competing interests.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of interest"}}]}}