Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

run-cppcheck.bat の実行に時間が掛かる #463

Closed
beru opened this issue Sep 18, 2018 · 7 comments
Closed

run-cppcheck.bat の実行に時間が掛かる #463

beru opened this issue Sep 18, 2018 · 7 comments
Labels
CI appveyor など CI 関連 【ChangeLog除外】 cppcheck
Milestone

Comments

@beru
Copy link
Contributor

beru commented Sep 18, 2018

build-all.bat でインストーラーを作成する際に cppcheck の実行に結構時間が掛かるのが気になります。
もうちょっとサクッといかないものかと…。

Windows だと start コマンドを使うと bg 起動が出来るようです。コマンドプロンプトの窓が新たに開かれそうな予感…。
https://tech.nikkeibp.co.jp/it/atcl/column/15/042000103/080600052/

@m-tmatma
Copy link
Member

簡単なのは APPVEYOR のときにだけ実行するようにすればいいです。

https://www.appveyor.com/docs/environment-variables/

APPVEYOR のときは APPVEYOR という環境変数がセットされています。
ローカルで実行させたいときは、APPVEYOR をコマンドでセットするというものです。
ちょっとトリッキーですが。

わかりやすくするのだったら専用の環境変数を用意して、APPVEYOR がセットされていたら
それをセットするようにするというやり方があります。

@KENCHjp KENCHjp added the CI appveyor など CI 関連 【ChangeLog除外】 label Sep 18, 2018
@beru beru added the cppcheck label Sep 18, 2018
@ds14050
Copy link
Contributor

ds14050 commented Nov 16, 2018

その AppVeyor で実行しているときにもコンソールログが長い間動かないためにじりじりしてしまいます。

Cppcheck はソースコードにのみ依存していて他のビルド産物への依存はないため、バックグラウンドで実行してあとでログだけ回収しようとしました>master...ds14050:ConcurrentCppcheck

ビルドの実行時間はやや伸びるようです。AppVeyor ではコアを余らせているわけではないようで。

@berryzplus
Copy link
Contributor

Cppcheck はソースコードにのみ依存していて他のビルド産物への依存はないため、バックグラウンドで実行してあとでログだけ回収しようとしました>master...ds14050:ConcurrentCppcheck

面白い思考実験だと思いました。しかも実現できたらかなりありがたいです・・・。

cppcheck 実は githash.h と funccode_enum.h の生成処理に依存。
helpファイルビルド 依存関係まったくナシ。
メインのビルド 依存関係なし。
インストーラのビルド helpとメインのビルドに依存。

start cmd /C で走らせたバッチとの同期をいかに効率よく実現するかがカギなのかな、と思いました。ざっと見た感じ、同期自体はできそうなバッチになってると思います。効率よく、がカギ。

@ds14050
Copy link
Contributor

ds14050 commented Nov 16, 2018

思考実験ではありません。動いています。

結局エディタのビルドと並行するので CPU や IO が余っていないと取り合いになって効率が下がるんでしょうね。

githash.h と Funccode_enum.h、Funccode_define.h くらいならチェックが抜けていても気にしない性格です。そこを詰めようとしても面倒が勝ちます。

ヘルプのビルドは数秒で終わるので恩恵はないでしょう。#615 のコンソールログで「build-chm.bat」を検索するとわかります。

@berryzplus
Copy link
Contributor

berryzplus commented Nov 16, 2018

思考実験ではありません。動いています。

失礼。悪い意味で使った言葉じゃないです。気を悪くされたならごめんなさい。

結局エディタのビルドと並行するので CPU や IO が余っていないと取り合いになって効率が下がるんでしょうね。

start コマンドには優先度指定のオプションがあったはずです。
今調べてみたら /LOW/BELOWNORMAL がそれっぽいです。
cppcheck を走らせるバッチの start コマンドにこれを指定してみてはどうでしょうか。

計っていませんが ビルド時間 > cppcheck時間 なはずなので優先度を下げても大丈夫な気がします。ビルドを邪魔しないことで速くなるかも知れません。

@ds14050
Copy link
Contributor

ds14050 commented Nov 16, 2018

良い悪いではなく言葉の定義と正誤が問題です。それを指摘せずにスルーはできない人間なのです。

/LOW は IDLE と同じらしいのでずっと待たされそうです。/BELOWNORMAL を付けて現在の master ブランチに rebase してみました>https://ci.appveyor.com/project/ds14050/sakura-clone/branch/ConcurrentCppcheck AppVeyor の反応性は時間帯でだいぶ変わります。

本当に効果があるのは #427 で言われているように他の CI を併用することなんでしょうね。

@m-tmatma
Copy link
Member

m-tmatma commented Apr 5, 2019

appveyor で実行するのをやめました。
build-all.bat からも外しました。
閉じます。

#833 適用前 https://ci.appveyor.com/project/sakuraeditor/sakura/builds/23597175 → 48 min 57 sec
#833 適用後 https://ci.appveyor.com/project/sakuraeditor/sakura/builds/23615895 → 25 min 22 sec

@m-tmatma m-tmatma closed this as completed Apr 5, 2019
@m-tmatma m-tmatma added this to the v2.4.0 milestone Apr 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI appveyor など CI 関連 【ChangeLog除外】 cppcheck
Projects
None yet
Development

No branches or pull requests

5 participants