回答編集履歴

2

誤字の修正

2019/04/08 15:43

投稿

atata0319
atata0319

スコア881

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

誤字の修正

2019/04/08 15:43

投稿

atata0319
atata0319

スコア881

test CHANGED
@@ -1,4 +1,4 @@
1
- メモリマップドファイルと遅いという結論になってしまっていますが、実際には違います。提示されているコードが遅い原因は MemoryMappedViewAccessor.WriteArray の実装に起因しています。メモリマップドファイルは効率的にディスクアクセスするため、ディスクとマッピングした場合も該当ディスクに対するシーケンシャル書き込みに準じた性能が出るはずです。ディスクにマッピングしない場合は通常のメモリアクセスよりやや遅いていどの速度にはなるはずす。コメントに記載されている5倍以上の速度差というのはちょっと考えられません。
1
+ メモリマップドファイルと遅いという結論になってしまっていますが、実際には違います。提示されているコードが遅い原因は MemoryMappedViewAccessor.WriteArray の実装に起因しています。メモリマップドファイルは効率的にディスクアクセスするため、ディスクとマッピングした場合も該当ディスクに対するシーケンシャル書き込みに準じた性能が出るはずです。ディスクにマッピングしない場合は通常のメモリアクセスよりやや遅いていどの速度にはなるはずす。コメントに記載されている5倍以上の速度差というのはちょっと考えられません。
2
2
 
3
3
 
4
4