benchmark with yield and block