Thank you very mush.:thumbsup:
E
elix545
@elix545
Posts
-
Memory utilization of MemoryStream -
Memory utilization of MemoryStreamI think that object are storing the the data using two memory byte, please check the next example:
Module Module1
Sub Main() Dim ObjMemoryStream As System.IO.MemoryStream ObjMemoryStream = New System.IO.MemoryStream(1073741825) System.Console.WriteLine("Capacity: {0}", ObjMemoryStream.Capacity.ToString()) System.Console.WriteLine("Length: {0}", ObjMemoryStream.Length.ToString()) Dim j As Integer For i As Integer = 0 To 1073741824 Step 1 If (i Mod 256) = 0 Then j = 0 Else j = i Mod 256 ObjMemoryStream.WriteByte(j) Next i System.Console.WriteLine("Capacity: {0}", ObjMemoryStream.Capacity.ToString()) System.Console.WriteLine("Length: {0}", ObjMemoryStream.Length.ToString()) Dim ObjFileStream As System.IO.FileStream ObjFileStream = System.IO.File.Create("C:\\TEST.txt", 1024) Dim ObjBinaryWriter As System.IO.BinaryWriter ObjBinaryWriter = New System.IO.BinaryWriter(ObjFileStream, System.Text.Encoding.ASCII) ObjMemoryStream.Position = 0 ObjBinaryWriter.Write(ObjMemoryStream.ToArray()) ObjBinaryWriter.Flush() ObjBinaryWriter.Close() System.Console.ReadKey() End Sub
End Module
-
Memory utilization of MemoryStreamWhy MemoryStream object uses double the memory? For example, whether the capacity of MemoryStream is 1GB in Task Manager I see that is consuming 2GB.
Module Module1
Sub Main() Dim ObjMemoryStream As System.IO.MemoryStream ObjMemoryStream = New System.IO.MemoryStream() System.Console.WriteLine("Capacity: {0}", ObjMemoryStream.Capacity.ToString()) System.Console.WriteLine("Length: {0}", ObjMemoryStream.Length.ToString()) Dim j As Integer For i As Integer = 0 To 1073741824 Step 1 If (i Mod 256) = 0 Then j = 0 Else j = i Mod 256 ObjMemoryStream.WriteByte(j) Next i System.Console.WriteLine("Length: {0}", ObjMemoryStream.Length.ToString()) Dim ObjFileStream As System.IO.FileStream ObjFileStream = System.IO.File.Create("C:\\TEST.TXT", 1024) Dim ObjBinaryWriter As System.IO.BinaryWriter ObjBinaryWriter = New System.IO.BinaryWriter(ObjFileStream, System.Text.Encoding.ASCII) ObjMemoryStream.Position = 0 ObjBinaryWriter.Write(ObjMemoryStream.ToArray()) ObjBinaryWriter.Flush() ObjBinaryWriter.Close() System.Console.ReadKey() End Sub
End Module