Bryan O'Sullivan committed 5406dea

Case mapping benchmark

Comments (0)

Files changed (2)


+import Control.Exception
+import Control.Monad
+import Data.Time.Clock
+import Data.ByteString as B
+import Data.Text.Encoding as T
+import Data.Text as T
+import System.Environment
+time act = do
+  start <- getCurrentTime
+  act
+  end <- getCurrentTime
+  let d = diffUTCTime end start
+  print d
+main = do
+  args <- getArgs
+  forM_ args $ \f -> do
+      t <- T.decodeUtf8 `fmap` B.readFile f
+      evaluate t
+      time $ evaluate (T.toUpper t)


+#!/usr/bin/env python
+import sys, time
+def timeit(f):
+    start = time.time()
+    f()
+    end = time.time()
+    print end - start
+for f in sys.argv[1:]:
+    s = open(f).read()
+    u = s.decode('utf8')
+    timeit(lambda: s.upper())
+    timeit(lambda: u.upper())
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.