回答編集履歴
2
誤字の修正
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
[SafeBuffer.WriteArray](https://referencesource.microsoft.com/#mscorlib/system/runtime/interopservices/safebuffer.cs,a99117a5b07907f0)
|
8
8
|
|
9
|
-
このメソッドを見ていただくとわかる通り、GenericStructureToPtr メソッドをループして呼び出しているだけです。3000 x 3000 の 24 ビットビットマップであれば、これを 2700 万回繰り返して呼び出すために提示されているぐらいの時間がかかっています。
|
9
|
+
このメソッドを見ていただくとわかる通り、GenericStructureToPtr メソッドをループして呼び出しているだけです。3000 x 3000 の 24 ビットビットマップであれば、これを 2700 万回繰り返して呼び出すために提示されているぐらいの時間がかかっていると推測されます。
|
10
10
|
|
11
11
|
|
12
12
|
|
1
誤字の修正
test
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
メモリマップドファイルと遅いという結論になってしまっていますが、実際には違います。提示されているコードが遅い原因は MemoryMappedViewAccessor.WriteArray の実装に起因しています。メモリマップドファイルは効率的にディスクアクセスするため、ディスクとマッピングした場合も該当ディスクに対するシーケンシャル書き込みに準じた性能が出るはずです。ディスクにマッピングしない場合は通常のメモリアクセスよりやや遅いていどの速度にはなるはず
|
1
|
+
メモリマップドファイルと遅いという結論になってしまっていますが、実際には違います。提示されているコードが遅い原因は MemoryMappedViewAccessor.WriteArray の実装に起因しています。メモリマップドファイルは効率的にディスクアクセスするため、ディスクとマッピングした場合も該当ディスクに対するシーケンシャル書き込みに準じた性能が出るはずです。ディスクにマッピングしない場合は通常のメモリアクセスよりやや遅いていどの速度にはなるはずです。コメントに記載されている5倍以上の速度差というのはちょっと考えられません。
|
2
2
|
|
3
3
|
|
4
4
|
|