Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // In response to: http://trelford.com/blog/post/StringBuilder.aspx
- open System
- open System.Text
- let random, sb, n = new Random(), new StringBuilder(), 100000000
- let inline getstring length =
- new String(Array.init length (fun _ -> random.Next(97, 123) |> char))
- #time "on"
- for i = 1 to n do
- String.Concat(getstring(6), getstring(6), getstring(6), getstring(6))
- |> ignore
- #time "on"
- for i = 1 to n do
- sb.Length <- 0
- sb.Append(getstring(6)).Append(getstring(6)).Append(getstring(6)).Append(getstring(6)).ToString()
- |> ignore
- ;;
- /*
- ITERATIONS: 100
- CONCAT
- Real: 00:00:00.001, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
- val it : unit = ()
- STRINGBUILDER
- Real: 00:00:00.001, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
- val it : unit = ()
- ITERATIONS: 1000
- CONCAT
- Real: 00:00:00.001, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
- val it : unit = ()
- STRINGBUILDER
- Real: 00:00:00.001, CPU: 00:00:00.015, GC gen0: 0, gen1: 0, gen2: 0
- val it : unit = ()
- ITERATIONS: 100'000
- CONCAT
- Real: 00:00:00.078, CPU: 00:00:00.078, GC gen0: 10, gen1: 3, gen2: 1
- val it : unit = ()
- STRINGBUILDER
- Real: 00:00:00.045, CPU: 00:00:00.046, GC gen0: 9, gen1: 1, gen2: 0
- val it : unit = ()
- ITERATIONS: 1'000'000
- CONCAT
- Real: 00:00:00.430, CPU: 00:00:00.436, GC gen0: 95, gen1: 3, gen2: 1
- val it : unit = ()
- STRINGBUILDER
- Real: 00:00:00.413, CPU: 00:00:00.421, GC gen0: 95, gen1: 1, gen2: 0
- val it : unit = ()
- ITERATIONS: 100'000'000
- CONCAT
- Real: 00:00:39.005, CPU: 00:00:39.000, GC gen0: 9537, gen1: 6, gen2: 1
- val it : unit = ()
- STRINGBUILDER
- Real: 00:00:40.887, CPU: 00:00:40.841, GC gen0: 9537, gen1: 5, gen2: 0
- val it : unit = ()
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement