論文の概要: SlipCover: Near Zero-Overhead Code Coverage for Python
- arxiv url: http://arxiv.org/abs/2305.02886v4
- Date: Wed, 31 May 2023 13:28:56 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-24 12:13:42.486307
- Title: SlipCover: Near Zero-Overhead Code Coverage for Python
- Title(参考訳): SlipCover: Pythonのゼロに近いコードカバレッジ
- Authors: Juan Altmayer Pizzorno and Emery D Berger
- Abstract要約: SlipCoverはPythonの新しい、ほぼゼロのオーバーヘッドカバレッジアナライザである。
PythonインタプリタやPyPyを変更せずに動作します。
その効率性は、カバレッジベースのクライアントのスピードを大幅に向上させることが示されています。
- 参考スコア(独自算出の注目度): 0.9065034043031668
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Coverage analysis is widely used but can suffer from high overhead. This
overhead is especially acute in the context of Python, which is already
notoriously slow (a recent study observes a roughly 30x slowdown vs. native
code). We find that the state-of-the-art coverage tool for Python,
coverage$.$py, introduces a median overhead of 180% with the standard Python
interpreter. Slowdowns are even more extreme when using PyPy, a JIT-compiled
Python implementation, with coverage$.$py imposing a median overhead of 1,300%.
This performance degradation reduces the utility of coverage analysis in most
use cases, including testing and fuzzing, and precludes its use in deployment.
This paper presents SlipCover, a novel, near-zero overhead coverage analyzer
for Python. SlipCover works without modifications to either the Python
interpreter or PyPy. It first processes a program's AST to accurately identify
all branches and lines. SlipCover then dynamically rewrites Python bytecodes to
add lightweight instrumentation to each identified branch and line. At run
time, SlipCover periodically de-instruments already-covered lines and branches.
The result is extremely low overheads -- a median of just 5% -- making
SlipCover suitable for use in deployment. We show its efficiency can translate
to significant increases in the speed of coverage-based clients. As a proof of
concept, we integrate SlipCover into TPBT, a targeted property-based testing
system, and observe a 22x speedup.
- Abstract(参考訳): カバレッジ分析は広く使われているが、オーバーヘッドが高い。
このオーバーヘッドはPythonのコンテキストでは特に深刻で、すでに非常に遅くなっている(最近の研究では、ネイティブコードに対する約30倍のスローダウンが観察されている)。
python の最先端のカバレッジツールである coverage が .net に含まれていることが分かりました。
$pyは、標準のPythonインタープリタで180%の平均的なオーバーヘッドを導入する。
JITコンパイルされたPython実装であるPyPyを使用すると、スローダウンはさらに極端になる。
中央値のオーバーヘッドは1300%である。
このパフォーマンス劣化は、テストやファジィングを含むほとんどのユースケースでカバレッジ分析の有用性を低下させ、デプロイメントでの使用を妨げます。
本稿では、python用の新しい、ほぼゼロのオーバーヘッドカバレッジアナライザであるslipcoverを提案する。
SlipCoverはPythonインタプリタやPyPyに変更を加えることなく動作する。
プログラムのASTを処理して、すべてのブランチと行を正確に識別する。
SlipCoverはPythonバイトコードを動的に書き直して、指定されたブランチと行に軽量なインスツルメンテーションを追加する。
実行時、SlipCoverは定期的にラインとブランチを非インストラクトしていた。
その結果、オーバーヘッドが非常に低く(中央値5%)、SlipCoverはデプロイメントでの使用に適している。
その効率性は、カバレッジベースのクライアントのスピードを大幅に向上させることができる。
概念実証として、SlipCoverを対象とするプロパティベースのテストシステムTPBTに統合し、22倍のスピードアップを観測する。
関連論文リスト
- An Empirical Study of Vulnerability Handling Times in CPython [0.2538209532048867]
本稿では,CPythonにおけるソフトウェア脆弱性の処理時間について検討する。
この論文は、Pythonエコシステムのセキュリティをよりよく理解するための最近の取り組みに貢献している。
論文 参考訳(メタデータ) (2024-11-01T08:46:14Z) - No Saved Kaleidosope: an 100% Jitted Neural Network Coding Language with Pythonic Syntax [0.8408735228878615]
我々は,C++,LLVM,Cudaを用いてニューラルネットワークを学習するためのjittedコンパイラを開発した。
オブジェクト指向の特徴、強い型付け、データ前処理のための並列ワーカー、式のためのピソニック構文、PyTorchのようなモデル宣言、自動微分などが特徴である。
論文 参考訳(メタデータ) (2024-09-17T23:15:39Z) - Nerva: a Truly Sparse Implementation of Neural Networks [16.29955529463831]
Nervaは、C++で開発中の高速ニューラルネットワークライブラリである。
IntelのMath Kernel Libraryのスパースマトリックス操作を使用することで、スパシティをサポートする。
論文 参考訳(メタデータ) (2024-07-24T17:13:31Z) - depyf: Open the Opaque Box of PyTorch Compiler for Machine Learning Researchers [92.13613958373628]
textttdepyfは、PyTorchコンパイラの内部動作を復号化するためのツールである。
textttdepyfは、PyTorchが生成したバイトコードを等価なソースコードに逆コンパイルする。
論文 参考訳(メタデータ) (2024-03-14T16:17:14Z) - DyPyBench: A Benchmark of Executable Python Software [18.129031749321058]
我々は、Pythonプロジェクトの最初のベンチマークであるDyPyBenchを紹介します。
ベンチマークには、さまざまなアプリケーションドメインから50の人気のあるオープンソースプロジェクトが含まれており、合計681万行のPythonコードと30万のテストケースが含まれている。
我々は、DyPyBenchが他の動的解析の基礎を提供し、Pythonコードの実行時の振る舞いを研究することを想定する。
論文 参考訳(メタデータ) (2024-03-01T13:53:15Z) - Python is Not Always the Best Choice: Embracing Multilingual Program of Thoughts [51.49688654641581]
本稿では,多言語からの強みと多様性を生かしたMultiPoTというタスクとモデル非依存のアプローチを提案する。
実験の結果、Python Self-Consistencyを著しく上回ることがわかった。
特にMultiPoTはChatGPT(gpt-3.5-turbo-0701)で平均4.6%以上の改善を実現している。
論文 参考訳(メタデータ) (2024-02-16T13:48:06Z) - PockEngine: Sparse and Efficient Fine-tuning in a Pocket [62.955793932377524]
さまざまなエッジデバイスで微調整が可能な,小型でスパースで効率的なエンジンであるPockEngineを紹介します。
PockEngineはスパースバックプロパゲーションをサポートし、測定メモリの節約とレイテンシの削減でモデルをスパース更新する。
注目すべきなのは、PockEngineはNVIDIA Jetson AGX OrinのLLaMav2-7Bを550トークン/秒で微調整できることだ。
論文 参考訳(メタデータ) (2023-10-26T19:46:11Z) - PyXAB -- A Python Library for $\mathcal{X}$-Armed Bandit and Online
Blackbox Optimization Algorithms [29.919425124143068]
PyXABは、$mathcalX$-armed banditとオンラインブラックボックス最適化のためのPythonオープンソースライブラリである。
PyXAB には 10$mathcalX$-armed bandit アルゴリズムの実装が含まれている。
PyXABのドキュメントには、インストールの明確な指示、ストレートフォワードの例、詳細な機能説明、APIの完全な参照が含まれている。
論文 参考訳(メタデータ) (2023-03-07T16:43:05Z) - DADApy: Distance-based Analysis of DAta-manifolds in Python [51.37841707191944]
DADApyは、高次元データの分析と特徴付けのためのピソンソフトウェアパッケージである。
固有次元と確率密度を推定し、密度に基づくクラスタリングを行い、異なる距離メトリクスを比較する方法を提供する。
論文 参考訳(メタデータ) (2022-05-04T08:41:59Z) - PyGOD: A Python Library for Graph Outlier Detection [56.33769221859135]
PyGODは、グラフデータの外れ値を検出するオープンソースライブラリである。
外れ値検出のための主要なグラフベースのメソッドを幅広くサポートしています。
PyGODはBSD 2-Clauseライセンスの下でhttps://pygod.orgとPython Package Index (PyPI)でリリースされている。
論文 参考訳(メタデータ) (2022-04-26T06:15:21Z) - OPFython: A Python-Inspired Optimum-Path Forest Classifier [68.8204255655161]
本稿では,OPFythonと表記されるPythonベースのOptimum-Path Forestフレームワークを提案する。
OPFythonはPythonベースのライブラリなので、C言語よりもフレンドリーな環境とプロトタイピングの作業スペースを提供する。
論文 参考訳(メタデータ) (2020-01-28T15:46:19Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。