stream_profile.go
func ProfileSample(w io.Writer, r io.Reader, res time.Duration) (pw io.Writer, pr io.Reader, done func() SamplingProfile) {
	return profileSample(clock.New(), w, r, res)
}
func ProfileSample(w io.Writer, r io.Reader, res time.Duration) (pw io.Writer, pr io.Reader, done func() SamplingProfile) {
	return profileSample(clock.New(), w, r, res)
}
func ProfileSample ( w io . Writer , r io . Reader , res time . Duration ) ( pw io . Writer , pr io . Reader , done func ( ) SamplingProfile ) { return profileSample ( clock . New ( ) , w , r , res ) }
// ProfileSample will wrap a writer and reader pair and collect
// samples of where time is spent: writing or reading. The result
// is an approximation that is returned when the `done` func is
// called. The `done` func can be called *only once*.
//
// This call is not as precise as the `Profile` call, but the
// performance overhead is much reduced.
ProfileSample will wrap a writer and reader pair and collect samples of where time is spent : writing or reading . The result is an approximation that is returned when the done func is called . The done func can be called * only once * . This call is not as precise as the Profile call but the performance overhead is much reduced .