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;
