SNCD: A fast and scalable distributed near-miss code clone detector for big code based on partial index

IF 6.2 2区 计算机科学 Q1 COMPUTER SCIENCE, THEORY & METHODS
Liming Yang , Jun Zhao , Rulin Xie, Yi Ren, Jianbo Guan, Bao Li, Jun Ma, Yusong Tan
{"title":"SNCD: A fast and scalable distributed near-miss code clone detector for big code based on partial index","authors":"Liming Yang ,&nbsp;Jun Zhao ,&nbsp;Rulin Xie,&nbsp;Yi Ren,&nbsp;Jianbo Guan,&nbsp;Bao Li,&nbsp;Jun Ma,&nbsp;Yusong Tan","doi":"10.1016/j.future.2025.107743","DOIUrl":null,"url":null,"abstract":"<div><div>A number of techniques have been proposed over the years to detect clones for improving software maintenance, reusability or security. However, there is still a lack of language agnostic approaches with code granularity flexibility for near-miss clone detection in big code in scale. It is challenging to detect near-miss clones in big code across large scale source repositories with hundreds of millions of lines of code (MLOC) or more. The main reason is that it requires more computing and memory resources as the scale of the source code increases. In particular, near-miss clone detection is more difficult and need more resources. In this paper, we present SNCD, a fast and scalable distributed clone detection approach. It overcomes single node CPU and memory resource limitation with MapReduce and HDFS by scalable distributed parallelization. Furthermore, it is partial index based and optimized with multi-threading strategy which further improve the efficiency. It can not only detect Type-1 and Type-2 clones but can also discover the most computationally expensive Type-3 clones for large repositories. Meanwhile, it works for both function and file granularities, and it supports many different programming languages. Experimental results show that SNCD scales better for big code with the size of code in terms of lines of code increases compared to existing clone detection techniques, with recall and precision comparable to state-of-art approaches. With BigCloneBench and the Mutation Framework, two recent and widely used benchmarks, SNCD achieves both high recall and precision, which is competitive with other existing tools.</div></div>","PeriodicalId":55132,"journal":{"name":"Future Generation Computer Systems-The International Journal of Escience","volume":"167 ","pages":"Article 107743"},"PeriodicalIF":6.2000,"publicationDate":"2025-02-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Future Generation Computer Systems-The International Journal of Escience","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0167739X2500038X","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q1","JCRName":"COMPUTER SCIENCE, THEORY & METHODS","Score":null,"Total":0}
引用次数: 0

Abstract

A number of techniques have been proposed over the years to detect clones for improving software maintenance, reusability or security. However, there is still a lack of language agnostic approaches with code granularity flexibility for near-miss clone detection in big code in scale. It is challenging to detect near-miss clones in big code across large scale source repositories with hundreds of millions of lines of code (MLOC) or more. The main reason is that it requires more computing and memory resources as the scale of the source code increases. In particular, near-miss clone detection is more difficult and need more resources. In this paper, we present SNCD, a fast and scalable distributed clone detection approach. It overcomes single node CPU and memory resource limitation with MapReduce and HDFS by scalable distributed parallelization. Furthermore, it is partial index based and optimized with multi-threading strategy which further improve the efficiency. It can not only detect Type-1 and Type-2 clones but can also discover the most computationally expensive Type-3 clones for large repositories. Meanwhile, it works for both function and file granularities, and it supports many different programming languages. Experimental results show that SNCD scales better for big code with the size of code in terms of lines of code increases compared to existing clone detection techniques, with recall and precision comparable to state-of-art approaches. With BigCloneBench and the Mutation Framework, two recent and widely used benchmarks, SNCD achieves both high recall and precision, which is competitive with other existing tools.
求助全文
约1分钟内获得全文 求助全文
来源期刊
CiteScore
19.90
自引率
2.70%
发文量
376
审稿时长
10.6 months
期刊介绍: Computing infrastructures and systems are constantly evolving, resulting in increasingly complex and collaborative scientific applications. To cope with these advancements, there is a growing need for collaborative tools that can effectively map, control, and execute these applications. Furthermore, with the explosion of Big Data, there is a requirement for innovative methods and infrastructures to collect, analyze, and derive meaningful insights from the vast amount of data generated. This necessitates the integration of computational and storage capabilities, databases, sensors, and human collaboration. Future Generation Computer Systems aims to pioneer advancements in distributed systems, collaborative environments, high-performance computing, and Big Data analytics. It strives to stay at the forefront of developments in grids, clouds, and the Internet of Things (IoT) to effectively address the challenges posed by these wide-area, fully distributed sensing and computing systems.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信