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 Future Generation Computer Systems-The International Journal of Escience Pub Date : 2025-06-01 Epub Date: 2025-02-06 DOI:10.1016/j.future.2025.107743
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-06-01","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":"2025/2/6 0:00:00","PubModel":"Epub","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.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
SNCD:一个快速的、可扩展的分布式的基于部分索引的代码克隆检测器
多年来,已经提出了许多技术来检测克隆,以改善软件维护、可重用性或安全性。然而,对于大规模代码中的“未遂克隆”检测,仍然缺乏具有代码粒度灵活性的语言不可知方法。在具有数亿行代码(MLOC)或更多的大型源代码存储库中检测大型代码中的“侥幸克隆”是一项挑战。主要原因是,随着源代码规模的增加,它需要更多的计算和内存资源。特别是,近靶克隆检测难度更大,需要更多的资源。在本文中,我们提出了SNCD,一个快速和可扩展的分布式克隆检测方法。通过可扩展的分布式并行化,克服了MapReduce和HDFS单节点CPU和内存资源的限制。此外,该算法基于部分索引,并采用多线程策略进行优化,进一步提高了效率。它不仅可以检测类型1和类型2克隆,还可以发现大型存储库中计算成本最高的类型3克隆。同时,它适用于函数和文件粒度,并且支持许多不同的编程语言。实验结果表明,与现有的克隆检测技术相比,随着代码行数的增加,SNCD在大型代码中的可伸缩性更好,召回率和精度与最先进的方法相当。使用BigCloneBench和Mutation Framework这两个最近广泛使用的基准,SNCD实现了高召回率和精度,这与其他现有工具具有竞争力。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约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.
期刊最新文献
Blockchain architectures for enhancing EV infrastructure security: A unified framework for addressing sophisticated cyber-attacks Applying quantum error-correcting codes for fault-tolerant blind quantum cloud computation A swarm intelligence enabled multi-agent reinforcement learning scheme for computational task offloading in internet of things blockchain KnowAIDE: A fAIR-compliant data environment to accelerate AI research Non-intrusive kernel-level dispatching for MQTT shared subscriptions
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1