При помощи Remoting получаю открытый FileStream на сервере.
Далее открываю другой файлстрим, для записи. fs - стрим полученный с помощью remoting, fWriter - открыт для записи.
Следующий код работает катастрофически медленно:
- Код: Выделить всё
For i As Integer = 0 To fs.Length
fWriter.WriteByte(fs.ReadByte)
Next
Вопрос - почему?
Может быть тут собака зарыта?
Notes to Implementers:
The default implementation on Stream creates a new single-byte array and then calls Read. While this is formally correct, it is inefficient. Any stream with an internal buffer should override this method and provide a much more efficient version that reads the buffer directly, avoiding the extra array allocation on every call.
Создавать буфер в памяти нет желания, т.к. файлы могут быть большими.