I am not sure if you have measured the performance correctly. streamRead is an asynchronous operation whereas streamWrite is blocking and it also include wait for any other operations on stream (read or kernel call).
You should time it like this-
stream.finish();
//timer_start();
// operation on stream - stream.read() or strream.write()
stream.finish();
// timer_stop();