okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by softya(ソフト屋) » 12年前

「ビルドから除外されたソースのコンパイル - C・C++ - 教えて!goo」
http://oshiete.goo.ne.jp/qa/8141031.html

> (なぜそんなに大量のcppが必要なのかというのはここでは置いといてください)
毎回全コンパイルに近い動作をすること自体が気になります。

> (1)ある一定数のソースファイルのプロパティで「ビルドから除外」とする。
最悪の選択です。
プロジェクトを複数モジュールに分離して・・・
とか、
プリコンパイル済みヘッダを利用して・・・
とか、
リビルド時間を短縮するためソース間の依存関係を減らして・・・

というような、質問の内容を超える回答はご遠慮ください。
そのようなことは、十分ではないかも知れませんが検討済みです。
(゚∀゚ ;)
何のために依存関係から自動ビルドされているのか、逆らって裏道を探し過ぎです。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by h2so5 » 12年前

そもそも複数のcppファイルを纏めたところでビルド時間は短縮できるものなんでしょうかね...

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by softya(ソフト屋) » 12年前

h2so5 さんが書きました:そもそも複数のcppファイルを纏めたところでビルド時間は短縮できるものなんでしょうかね...
すごい数のヘッダをインクルードしていて、なおかつプリコンパイルヘッダを使用していないとしたら可能性は・・・。
まぁ、そうなる前にlib化するとか、無闇に共通ヘッダを作らないとか手はあると思うのですが。
100ファイルぐらい行った時に気付きそうなものですが。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by h2so5 » 12年前

質問をよく読んでみると、ビルド時間が短縮できるというのは質問者の思い込みなんじゃないかと思います。

「以上により、プロジェクト内のソースファイル数を100以下にまで減らし、無事ビルド時間が大幅に短縮されました。」
と書かれていますが、前後の文脈からするとこれも仮定の話なのではないかと...

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by softya(ソフト屋) » 12年前

h2so5 さんが書きました:質問をよく読んでみると、ビルド時間が短縮できるというのは質問者の思い込みなんじゃないかと思います。

「以上により、プロジェクト内のソースファイル数を100以下にまで減らし、無事ビルド時間が大幅に短縮されました。」
と書かれていますが、前後の文脈からするとこれも仮定の話なのではないかと...
それも、ありそうですがコンパイラ起動が減るだけでも少しは早くなるとは思います。
実測値として、どのぐらいなんだろうって気がしますが。

誰も書き込まないので、相変わらず様子がわかりませんね。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by softya(ソフト屋) » 12年前

分散ビルドって手があるのを思い出しましたが、VC++できたかなぁ?
まぁ、無理やりバッチ組めば何とでもなるんですが。
最後に編集したユーザー softya(ソフト屋) on 2013年6月19日(水) 22:01 [ 編集 1 回目 ]

YuO
記事: 947
登録日時: 14年前

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by YuO » 12年前

リンカの処理に時間が掛かっているのでしょうかねぇ……。
とはいえ,コンパイル時間の莫大な増加を相殺するほど減るとは思えないんですけどね……。

OKWave系 (教えてgoo) にも出没しているのですが,この質問は単純に時間だけ使いそうなので食いつかないようにした質問ですね……。
個人的には,OKWave系は質問者が回答を打ち切ることが出来る点で,プログラムの質問に向いていないと思っています。
他者回答への指摘禁止なんていうルールもあって,回答者が間違った回答を鵜呑みにしてそちらを信じて解決したり,というのもありますし……。

beatle
記事: 1281
登録日時: 13年前

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by beatle » 12年前

複数のソースファイルをまとめてコンパイルすることで,それらソースファイルから共通にインクルードされているヘッダファイルの解析が1度で済むからコンパイルが速くなる,というのは事実でしょう.
C++は特にテンプレートの存在によりヘッダファイルの解析が非常に時間がかかりますから.
(だからプリコンパイルヘッダなる技術が流行る)

okwaveを読むと,ほぼすべてのcppに相互に関連があるから,一つ変更するとほぼ全体をビルドし直すという事態になっている気がします.

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by softya(ソフト屋) » 12年前

>okwaveを読むと,ほぼすべてのcppに相互に関連があるから,一つ変更するとほぼ全体をビルドし直すという事態になっている気がします.

既にその設計でデスマーチ確定したと言って良いと思います。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by softya(ソフト屋) » 12年前

なんか質問者からの返事で展開有り。
やはり、デスマーチパターンに自らハマリたいらしい。

こんなのがあるですが、金は出したくないと言われそうですね。
「Xoreax JAPAN - ホーム」
http://www.xoreax.co.jp/

アバター
へにっくす
記事: 634
登録日時: 13年前

Re: okwave系質問掲示板で、いろんな意味でデスマーチ臭がする質問を発見。

投稿記事 by へにっくす » 12年前

一つにまとめる作業はさぞ大変だったろうなあ、質問者。
私ならまずやらないね。
部下にそんな奴がいたら、即、止めるよ…

一つにまとめる作業するときに、#ifdefとかで切り分けるようにすればよかったのにね。
既存のプロジェクトをいじるのではなく、新しいプロジェクトを作成し、コンパイラオプションでマクロ定義しとけば対応できたと思うんだけどね。
まあやったとしたら、既存のソースをいじりまわすことになるから推奨はしないけどね。
あ、質問者が「ソースファイルを1つにまとめてしまう事による弊害は全て解決したものとします。」とあるから同じことか。

ああ、ほんとデスマーチ!! 笑
最後に編集したユーザー へにっくす on 2013年6月20日(木) 23:34 [ 編集 1 回目 ]