論文の概要: An empirical study of bloated dependencies in CommonJS packages
- arxiv url: http://arxiv.org/abs/2405.17939v1
- Date: Tue, 28 May 2024 08:04:01 GMT
- ステータス: 処理完了
- システム内更新日: 2024-05-29 19:37:52.930853
- Title: An empirical study of bloated dependencies in CommonJS packages
- Title(参考訳): CommonJSパッケージにおける肥大化依存性に関する実証的研究
- Authors: Yuxin Liu, Deepika Tiwari, Cristian Bogdan, Benoit Baudry,
- Abstract要約: サーバサイドアプリケーションで完全に使用されていない肥大化した依存関係を調査するために、実証的研究を行う。
本稿では,ファイルアクセスを監視し,実行中にどの依存関係がアクセスされないかを決定するトレースベースの動的解析手法を提案する。
以上の結果から,パッケージマネージャにおける依存性のデブロ化に対するネイティブサポートは,依存関係維持の負担を大幅に軽減する可能性が示唆された。
- 参考スコア(独自算出の注目度): 6.115666382910127
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: JavaScript packages are notoriously prone to bloat, a factor that significantly impacts the performance and maintainability of web applications. While web bundlers and tree-shaking can mitigate this issue in client-side applications at the function level, they cannot effectively detect and remove bloat in server-side applications. In this paper, we conduct an empirical study to investigate the bloated dependencies that are entirely unused within server-side applications. Our study focuses on applications built with the widely used and highly dynamic CommonJS module system. We propose a trace-based dynamic analysis that monitors file access, to determine which dependencies are not accessed during runtime. To conduct our study, we curate an original dataset of 92 CommonJS packages with a median test coverage of 96.9% and a total of 50,661 dependencies. Our dynamic analysis identifies and successfully removes 50.7% of these dependencies while maintaining the correct build of all packages. Furthermore, we find that 14.9% of directly used dependencies and 51.3% of indirect dependencies are bloated. A key insight is that focusing on removing only the direct bloated dependencies by cleaning the package.json file, also removes a significant share of unnecessary bloated indirect dependencies. Compared to the state-of-the-art dynamic debloating technique, our analysis based on file accesses has fewer false positives, and demonstrates higher accuracy in detecting bloated dependencies. Our findings suggest that native support for dependency debloating in package managers could significantly alleviate the burden of maintaining dependencies.
- Abstract(参考訳): JavaScriptパッケージは肥大化しやすいことで知られており、これはWebアプリケーションのパフォーマンスと保守性に大きな影響を与えている。
ウェブバンドルとツリーシェイキングは、機能レベルでクライアント側のアプリケーションでこの問題を軽減することができるが、サーバ側のアプリケーションの肥大を効果的に検出し、排除することはできない。
本稿では,サーバサイドアプリケーションで完全に使用されていない肥大化した依存関係について,実証的研究を行う。
本研究は,CommonJSモジュールシステムを用いて構築されたアプリケーションに焦点をあてる。
本稿では,ファイルアクセスを監視し,実行中にどの依存関係がアクセスされないかを決定するトレースベースの動的解析手法を提案する。
調査を行うため、92のCommonJSパッケージのオリジナルのデータセットを、96.9%、および50,661の依存関係でキュレートした。
私たちの動的分析は、すべてのパッケージの正しいビルドを維持しながら、これらの依存関係の50.7%を特定し、うまく除去します。
さらに、直接使用される依存関係の14.9%と間接的な依存関係の51.3%が肥大化していることがわかった。
重要な洞察は、package.jsonファイルのクリーニングによって直接肥大化した依存関係だけを取り除くことに集中することで、不要な肥大化した間接的な依存関係のかなりのシェアを取り除くことである。
現状の動的デブロ化技術と比較すると,ファイルアクセスに基づく解析では偽陽性が減り,肥大した依存関係の検出精度が向上した。
以上の結果から,パッケージマネージャにおける依存性のデブロ化に対するネイティブサポートは,依存関係維持の負担を大幅に軽減する可能性が示唆された。
関連論文リスト
- A Preliminary Study on Self-Contained Libraries in the NPM Ecosystem [2.221643499902673]
現代のソフトウェアエコシステムにおけるライブラリの普及は、依存関係の複雑なネットワークを生み出します。
依存関係がゼロのライブラリは自己完結型になる。
本稿では,NPMエコシステムにおける自己完結型ライブラリの特徴について考察する。
論文 参考訳(メタデータ) (2024-06-17T09:33:49Z) - How to Understand Whole Software Repository? [64.19431011897515]
リポジトリ全体に対する優れた理解は、自動ソフトウェアエンジニアリング(ASE)への重要な道になるでしょう。
本研究では,リポジトリ全体を包括的に理解するためのエージェントによるRepoUnderstanderという新しい手法を開発した。
リポジトリレベルの知識をより活用するために、エージェントをまとめ、分析し、計画する。
論文 参考訳(メタデータ) (2024-06-03T15:20:06Z) - See to Believe: Using Visualization To Motivate Updating Third-party Dependencies [1.7914660044009358]
サードパーティの依存関係を使用したアプリケーションによって導入されたセキュリティ脆弱性が増加している。
開発者はライブラリのアップデートに注意を払っており、脆弱性の修正にも注意している。
本稿では、依存性グラフ可視化(DGV)アプローチが、開発者が更新を動機付けると仮定する。
論文 参考訳(メタデータ) (2024-05-15T03:57:27Z) - Analyzing the Accessibility of GitHub Repositories for PyPI and NPM Libraries [91.97201077607862]
産業アプリケーションはオープンソースソフトウェア(OSS)ライブラリに大きく依存しており、様々な利点を提供している。
このようなコミュニティの活動を監視するには、エコシステムのライブラリの包括的なリポジトリのリストにアクセスしなければなりません。
本研究では、PyPIライブラリとNPMライブラリのGitHubリポジトリのアクセシビリティを分析する。
論文 参考訳(メタデータ) (2024-04-26T13:27:04Z) - Decoupled Subgraph Federated Learning [57.588938805581044]
複数のクライアントに分散したグラフ構造化データに対するフェデレーション学習の課題に対処する。
我々は、このシナリオのための新しいフレームワーク、FedStructを紹介します。
半教師付きノード分類のための6つのデータセットを用いて実験結果を用いてFedStructの有効性を検証する。
論文 参考訳(メタデータ) (2024-02-29T13:47:23Z) - Dependency Practices for Vulnerability Mitigation [4.710141711181836]
npmエコシステムの450以上の脆弱性を分析し、依存するパッケージが脆弱なままである理由を理解します。
依存関係によって感染した20万以上のnpmパッケージを特定します。
私たちは9つの機能を使って、脆弱性修正を迅速に適用し、脆弱性のさらなる伝播を防ぐパッケージを特定する予測モデルを構築しています。
論文 参考訳(メタデータ) (2023-10-11T19:48:46Z) - Analyzing the Evolution of Inter-package Dependencies in Operating
Systems: A Case Study of Ubuntu [7.76541950830141]
オペレーティングシステム(OS)は複数の相互依存ソフトウェアパッケージを結合し、通常は独自に開発されたアーキテクチャを持つ。
進化的な努力のために、OSのデザイナや開発者たちは、個々のファイルにフォーカスするシステム全体の依存性を完全に理解することで、大きな恩恵を受けることができます。
本稿では,個々のバイナリファイルのレベルでの詳細なパッケージ関係の発見を目的としたフレームワークであるDepExを提案する。
論文 参考訳(メタデータ) (2023-07-10T10:12:21Z) - Analyzing Maintenance Activities of Software Libraries [65.268245109828]
近年、産業アプリケーションはオープンソースソフトウェアライブラリを深く統合している。
産業アプリケーションに対する自動監視アプローチを導入して、オープンソース依存関係を特定し、その現状や将来的なメンテナンス活動に関するネガティブな兆候を示したいと思っています。
論文 参考訳(メタデータ) (2023-06-09T16:51:25Z) - On the Security Blind Spots of Software Composition Analysis [46.1389163921338]
Mavenリポジトリで脆弱性のあるクローンを検出するための新しいアプローチを提案する。
Maven Centralから53万以上の潜在的な脆弱性のあるクローンを検索します。
検出された727個の脆弱なクローンを検出し、それぞれに検証可能な脆弱性証明プロジェクトを合成する。
論文 参考訳(メタデータ) (2023-06-08T20:14:46Z) - Multi-Target XGBoostLSS Regression [91.3755431537592]
本稿では,複数の目標とその依存関係を確率論的回帰設定でモデル化するXGBoostLSSの拡張について述べる。
提案手法は,既存のGBMよりも実行時の方が優れており,精度も良好に比較できる。
論文 参考訳(メタデータ) (2022-10-13T08:26:14Z) - Demystifying Dependency Bugs in Deep Learning Stack [7.488059560714949]
本稿では、Deep Learningスタック全体にわたる依存性バグ(DB)の症状、根本原因、修正パターンを特徴付ける。
以上の結果から,依存性管理の実践的意義が明らかとなった。
論文 参考訳(メタデータ) (2022-07-21T07:56:03Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。