61 research outputs found
Are We Speeding Up or Slowing Down? On Temporal Aspects of Code Velocity
This paper investigates how the duration of various code review periods
changes over a projects' lifetime. We study four open-source software (OSS)
projects: Blender, FreeBSD, LLVM, and Mozilla. We mine and analyze the
characteristics of 283,235 code reviews that cover, on average, seven years'
worth of development. Our main conclusion is that neither the passage of time
or the project's size impact code velocity. We find that (a) the duration of
various code review periods (time-to-first-response, time-to-accept, and
time-to-merge) for FreeBSD, LLVM, and Mozilla either becomes shorter or stays
the same; no directional trend is present for Blender, (b) an increase in the
size of the code bases (annually 3-17%) does not accompany a decrease in code
velocity, and (c) for FreeBSD, LLVM, and Mozilla, the 30-day moving median
stays in a fixed range for time-to-merge. These findings do not change with
variabilities in code churn metrics, such as the number of commits or distinct
authors of code changes.Comment: 5 pages. To be published in Proceedings of MSR '23: Proceedings of
the 20th International Conference on Mining Software Repositories (MSR 2023).
May 15-16, 2023, Melbourne, Australi
The Unexplored Treasure Trove of Phabricator Code Reviews
Phabricator is a modern code collaboration tool used by popular projects like FreeBSD and Mozilla. However, unlike the other well-known code review environments, such as Gerrit or GitHub, there is no readily accessible public code review dataset for Phabricator. This paper describes our experience mining code reviews from five different projects that use Phabricator (Blender, FreeBSD, KDE, LLVM, and Mozilla). We discuss the challenges associated with the data retrieval process and our solutions, resulting in a dataset with details regarding 317,476 Phabricator code reviews. Our dataset11https://doi.org/10.6084/m9.figshare.17139245 is available in both JSON and MySQL database dump formats. The dataset enables analyses of the history of code reviews at a more granular level than other platforms. In addition, given that the projects we mined are publicly accessible via the Conduit API [18], our dataset can be used as a foundation to fetch additional details and insights
Who Ate My Memory? Towards Attribution in Memory Management
To understand applications' memory usage details, engineers use instrumented
builds and profiling tools. Both approaches are impractical for use in
production environments or deployed mobile applications. As a result,
developers can gather only high-level memory-related statistics for deployed
software. In our experience, the lack of granular field data makes fixing
performance and reliability-related defects complex and time-consuming. The
software industry needs lightweight solutions to collect detailed data about
applications' memory usage to increase developer productivity. Current research
into memory attribution-related data structures, techniques, and tools is in
the early stages and enables several new research avenues.Comment: 3 pages. To be published in the 45th International Conference on
Software Engineering (ICSE 2023), May 14 - May 20 2023, Melbourne, Australi
On Quantifying the Benefits of Dead Code Removal
Engineers consider the presence of dead code as an undesirable attribute of the code base. The industry lacks methods to quantify the benefits of deleting dead code efficiently. The current approach utilizes a simplistic metric that uses the lines of code (LOC) deleted as a proxy to estimate the benefit gained. However, not all LOC are equal. The research community can support the industry and propose methods and metrics that can help to (a) determine the priority order for dead code removal, and (b) quantify the benefits of dead code removal. Improved metrics can result in a more objective ranking of dead code deletion efforts when compared to other competing tasks
- …