danielgtaylor / danielgtaylor/python-betterproto

Rendering comments can be time consuming.

オープン
#682 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
1.8k
フォーク
234
PR マージ指標
30日以内にマージされた PR はありません

説明

```
$ time protoc -I . --python_betterproto_out=. douyin2.proto |& head
Writing __init__.py
Writing douyin\__init__.py

real 6m18.150s
user 0m0.015s
sys 0m0.091s
```
After patching `betterproto/plugin/models.py@ProtoContentBase.comment` to return empty string, it's much faster
```
$ time protoc -I . --python_betterproto_out=. douyin2.proto |& head
Writing __init__.py
Writing douyin\__init__.py

real 0m23.077s
user 0m0.000s
sys 0m0.092s
```

Profile flamegraph from `py-spy record`

Image

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

betterproto/plugin/models.py の ProtoContentBase.comment から始め、報告された py-spy プロファイルを使って、なぜコメントのレンダリングが protoc の生成時間の大部分を占めるのかを特定します。提供されたタイミング例と生成を比較し、報告された遅延を大幅に削減しながらコメントが正しいままであることを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
devtools, performance
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
55/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。