跳到主要内容
研究论文

用替代实现加速数据操作任务:一项探索性研究

出版:2021年7月23日出版历史
跳过抽象节

摘要

随着数据量和复杂性以前所未有的速度增长,数据操作程序的性能正成为开发人员关注的主要问题。在本文中,我们研究了替代API选择如何提高数据操作性能,同时保持特定任务的输入/输出等效性。我们提出了一种轻量级方法,利用问答站点中的比较结构来提取替代实现。在Stack Overflow posts的大型数据集上,我们的方法提取了5080对替代实现,它们调用不同的数据操作API来解决相同的任务,准确率为86%。实验表明,对于15%的提取对,更快的实现比较慢的替代实现实现了10倍以上的加速。我们还从提取结果中描述了68个重复出现的替代API对,以了解可以替代使用的API类型。为了将这些发现付诸实践,我们实施了一个工具,备选Api7,以自动优化实际数据操作程序。在1267次对Kaggle数据集的优化尝试中,76%的优化结果达到了令人满意的性能改进,加速速度达到了数量级。最后,我们讨论了使用替代API优化数据操作程序的显著挑战。我们希望我们的研究能为API推荐和自动性能优化提供一个新的视角。

工具书类

  1. 伦纳德·理查森(Leonard Richardson)。2007年,《美丽的汤》文档。(2007).谷歌学者谷歌学者
  2. Django软件基金会。2021年,Django。https://djangoproject.com。谷歌学者谷歌学者
  3. 维基百科撰稿人。2021.爱因斯坦记数法。https://en.wikipedia.org/wiki/Einstein_notation。谷歌学者谷歌学者
  4. 堆栈交换。2021.如何创建一个最小的、可复制的示例。https://stackoverflow.com/help/minimalreplicable-example。谷歌学者谷歌学者
  5. IPython开发团队。2021.IPython内置魔术命令。https://ipython.readthedocs.io/en/stable/interactive/magics.html。谷歌学者谷歌学者
  6. Kaggle公司,2021年。卡格尔。https://www.kaggle.com/谷歌学者谷歌学者
  7. Kaggle公司,2021年。卡格尔竞赛。https://www.kaggle.com/competities网站/谷歌学者谷歌学者
  8. Charles R.Harris等人,2020年。使用NumPy进行数组编程。《自然》585(2020),357--362。https://doi.org/10.1038/s41586-020-2649-2谷歌学者谷歌学者交叉引用交叉引用
  9. 韦斯·麦金尼(Wes McKinney)。2010.python中用于统计计算的数据结构。《第九届科学会议上的蟒蛇》(SciPy’10),第445卷。51--56.谷歌学者谷歌学者交叉引用交叉引用
  10. Python软件基金会。2021.Python ast模块。https://docs.python.org/3/library/ast.html。谷歌学者谷歌学者
  11. Python软件基金会。2021.Python限定名称。https://docs.python.org/3/glossary.html#term-限定名称。谷歌学者谷歌学者
  12. Python软件基金会。2021.调试和分析。https://docs.python.org/3/library/debug.html。谷歌学者谷歌学者
  13. 维基百科撰稿人。2020年。四分位离散系数。https://en.wikipedia.org/wiki/Quartile_coefficificient_of_disease。谷歌学者谷歌学者
  14. R核心团队。2013.R:统计计算语言和环境。R统计计算基金会。http://www.R-project.org/。谷歌学者谷歌学者
  15. Pauli Virtanen等人,2020年。SciPy 1.0:Python中科学计算的基本算法。《自然方法》17(2020),261--272。https://doi.org/10.1038/s41592-019-0686-2谷歌学者谷歌学者交叉引用交叉引用
  16. 特拉维斯·E·奥列芬特。2007.科学计算用Python。科学工程计算9,3(2007),10-20。https://doi.org/10.109/MCSE.2007.58谷歌学者谷歌学者数字图书馆数字图书馆
  17. Nathanel Chambers、Daniel Cer、Trond Grenager、David Hall、Chloe Kiddon、Bill MacCartney、Marie-Caterin De Marneffe、Daniel-Ramage、Eric Yeh和Christopher D.Manning。2007.学习对齐和利用自然逻辑。在ACL-PASCAL文本蕴涵和释义研讨会的会议记录中。165--170.谷歌学者谷歌学者
  18. Stack Exchange Inc.2019年。堆栈交换数据转储。https://archive.org/details/stackexchange。谷歌学者谷歌学者
  19. Python软件基金会。timeit:测量小代码段的执行时间。https://docs.python.org/3.6/library/timeit.html。谷歌学者谷歌学者
  20. Sven Amann、Sarah Nadi、Hoan Anh Nguyen、Tien N.Nguyen和Mira Mezini。2016年,MUBench:API-误用检测器的基准。在第13届国际采矿软件库会议记录(MSR'16)中。内政部:https://doi.org/10.1145/2901739.2903506谷歌学者谷歌学者数字图书馆数字图书馆
  21. Sven Amann、Hoan Anh Nguyen、Sarah Nadi、Tien N.Nguyeen和Mira Mezini。2019.静态API误用检测器的系统评估。IEEE软件工程学报45,12(2019),1170--1188。https://doi.org/10.109/TSE.2018.2827384谷歌学者谷歌学者交叉引用交叉引用
  22. 爱德华多·坎波斯(Eduardo C.Campos)、马丁·蒙佩鲁斯(Martin Monperrus)和马塞洛·梅亚(Marcelo A.Maia)。2016.使用基于代码段的查询搜索堆栈溢出以修复API-usage相关的错误。《第26届计算机科学和软件工程国际年会论文集》(CASCON'16)。IBM Corp.,新泽西州里弗顿,232-242。谷歌学者谷歌学者
  23. A.Carzaniga、A.Mattavelli和M.Pezzè。2015.测量软件冗余。2015年IEEE/ACM第37届IEEE软件工程国际会议(ICSE’15),第1卷。156--166. https://doi.org/10.109/ICSE.2015.37谷歌学者谷歌学者
  24. Yanto Chandra和Liang Shang。2019.使用R的定性研究:系统方法。斯普林格。谷歌学者谷歌学者
  25. 陈春阳和邢振昌。2016.SimilarTech:自动推荐跨不同编程语言的类比库。第31届IEEE/ACM自动化软件工程国际会议(ASE’16)论文集。ACM,纽约州纽约市,834-839。内政部:https://doi.org/10.1145/2970276.2970290谷歌学者谷歌学者数字图书馆数字图书馆
  26. 陈春阳、邢振昌、刘扬。2019.西班牙的巴黎是什么?从问答讨论中挖掘类比库。经验软件工程24,3(2019),1155--1194。谷歌学者谷歌学者数字图书馆数字图书馆
  27. Samir Gupta、A.S.M.Ashique Mahmood、Karen E.Ross、Cathy H.Wu和K.Vijay-Shanker。2017.识别生物医学文本中的比较结构。第16届SIGBioMed生物医学语言处理研讨会论文集(BioNLP’17)。206--215.谷歌学者谷歌学者
  28. 霍马·B·哈希米和丽贝卡·华。2016.非语法句子解析器稳健性评估。《2016年自然语言处理实证方法会议论文集》(EMNLP’16)。1765--1774.谷歌学者谷歌学者
  29. 黄毅、陈春阳、邢振昌、田林和杨柳。2018年。将他们区分开来:从众筹比较讨论中提炼出技术差异。第33届ACM/IEEE自动化软件工程国际会议论文集(ASE’18)。ACM,纽约州纽约市,214-224。内政部:https://doi.org/10.1145/3238147.3238208谷歌学者谷歌学者数字图书馆数字图书馆
  30. 蒋凌霄和苏振东,2009年。通过随机测试自动挖掘功能等效的代码片段。第18届软件测试与分析国际研讨会(ISSTA'09)论文集。ACM,纽约州纽约市,81-92。内政部:https://doi.org/10.1145/1572272.1572283谷歌学者谷歌学者数字图书馆数字图书馆
  31. D.Kawrykow和M.P.Robillard。2009.检测低效API使用。2009年,第31届国际软件工程会议——配套卷(ICSE'09)。183--186. https://doi.org/10.109/ICSE-COMPANION.2009.5070977谷歌学者谷歌学者
  32. Stefan Krüger、Johannes Späth、Karim Ali、Eric Bodden和Mira Mezini。2018.CrySL:验证加密API正确使用的可扩展方法。第32届欧洲面向对象编程会议(ECOOP’18)。达格斯图尔-莱布尼茨信息中心。谷歌学者谷歌学者
  33. 马里奥·利纳雷斯-瓦斯奎兹、加布里埃尔·巴沃塔、卡洛斯·贝纳尔·卡尔德纳斯、洛科·奥利维托、马西米利亚诺·迪·彭塔和丹尼斯·波西瓦尼。2014.在Android应用程序中挖掘能源贪婪的API使用模式:一项实证研究。第十一届挖掘软件库工作会议(MSR’14)会议记录。ACM,纽约州纽约市,2-11。内政部:https://doi.org/10.1145/2597073.2597085谷歌学者谷歌学者数字图书馆数字图书馆
  34. Yepang Liu、Chang Xu和Shing-Chi Cheung。2014.描述和检测智能手机应用程序的性能缺陷。第36届国际软件工程会议(ICSE’14)论文集。ACM,纽约州纽约市,1013–1024。内政部:https://doi.org/10.1145/2568225.2568229谷歌学者谷歌学者数字图书馆数字图书馆
  35. Yepang Liu、Chang Xu、Shing-Chi Cheung和Jian Lü。2014.GreenDroid:智能手机应用程序能源效率低下的自动诊断。IEEE软件工程学报40,9(2014年9月),911–940。内政部:https://doi.org/10.109/TSE.2014.2323982谷歌学者谷歌学者
  36. Stephan Lukasczyk、Florian Kroi和Gordon Fraser。2020年。Python的自动单元测试生成。在基于搜索的软件工程国际研讨会(SSBSE’20)上。9--24.谷歌学者谷歌学者交叉引用交叉引用
  37. 克里斯托弗·曼宁(Christopher D.Manning)、米哈·苏迪努(Mihai Surdeanu)、约翰·鲍尔(John Bauer)、詹妮·芬克尔(Jenny Finkel)、史蒂文·贝瑟德(Steven J.Bethard)和大卫·麦克洛斯基。2014.斯坦福CoreNLP自然语言处理工具包。《计算语言学协会第52届年会论文集:系统演示》(ACL’14)。55--60.谷歌学者谷歌学者交叉引用交叉引用
  38. 玛丽·L·麦克休。2012.评分者间信度:kappa统计。《生物化学医学》22,3(2012),276-282。谷歌学者谷歌学者交叉引用交叉引用
  39. 韦斯·麦金尼。2012.Python for Data Analysis:与Pandas、NumPy和IPython的数据纠错。O'Reilly Media公司。谷歌学者谷歌学者
  40. Trong Duc Nguyen、Anh Tuan Nguyen、Hung Dang Phan和Tien N.Nguyen。2017年。探索API嵌入的API用法和应用。第39届国际软件工程会议(ICSE’17)论文集。新泽西州皮斯卡塔韦IEEE出版社,438–449。内政部:https://doi.org/10.109/ICSE.2017.47谷歌学者谷歌学者
  41. 惠灵顿·奥利维拉、雷纳托·奥利韦拉、费尔南多·卡斯托、贝尼托·费尔南德斯和古斯塔沃·平托。2019.推荐节能Java系列。第16届国际采矿软件库会议论文集(MSR’19)。IEEE出版社,新泽西州皮斯卡塔韦,160-170。内政部:https://doi.org/10.109/MSR.2019.00033谷歌学者谷歌学者数字图书馆数字图书馆
  42. C.E.Otero和A.Peter。2015年,工程大数据分析软件的研究方向。IEEE智能系统30,1(2015年1月),13-19。内政部:https://doi.org/10.109/MIS.2014.76谷歌学者谷歌学者数字图书馆数字图书馆
  43. Marta Recasens、Marie-Caterin de Marneffe和Christopher Potts。2013.话语实体的生与死:识别单子提及。北美计算语言学协会(NAACL’13)。谷歌学者谷歌学者
  44. Peter C.Rigby和Martin P.Robillard。2013.在非正式文档中发现基本代码元素。《2013年软件工程国际会议论文集》(ICSE’13)。新泽西州皮斯卡塔韦IEEE出版社,832-841。谷歌学者谷歌学者
  45. 大卫·罗宾逊。2017.为什么Python增长如此迅速?https://stackoverflow.blog/2017/09/14/python快速增长/谷歌学者谷歌学者
  46. 雅各布·T·施瓦茨。1980.多项式恒等式验证的快速概率算法。美国医学会杂志(JACM)27,4(1980),701-717。谷歌学者谷歌学者数字图书馆数字图书馆
  47. M.Selakovic和M.Pradel。2016年,JavaScript中的性能问题和优化:一项实证研究。2016年IEEE/ACM第38届国际软件工程会议(ICSE’16)。61-72.内政部:https://doi.org/10.1145/2884781.2884829谷歌学者谷歌学者
  48. Fang Hsiang Su、J.Bell、G.Kaiser和S.Sethumadhavan。2016.识别复杂代码库中功能相似的代码。2016年IEEE第24届国际程序理解大会(ICPC’16)。1–10.DOI:https://doi.org/10.109/ICPC.2016.7503720谷歌学者谷歌学者
  49. 陶一大、唐山、刘野邦、徐志武和秦胜超。2019.API选择如何影响数据分析任务的运行时性能?2019年,第34届IEEE/ACM国际自动化软件工程会议(ASE’19)。665--668. https://doi.org/10.109/ASE.2019.00067谷歌学者谷歌学者数字图书馆数字图书馆
  50. Christoph Treude和Martin P.Robillard。2016.利用堆栈溢出的见解扩充API文档。第38届国际软件工程会议(ICSE’16)论文集。ACM,纽约州纽约市,392-403。内政部:https://doi.org/10.1145/2884781.2884800谷歌学者谷歌学者
  51. 杨俊文(Junwen Yang)、普拉纳夫·苏布拉曼尼亚姆(Pranav Subramaniam)、珊璐(Shan Lu)、丛燕(Cong Yan)和艾尔文·张(Alvin Cheung)。2018年。如何不构建数据库支持的web应用程序:一项关于性能缺陷的野外研究。第40届国际软件工程会议(ICSE’18)论文集。ACM,纽约州纽约市,800-810。内政部:https://doi.org/10.1145/3180155.3180194谷歌学者谷歌学者数字图书馆数字图书馆
  52. 叶德恒(Deheng Ye)、邢振昌(Zhenghang Xing)、傅志勇(Chee Yong Foo)、李晶(Jing Li)和卡普雷(Nachiket Kapre)。2016.学习从非正式自然语言讨论中提取API提及内容。2016年IEEE国际软件维护与发展会议(ICSME’16)。389–399. 内政部:https://doi.org/10.109/ICSME.2016.11谷歌学者谷歌学者交叉引用交叉引用
  53. 叶德恒、邢振昌、李静和卡普雷。2016.特定于软件的语音部分标记:关于堆栈溢出的实验研究。第31届美国计算机学会应用计算研讨会(SAC’16)会议记录。ACM,纽约州纽约市,1378-1385年。内政部:https://doi.org/10.1145/2851613.2851772谷歌学者谷歌学者数字图书馆数字图书馆
  54. Jasmine Zakir、Tom Seymour和Kristi Berg,2015年。大数据分析。信息系统问题16,2(2015),81-90。谷歌学者谷歌学者
  55. Tianyi Zhang、Ganesha Upadhyaya、Anastasia Reinhardt、Hridesh Rajan和Miryung Kim。2018.在线问答论坛上的代码示例可靠吗堆栈溢出API误用研究。第40届国际软件工程会议(ICSE’18)论文集。ACM,纽约州纽约市,886–896。内政部:https://doi.org/10.1145/3180155.3180260谷歌学者谷歌学者数字图书馆数字图书馆
  56. 郝忠、陶雪、陆章、简培和洪梅。2009年。MAPO:挖掘和推荐API使用模式。在第23届面向对象编程欧洲会议论文集(ECOOP'09)。318--343. https://doi.org/10.1007/978-3642-03013-0_15谷歌学者谷歌学者数字图书馆数字图书馆

索引术语

  1. 用替代实现加速数据操作任务:一项探索性研究

    建议

    评论

    登录选项

    检查您是否可以通过登录凭据或您的机构访问本文。

    登录

    完全访问权限

    • 发布于

      封面图片ACM软件工程与方法汇刊
      软件工程及方法论学报 第30卷第4期
      连续专区:AI和SE
      2021年10月
      613页
      国际标准编号:1049-331倍
      EISSN公司:1557-7392
      内政部:10.1145/3461694
      期刊目录

      版权所有©2021 ACM

      如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人拥有的本作品组件的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

      出版商

      计算机协会

      美国纽约州纽约市

      出版历史

      • 出版:2021年7月23日
      • 修订过的:2021年3月1日
      • 认可的:2021年3月1日
      • 收到:2020年9月1日
      发布于托塞姆第30卷第4期

      权限

      请求有关此文章的权限。

      请求权限

      检查更新

      限定符

      • 研究论文
      • 研究
      • 推荐

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用eReader在线查看。

    电子阅读器

    HTML格式

    以HTML格式查看本文。

    查看HTML格式