問題タブ [build-time]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 大規模なコードベースの C# コンパイラは、巨大な RAM を搭載したマシンで劇的に高速に実行されますか?
2G RAM マシンで実行されている、適切なアセンブリ分解を行わない大規模なレガシー コードベースで、ビルド時間が実際に遅いのを見てきました。では、コードをオーバーホールせずに速度を上げたい場合、妖精の IT 部門が提供した場合、16G (または他のそのような膨大な数) の RAM マシンは根本的に高速になるでしょうか? 言い換えれば、RAM は十分に大きな dotnet プロジェクトの主要なボトルネックですか、それとも他に支配的な問題がありますか?
純粋な好奇心から、Java を構築するための同様の状況についての意見も歓迎します。
objective-c - 目的 c のヘッダーのインポート
Objective-c では、慣習によりあるクラスのオブジェクトを別のクラスに使用する場合、.h ファイルでクラスを前方宣言する必要があります@class classname;。また、ヘッダー ファイルを .m ファイルにインポートする必要があります#import "header.h"。しかし、ヘッダー ファイルを .h にインポートすると、それを .m ファイルに再度インポートする必要はありません。では、この規則の背後にある理由は何ですか? 効率の良い方法は?
c++ - VisualStudio11でShaderModel5.0でコンパイルされたシェーダーを使用するにはどうすればよいですか?
プロジェクト内の.hlslファイルをC++DirectX11プロジェクト用にコンパイル済み/オフライン/ビルドタイムにしようとしています。Visual Studioは、.hlslファイルを.csoファイルにコンパイルします。SM 5.0の.csoファイルをプログラムに読み込んで、シェーダーを作成するのに問題があります。
プリコンパイルされた.csoファイルからピクセルシェーダーを作成する必要があるコードは次のとおりです。
ピクセルシェーダーは、単に青いピクセルを返すことになっています。Visual Studio 11でコンパイル設定を変更することにより、Shader Model 5.0にコンパイルされました。ただし、プログラムを実行すると、ビルドまたは実行時のエラーメッセージが表示されないにもかかわらず、レンダリングしようとしている三角形が表示されません。
実行時に以下を使用してコンパイルする場合:
D3DReadFileToBlob(..)の代わりに、三角形はまだレンダリングされていません。
ただし、Shader Model 4.0を使用する場合、ビルド時またはランタイムのコンパイルに関係なく、青い三角形はそれが機能することを示します。
これが私のPixelShader.hlslファイルのコードです。万が一、Shader Model 5.0には古すぎて、私の問題の原因になる可能性がありますか?
2010年6月のDirectXSDKではなく、WindowsSDKライブラリを使用しています。私のグラフィックカードはnVidia8800GTSです。
factory-pattern - OOD - メイン アプリケーションの再デプロイを回避するためにプロジェクトを設計および構造化する方法 (ファクトリー パターン?)
ファクトリパターンの使用と実装に関する私の理解を確認したいと思います。いくつかのゲーム (チェス、ポーカー) をプレイするアプリケーションを設計しているとします。ゲームは、CSV、XML のいずれかのソースからロードされますが、アプリケーションを再コンパイル/再展開せずに新しいソース (DB など) を追加する機能が必要です。ファクトリ ロジックと新しいローダーを展開したいだけです。
これは、ゲーム ローダーのファクトリ パターンを示唆しています。次のようなものですが、具体的なローダーがリストを返すため、循環依存が発生します。
私が見つけた解決策は、ゲーム、チェス、ポーカーを移動する新しいプロジェクト Application.Model を作成することです。ecc そうすれば、Application.prj と Factory.prj は Application.Model だけを参照する必要があります。また、DB ソースを追加するには、factory.prj の再コンパイルとデプロイのみが必要です。
これは行く方法ですか?または、ファクトリ パターンを実装して同じ結果を得る方法はありますか。反省したくない。
c++ - サイズ n の定数配列を生成できますか
定数配列power[501] = {1, p % MODER, p*p % MODER, p*p*p % MODER, ..., p^500 % MODER} (p は定数) を生成したい番号。
次のコードを使用してp^n % MODERを生成できることはわかっています。
そして、それはうまくいきます!
私の質問は、必要な配列を生成できるかどうかです。
android - コンパイル時間を短縮するために、Androidプロジェクトを複数のプロジェクトに分割することは可能ですか?
ビルドに時間がかかる大きなAndroidアプリケーションを作成しました。一部の名前空間はめったに変更されません。これらの名前空間を別々のプロジェクトで作成し、メインプロジェクトにライブラリとしてインポートすることは可能ですか?はいの場合、どうすればそれを行うことができますか?
ありがとう、
objective-c - #importの使用-非常に大規模なプロジェクト(ObjC)で#importを使用するための一般的なガイドライン
#importヘッダーと実装はどこにありますか?
私が何をすべきかに関する規則はありますか?
すべてを単一のヘッダーファイルにインポートする方法はありますか?
c++ - コンパイラがどこで時間を費やしているかを知るにはどうすればよいですか?
コンパイラがどこで時間を費やしているかを知るにはどうすればよいですか?
ビルドが遅すぎます。既に VC++ 一時ファイル用に RAM ディスクを使用していますが、違いはありません。(私はSSDを持っているので、違いはないと思っていました。)
このプロジェクトの単一の C++ ファイルのほとんどは、約 1 秒かかります。コンパイルに2秒かかるのはひどいようです(VS2005を使用しているため、プロジェクト内の並列化も行っていません)。
これを最適化するにはどうすればよいですか?プロファイリングせずに最適化しないでください。コンパイラーをプロファイリングするにはどうすればよいですか?
注: これらはあまり役に立ちませんでした:
- C++ コンパイル プロセスのプロファイリング
- Visual Studio でビルド時間を表示しますか? (ただし、完全にメリットがないわけではありません...プロジェクト全体ではなく、単一ファイルのコンパイルを行うと、単一のファイルにかかった時間が表示されます。そうすれば、ここのかなりのファイルがそれ以上かかることがわかります5 秒、スタンドアロンでコンパイルした場合は 10 秒)
良いコメントを追加しましょう:テンプレートはたくさんありますか? ファイルの平均サイズはどれくらいですか? 必要最小限のヘッダーのみを含めることを確認しましたか
いいえ、しませんでした。もちろんできます(そして、きっとそうするでしょう)。何かを見つけられるかもしれませんが、それはすべて憶測と試行錯誤です!
「みんな」は、測定/プロファイリングの後にのみ最適化する必要があることを示していますが、コンパイル時間を最適化すると、試行錯誤に戻りますか?
注:コメントから提案された「ハック」は、少なくともVisual-C ++では機能し__TIME__ません。これは、(ドキュメントの状態として):現在のソースファイルの最新のコンパイル時間。時刻は、hh:mm:ss 形式の文字列リテラルです。-- このスタンプを使用して、少なくとも単一のコンパイル ユニットのタイミングを取得できると思いますが、コンパイル ユニットにドリルダウンすることは役に立ちません。
ios - ビルド時に plist にキーを追加する
[AppName]-Info.plistビルド時間にキーを追加したい。可能です?構築時間内にこれを行うにはどうすればよいですか。
私がここで何をしようとしているのかを説明させてください:私はライブラリを書いていて、開発者がアプリをリリースしたいときにアプリから bundleIdentifier を読みたいと思っています。この情報を含む info.plist にキーを追加します。
たぶん、実行時にこれに書き込むことができますか?
c++ - C/C++: ビルド時間の整数 UNIX タイムスタンプ (文字列ではない) を取得する方法
私はかなり些細なことを達成しようとしています: ビルド時間の整数の 32 ビット UNIX タイムスタンプを格納する必要がありますが、見つかったすべてのマクロ ( __DATE__、__TIME__、__TIMESTAMP__) は整数ではなく文字列に展開されます。
どうやら、私たちはそれを持っていないようです (これは私にとってかなり奇妙です)。文字列ではなく整数が本当に欲しいです。
それを取得するためのベストプラクティスは何ですか?
更新:
補足として、私は組み込みを行っているため、リソースが不足しているため (たとえば、128 KB のフラッシュ メモリ)、文字列を解析するのは非常に悪い考えです。
必要な理由: 各ベータ ビルドの一意のバージョン番号が必要なだけです。まず、16 進ファイルは のように名前が付けられますmy-firmware-v2-33-BETA-1397315745.hex。次に、デバイスの画面に現在のバージョンを表示する必要がある場合、さまざまな形式でエコーしたい場合があります。