it技術:dotnet
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| it技術:dotnet [2022/04/13 14:32] – [初回起動が遅い] yajuadmin | it技術:dotnet [2022/06/23 17:23] (現在) – [Windowsのディレクトリ構成ガイドライン] yajuadmin | ||
|---|---|---|---|
| 行 38: | 行 38: | ||
| |なし(配下はある)|%PUBLIC%|C: | |なし(配下はある)|%PUBLIC%|C: | ||
| |CommonApplicationData|%PROGRAMDATA%|C: | |CommonApplicationData|%PROGRAMDATA%|C: | ||
| + | |||
| + | ===== DebugとReleaseの違い ===== | ||
| + | Releaseの方がコードサイズが小さくなります。\\ | ||
| + | [[https:// | ||
| + | |||
| + | === Debug === | ||
| + | * 条件付きコンパイルの定数:DEBUG, | ||
| + | * コードの最適化:ON | ||
| + | * デバッグ情報:FULL | ||
| + | |||
| + | === Release === | ||
| + | * 条件付きコンパイルの定数:TRACE | ||
| + | * コードの最適化:OFF | ||
| + | * デバッグ情報:pdb-only | ||
| ===== 初回起動が遅い ===== | ===== 初回起動が遅い ===== | ||
| + | 「エンド・ユーザーは、0.5秒のフリーズでストレスを感じ、3秒のフリーズはバグだと思う」。昔、冗談半分に言ってみた言葉だが、回りの反応を見るに、割とみな思っていることらしい。\\ | ||
| + | https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| 別の.NETアプリケーションが既に動作していれば起動は速いがPC起動時など遅い。\\ | 別の.NETアプリケーションが既に動作していれば起動は速いがPC起動時など遅い。\\ | ||
| 理由は、.NET Framework 自体のロードをファイルシステム・キャッシュ上に乗せるためで「コールド スタート」と呼ばれる、別の.NETアプリケーションが既に動作していると「ウォーム スタート」となる。\\ | 理由は、.NET Framework 自体のロードをファイルシステム・キャッシュ上に乗せるためで「コールド スタート」と呼ばれる、別の.NETアプリケーションが既に動作していると「ウォーム スタート」となる。\\ | ||
| ウォーム スタートは、主要なCLRコンポーネント用のページの殆どが既にメモリに読み込まれているときに発生し、貴重なディスクアクセス時間が節約されます。このため、マネージ アプリケーションを再度実行すると、初回よりも短い時間で起動します。\\ | ウォーム スタートは、主要なCLRコンポーネント用のページの殆どが既にメモリに読み込まれているときに発生し、貴重なディスクアクセス時間が節約されます。このため、マネージ アプリケーションを再度実行すると、初回よりも短い時間で起動します。\\ | ||
| [[https:// | [[https:// | ||
| + | |||
| + | コールドスタートアップはIOバウンドだから当然ngenでは速くならない。2度目以降の起動時間が短くなるのは、OSが一度読んだブロックをメモリにキャッシュしているから。 | ||
| 起動を速くするににプリコンパイルする「Ngen.exe」を使用する方法がある。インストール時にカスタムアクションでNgen.exeでプリコンパイルするといった手法もある。\\ | 起動を速くするににプリコンパイルする「Ngen.exe」を使用する方法がある。インストール時にカスタムアクションでNgen.exeでプリコンパイルするといった手法もある。\\ | ||
| [[https:// | [[https:// | ||
| 但しプリコンパイルの効果は永続的ではなく、.NET Frameworkなどのバージョンが変わったりなどの条件によって効果が消えてしまう。\\ | 但しプリコンパイルの効果は永続的ではなく、.NET Frameworkなどのバージョンが変わったりなどの条件によって効果が消えてしまう。\\ | ||
| - | [[https:// | + | * [[https:// |
| + | * [[https:// | ||
| .NET 4.5以降では、NgenがWindowsサービスとして動いている(Auto-Ngen)\\ | .NET 4.5以降では、NgenがWindowsサービスとして動いている(Auto-Ngen)\\ | ||
| 行 69: | 行 91: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | |||
| ===== アセンブリの厳密名と特定バージョンについて ===== | ===== アセンブリの厳密名と特定バージョンについて ===== | ||
| ==== 厳密名について ==== | ==== 厳密名について ==== | ||
it技術/dotnet.1649827960.txt.gz · 最終更新: 2022/04/13 14:32 by yajuadmin
