Block comment perf

This is 95 times faster in debug mode for large block comments.
diff --git a/Cargo.toml b/Cargo.toml
index 6559459..5dbd6ce 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -24,4 +24,5 @@
 [dev-dependencies]
 syntex_pos = "0.44.0"
 syntex_syntax = "0.44.0"
+time = "0.1.35"
 walkdir = "0.1.8"
diff --git a/src/space.rs b/src/space.rs
index 59a2b0f..3726faa 100644
--- a/src/space.rs
+++ b/src/space.rs
@@ -49,19 +49,21 @@
     }
 
     let mut depth = 0;
-    let mut chars = input.char_indices();
-    while let Some((i, _)) = chars.next() {
-        let s = &input[i..];
-        if s.starts_with("/*") {
+    let bytes = input.as_bytes();
+    let mut i = 0;
+    let upper = bytes.len() - 1;
+    while i < upper {
+        if bytes[i] == b'/' && bytes[i + 1] == b'*' {
             depth += 1;
-            chars.next(); // eat '*'
-        } else if s.starts_with("*/") {
+            i += 1; // eat '*'
+        } else if bytes[i] == b'*' && bytes[i + 1] == b'/' {
             depth -= 1;
             if depth == 0 {
                 return IResult::Done(&input[i + 2..], &input[..i + 2]);
             }
-            chars.next(); // eat '/'
+            i += 1; // eat '/'
         }
+        i += 1;
     }
     IResult::Error
 }
diff --git a/tests/test_round_trip.rs b/tests/test_round_trip.rs
index e197172..795df19 100644
--- a/tests/test_round_trip.rs
+++ b/tests/test_round_trip.rs
@@ -5,11 +5,14 @@
 extern crate syn;
 extern crate syntex_pos;
 extern crate syntex_syntax;
+extern crate time;
 extern crate walkdir;
 
 use syntex_pos::Span;
 use syntex_syntax::ast;
 use syntex_syntax::parse::{self, ParseSess, PResult};
+use time::PreciseTime;
+
 
 use std::fs::File;
 use std::io::{self, Read, Write};
@@ -37,8 +40,9 @@
         let mut content = String::new();
         file.read_to_string(&mut content).unwrap();
 
-        let krate = match syn::parse_crate(&content) {
-            Ok(krate) => krate,
+        let start = PreciseTime::now();
+        let (krate, elapsed) = match syn::parse_crate(&content) {
+            Ok(krate) => (krate, start.to(PreciseTime::now())),
             Err(msg) => {
                 errorf!("syn failed to parse\n{}\n", msg);
                 failed += 1;
@@ -60,7 +64,7 @@
         };
 
         if before == after {
-            errorf!("pass\n");
+            errorf!("pass in {}ms\n", elapsed.num_milliseconds());
         } else {
             errorf!("FAIL\nbefore: {:?}\nafter: {:?}\n", before, after);
             failed += 1;