論文の概要: 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倍のスピードアップを観測する。
関連論文リスト
- 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) - 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) - Injecting Domain Adaptation with Learning-to-hash for Effective and
Efficient Zero-shot Dense Retrieval [49.98615945702959]
我々は,TAS-B高密度検索器の下流ゼロショット検索精度を向上させるためのLTHおよびベクトル圧縮技術を評価する。
以上の結果から, 従来の研究とは異なり, LTH法はゼロショットTAS-B高密度レトリバーを平均14%のnDCG@10で過小評価できることがわかった。
論文 参考訳(メタデータ) (2022-05-23T17:53:44Z) - 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) - Speeding Up OPFython with Numba [0.0]
Optimum-Path Forest (OPF)は、ロジスティック回帰、サポートベクトルマシンに匹敵する最先端のアルゴリズムであることが証明されている。
最近、PythonベースのバージョンはOPFythonと呼ばれ、よりフレンドリーなフレームワークとより高速なプロトタイピング環境を提供することが提案されている。
本稿では,Numpyに基づく計算を高速化し,アルゴリズム全体の性能向上を図るため,Numbaパッケージを用いた簡易かつ高効率な高速化を提案する。
論文 参考訳(メタデータ) (2021-06-22T14:39:32Z) - Using Python for Model Inference in Deep Learning [0.6027358520885614]
pythonで推論を実行しながら、パフォーマンスとパッケージングの制約を満たす方法を示します。
複数のPythonインタプリタを単一のプロセスで使用して,スケーラブルな推論を実現する方法を提案する。
論文 参考訳(メタデータ) (2021-04-01T04:48:52Z) - Python Workflows on HPC Systems [2.1485350418225244]
計算集約型機械学習とデータ分析手法の最近の成功と広範な応用により、HPCシステムにおけるPythonプログラミング言語の使用が促進されている。
Pythonはユーザに対して多くの利点を提供しているが、マルチユーザ環境や並列プログラミングに重点を置いて設計されていない。
本稿では,HPCクラスタ上でのPythonの使用によって引き起こされる重要な問題を分析し,適切な回避策をスケッチする。
論文 参考訳(メタデータ) (2020-12-01T09:51:12Z) - OPFython: A Python-Inspired Optimum-Path Forest Classifier [68.8204255655161]
本稿では,OPFythonと表記されるPythonベースのOptimum-Path Forestフレームワークを提案する。
OPFythonはPythonベースのライブラリなので、C言語よりもフレンドリーな環境とプロトタイピングの作業スペースを提供する。
論文 参考訳(メタデータ) (2020-01-28T15:46:19Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。