ASE docker related research

ASE 2022 

Understanding and Predicting Docker Build Duration: An Empirical Study of Containerized Workflow of OSS Projects

理解和预测 Docker 构建持续时间:OSS 项目容器化工作流程的实证研究

Docker 构建是容器化工作流程的关键组成部分,它自动执行将源打包并转换为容器映像的过程。如果运行不正常,Docker 构建会带来较长的持续时间(即构建缓慢),从而增加人力和计算资源的成本,从而不可避免地影响软件开发。然而,Docker 构建持续时间成本的现状和补救措施仍不清楚,需要深入研究。为了填补这一空白,本文对 5,833 个开源软件 (OSS) 项目的 171,439 个 Docker 构建进行了首次实证调查。从探索性研究开始,可以在实际项目中描述 Docker 构建持续时间,并通过全面调查获得开发人员对缓慢构建的看法。在探索性研究结果的推动下,我们提出了 Docker 构建持续时间的预测模型,利用来自构建相关上下文和配置的 27 个手工特征以及 8 种回归算法来执行预测任务。我们的结果表明,随机森林模型提供了卓越的性能,Spearman 相关性为 0.781,在 RMSE、MAE 和 MAPE 方面分别优于基线随机模型 82.9%、90.6% 和 94.4%。这项研究的意义将促进研究并帮助从业者改进 Docker 构建过程。

ASE 2021 

Refactorings and Technical Debt in Docker Projects: An Empirical Study 

Docker 项目中的重构和技术债务:实证研究

软件容器,例如 Docker,最近被认为是提供可重用软件工件的主流技术。开发人员可以基于大量公开的可重用 Docker 镜像轻松构建和部署他们的应用程序。因此,当前业界的流行趋势是应用程序的容器化。然而,基于容器的项目会损害不同的组件,包括 Docker 和 Docker-compose 文件,以及组合不同容器并促进与它们交互的源代码的其他几个依赖项。与任何其他复杂系统类似,基于容器的项目很容易出现与不同工件相关的各种质量和技术债务问题:Docker 和 Docker-compose 文件以及常规源代码文件。不幸的是,在基于容器的项目如何实际发展和维护方面存在知识差距。在本文中,我们通过研究重构来解决上述差距,即在开源 Docker 项目中应用的重构,即在保留行为的同时进行结构变化,以及它们缓解的技术债务问题。我们分析了 68 个项目,其中包括 19.5 个 MLOC,以及 193 个手动检查的提交。结果表明,开发人员出于特定于容器的配置、组合和执行的各种原因重构这些 Docker 项目,与现有重构领域相比,导致出现了几种新的技术债务类别和重构类型。例如,减少 Dockerfile 镜像大小的重构、提高 Docker-compose 文件的可扩展性以及定期源代码重构等,主要与 Docker 和 Docker-compose 文件的演变有关。我们还分别引入了 24 个新的 Docker 特定重构和技术债务类别,并定义了不同的最佳实践。这项研究的意义将帮助从业者、工具构建者和教育工作者提高 Docker 项目的质量。

ASE 2018 

RUDSEA: recommending updates of Dockerfiles via software environment analysis

RUDSEA:通过软件环境分析推荐 Dockerfile 更新

Dockerfile是docker镜像的配置文件,它打包了软件的所有依赖项,以方便软件部署和移植。换句话说,dockerfiles 列出了软件应用程序构建和/或执行的所有环境假设,因此当环境假设在快速软件演进过程中发生变化时,它们需要经常更新。在本文中,我们提出了 RUDSEA,这是一种基于分析软件环境假设的变化及其影响向开发人员推荐 dockerfile 更新的新颖方法。我们对 1,199 个实际指令更新的评估表明,RUDSEA 可以为 78.5% 的更新推荐正确的更新位置,并为 44.1% 的更新推荐正确的代码更改。(新思想短论文)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/10321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7安装图形化界面

前言:原文在我的博客网站中,持续更新数通、系统方面的知识,欢迎来访! Centos7安装图形化界面https://myweb.myskillstree.cn/43.html 目录 一、安装GNOME桌面 二、开机自启动修改为命令行模式 三、卸载图形化界面 一、安装GN…

Oracle 误操作insert delete update 数据回滚

查询回滚数据 select * from tablename AS OF TIMESTAMP TO_TIMESTAMP(2023-12-29 10:29:00,yyyy-mm-dd hh24:mi:ss) where not exists (select 1 from tablename A where A.xh tablename.xh and A.TIME tablename.TIME); TO_TIMESTAMP(2023-12-29 10:29:00,yyyy-mm-dd h…

【C++】string类的使用③(修改器Modifiers || 非成员函数重载Non-member function overloads)

🔥个人主页: Forcible Bug Maker 🔥专栏: STL || C 目录 前言🔥修改器(Modifiers)**operator**appendpush_back和pop_backassigninserterasereplaceswap 🔥非成员函数重载&#xff…

Java入门基础学习笔记4——开发Helloworld入门程序

Java程序开发的三个步骤: 1)编写代码 2)编译代码 3)运行代码 注意事项: 第一个java程序建议使用记事本来编写。 建议代码文件名全英文、首字母大写、满足驼峰模式,源代码文件的后缀必须是.java 注意&a…

栈实现队列

一、分析 栈的特点是先出再入,而队列的特点为先入先出,所以我们创造两个栈,一个用来存放数据,一个用来实现其它功能此时栈顶为队尾;当要找队头数据时将前n-1个数据移入到另一个栈中,此时剩余那个数据为队头…

leetcode 1749.任意子数组和的绝对值的最大值

思路:dp 说到绝对值,大家肯定不陌生,但是用在dp上就会使问题变得稍微复杂一些了。 我们在最大子数组和的那道题中知道,在状态转移的时候,我们会舍弃掉为负数的连续部分,重新构建连续的子串。但是&#xf…

Sqlite在Mybatis Plus中关于时间字段的处理

我的个人项目中,使用Mybatis-Plus 和 Sqlite数据库, 但是在存储和查询时间字段的时候,总是出现问题,记录下我解决问题的过程。 Sqlite会默认把时间字段转成时间戳存储到数据库的字段中,看起来不直观,所以我…

k8s部署数据库等pass产品的时候用那种控制器

在Kubernetes中部署数据库等持久化存储(Persistent Storage,简称Pass)产品时,通常会使用以下几种控制器: StatefulSet:这是部署有状态应用的首选控制器,特别是当应用需要稳定的身份标识&#xf…

在Linux上安装并运行RabbitMQ

目录 准备CentOS服务器 下载rabbit-server和erlang文件 启动RabbitMQ服务 准备CentOS服务器 两个命令,选一个能用的,查看CentOS服务器的版本 lsb_release -a下载rabbit-server和erlang文件 参考文章:http://t.csdnimg.cn/t8BbM 1、创建新…

Python专题:八、列表(3)

列表的场景应用 统计和肺考试成绩 >不支持字符串和整数之间的比较 sort()函数从小到大排列 reverse()函数从大到小排列 列表推导式 字符串列表的转化,join()函数列表生成字符串 split()函…

黑马程序员HarmonyOS4+NEXT星河版入门到企业级实战教程【18~23】

视频0~17的笔记 页面路由 实现不同页面之间的跳转和数据传递。 页面栈。上限是32个页面,使用router.clear()可以清空页面栈释放内存。 两种跳转模式: 参数一致,都是三个参数 router.pushUrl(),新页面压入页面栈,可以…

keep健身小程序基于FastAdmin+ThinkPHP+UniApp(源码搭建/上线/运营/售后/更新)

基于FastAdminThinkPHPUniApp(目前仅支持微信小程序和公众号) 开发的健身相关行业微信小程序,程序适用于健身房、瑜伽馆、游泳馆、篮球馆等健身培训场所。平台拥有课程售卖、课程预约、多门店管理、私教预约、教练端、会员卡办理、在线商城、…

【35分钟掌握金融风控策略20】贷前风控策略详解-5

目录 反欺诈模型体系和模型在策略中的应用 申请反欺诈评分卡模型 欺诈传导模型 欺诈团伙识别模型 GPS评分卡模型 如何在贷中应用贷前模型 反欺诈模型体系和模型在策略中的应用 反欺诈横型体系主要包括识别个体欺诈和识别团伙欺诈的两类模型。在贷前,常用的识别…

【3dmax笔记】036:FDD修改器

一、FDD修改器简介 FDD修改器是对模型进行变形处理的命令,FDD后面的数字越大,编辑节点越多,编辑越精细,但是FDD控制点多的同时,模型上的节点也要多才可以。 FFD修改器是一种非常灵活的修改器,可以让我们对模型进行自由的变形操作。通过在FFD修改器中设置变形点,我们可…

突破编程界限:探索AI编程新境界

文章目录 一、AI编程助手1.1 Baidu Comate智能代码助手1.2 阿里云 通义灵码 二、场景需求三、体验步骤3.1 官网下载3.2 手动下载 四、试用感受4.1 提示4.2 注释生成代码4.3 代码生成4.4 选中生成注释4.5 查看变更&新建文件4.6 调优建议4.7 插件使用 五、结尾推荐 一、AI编程…

01.基本概念

操作系统 为什么要有操作系统? 计算机时一个十分复杂的系统,又cpu、内存、磁盘、IO设备、网络接口等等复杂的硬件组成,人的精力是有限的,不可能了解所有的硬件接口,但是程序可以。 所以我们在计算机上安装了一层软件&…

InputStream,OutputStream的用法以及相应的案例

1. 文件系统的操作:File类。 2. 文件内容的操作:Stream流。 字符流:IntputStream , OutputStream。 字节流:read , write。 InputStream,OutputStream InputStream和OutputStream都不能被实例…

GIS入门,常用的多边形平滑曲线算法介绍和JavaScript的多边形平滑曲线算法库chaikin-smooth的实现原理和使用

前言 本章介绍一下常用的多边形平滑曲线算法及其使用案例。 多边形平滑算法通常用于图形处理或计算机图形学中,以使线条或曲线在连接处平滑过渡,而不出现明显的棱角或断裂。多边形平滑算法有多种实现方法,其中一些常见的有下面几种: 贝塞尔曲线插值(Bezier Curve Interpo…

【Java】/*逻辑控制语句和输入输出—快速总结*/

目录 前言 一、分支语句 1.1 if 语句 1.2 switch 语句 二、循环语句 2.1 while 循环 2.1.1 break 2.1.2 continue 2.2 for 循环 2.3 do_while 循环 三、逻辑语句的小结 四、Java 中的输入输出 4.1 输出到控制台 4.2 从键盘输入 前言 Java 中的逻辑控制语句和C语…

针对头疼的UDP攻击如何定制有效的防护措施

分布式拒绝服务攻击(Distributed Denial of Service)简称DDoS,亦称为阻断攻击或洪水攻击,是目前互联网最常见的一种攻击形式。DDoS攻击通常通过来自大量受感染的计算机(即僵尸网络)的流量,对目标…