Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- open System
- open System.Text
- type Thing() = class
- member val Name = "Something" with get
- override this.ToString() = this.Name
- end
- let random, sb, n, thing =
- new Random(),
- new StringBuilder(),
- 100,
- new Thing()
- #time "on"
- for i = 1 to n do
- String.Concat(thing.ToString(), thing.ToString(), thing.ToString(), thing.ToString(), thing.ToString())
- |> ignore
- #time "on"
- for i = 1 to n do
- sb.Length <- 0
- sb.Append(thing.ToString()).Append(thing.ToString()).Append(thing.ToString()).Append(thing.ToString()).ToString()
- |> ignore
- ;;
- /*
- ITERATIONS: 100
- --> CONCAT
- Real: 00:00:00.000, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
- val it : unit = ()
- --> STRINGBUILDER
- Real: 00:00:00.000, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
- val it : unit = ()
- ITERATIONS: 1000
- --> CONCAT
- Real: 00:00:00.000, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
- val it : unit = ()
- --> STRINGBUILDER
- Real: 00:00:00.000, CPU: 00:00:00.000, GC gen0: 0, gen1: 0, gen2: 0
- val it : unit = ()
- ITERATIONS: 100'000
- --> CONCAT
- Real: 00:00:00.057, CPU: 00:00:00.062, GC gen0: 6, gen1: 3, gen2: 1
- val it : unit = ()
- --> STRINGBUILDER
- Real: 00:00:00.009, CPU: 00:00:00.015, GC gen0: 2, gen1: 0, gen2: 0
- val it : unit = ()
- ITERATIONS: 1'000'000
- --> CONCAT
- Real: 00:00:00.142, CPU: 00:00:00.156, GC gen0: 63, gen1: 3, gen2: 1
- val it : unit = ()
- --> STRINGBUILDER
- Real: 00:00:00.064, CPU: 00:00:00.062, GC gen0: 24, gen1: 0, gen2: 0
- val it : unit = ()
- ITERATIONS: 100'000'000
- --> CONCAT
- Real: 00:00:09.612, CPU: 00:00:09.609, GC gen0: 6294, gen1: 3, gen2: 1
- val it : unit = ()
- --> STRINGBUILDER - 30% FASTER
- Real: 00:00:06.321, CPU: 00:00:06.318, GC gen0: 2479, gen1: 1, gen2: 0
- val it : unit = ()
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement