Advertisement
kwp

StringBuilder.Append vs. String.Concat (3)

kwp
Apr 3rd, 2015
360
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 22.40 KB | None | 0 0
  1. /*
  2.     --------------------------------------------------------------------------------
  3.     COMPARISON OF PERFORMANCE OF STRING.CONCAT AND STRINGBUILDER.APPEND FOR STRING
  4.     CONCATENATION.
  5.     --------------------------------------------------------------------------------
  6.    
  7.     Findings:
  8.  
  9.         -   String.Concat is sometimes quicker than StringBuilder.Append.
  10.         -   Results generally favor StringBuilder.
  11. */
  12.  
  13. open System
  14. open System.Collections.Generic
  15. open System.Diagnostics
  16. open System.IO
  17. open System.Text
  18. open System.Threading
  19.  
  20. type ConcatMethod =
  21.     | None = 0
  22.     | StringBuilderAppend = 1
  23.     | StringConcat = 2
  24.  
  25. type TestResult =
  26.     { ConcatMethod   : ConcatMethod
  27.       StringLength   : int
  28.       Concatenations : int
  29.       Iterations     : int
  30.       Ticks          : int64 }
  31.  
  32.     override this.ToString() =
  33.         String.Format(@"""{0}"",""{1}"",""{2}"",""{3}"",""{4}""",
  34.             this.ConcatMethod,
  35.             this.StringLength,
  36.             this.Concatenations,
  37.             this.Iterations,
  38.             this.Ticks)
  39.  
  40. [<EntryPoint>]
  41. let main argv =
  42.  
  43.     Thread.CurrentThread.Priority <- ThreadPriority.Highest
  44.  
  45.     let sw, sb, results, output, score =
  46.         new Stopwatch(),
  47.         new StringBuilder(),
  48.         List<TestResult>(),
  49.         new StringBuilder(),
  50.         new Dictionary<ConcatMethod, int>()
  51.  
  52.     let resultFile, outputFile =
  53.         @"r:\result.csv",
  54.         @"r:\output.txt"
  55.  
  56.     score.Add(ConcatMethod.None, 0)
  57.     score.Add(ConcatMethod.StringBuilderAppend, 0)
  58.     score.Add(ConcatMethod.StringConcat, 0)
  59.  
  60.     let inline (~~) s =
  61.         output.AppendLine(s) |> ignore
  62.  
  63.     let TestStringConcat count length iterations =
  64.  
  65.         let s = new String('*', length)
  66.         let a = Array.create count s
  67.  
  68.         sw.Restart()
  69.  
  70.         for n = 1 to iterations do
  71.  
  72.             String.Concat(a) |> ignore
  73.  
  74.         sw.Stop()
  75.  
  76.         results.Add(
  77.             {   ConcatMethod    =   ConcatMethod.StringConcat
  78.                 StringLength    =   length
  79.                 Concatenations  =   count
  80.                 Iterations      =   iterations
  81.                 Ticks           =   sw.ElapsedTicks })
  82.  
  83.         sw.ElapsedTicks
  84.  
  85.     let TestStringBuilder count length iterations =
  86.  
  87.         let s = new String('*', length)
  88.         let a = Array.create count s
  89.  
  90.         sw.Restart()
  91.  
  92.         for n = 1 to iterations do
  93.  
  94.             sb.Length <- 0
  95.  
  96.             for str in a do
  97.                 sb.Append(str) |> ignore
  98.  
  99.             sb.ToString() |> ignore
  100.  
  101.         sw.Stop()
  102.  
  103.         results.Add(
  104.             {   ConcatMethod    =   ConcatMethod.StringBuilderAppend
  105.                 StringLength    =   length
  106.                 Concatenations  =   count
  107.                 Iterations      =   iterations
  108.                 Ticks           =   sw.ElapsedTicks })
  109.  
  110.         sw.ElapsedTicks
  111.  
  112.     let minLen, maxLen, lenInc  =   2,  8,  2   // chars in string
  113.     let minNum, maxNum, numInc  =   2,  8,  1   // strings to concat
  114.     let minPow, maxPow, powInc  =   1,  6,  1   // iterations
  115.  
  116.     for length in [minLen..lenInc..maxLen] do
  117.  
  118.         for count in [minNum..numInc..maxNum] do
  119.  
  120.             let m = length * (count + 1)
  121.  
  122.             if m > sb.Capacity then
  123.                 sb.Capacity <- m
  124.  
  125.             for iterations in
  126.                 [
  127.                     for i in [minPow..powInc..maxPow] do
  128.                         yield Math.Pow(10., float i) |> int
  129.                 ]
  130.  
  131.                 do
  132.  
  133.                 let bticks = TestStringBuilder  count length iterations
  134.                 let cticks = TestStringConcat   count length iterations
  135.                 let dticks = Math.Abs(bticks-cticks)
  136.  
  137.                 let mutable winner = String.Empty
  138.  
  139.                 if bticks < cticks then
  140.                     winner <- "BUILDER"
  141.                     score.[ConcatMethod.StringBuilderAppend] <- score.[ConcatMethod.StringBuilderAppend] + 1
  142.  
  143.                 elif bticks > cticks then
  144.                     winner <- "CONCAT"
  145.                     score.[ConcatMethod.StringConcat] <- score.[ConcatMethod.StringConcat] + 1
  146.  
  147.                 else
  148.                     winner <- "TIED!"
  149.                     score.[ConcatMethod.None] <- score.[ConcatMethod.None] + 1
  150.  
  151.                 let current =
  152.                     String.Format(
  153.                         "Length: {0}, \
  154.                        Count: {1}, \
  155.                        Iterations: {2}, \
  156.                        Builder: {3}, \
  157.                        Concat: {4}, \
  158.                        Difference: {5}, \
  159.                        Winner: {6}",
  160.                         length,
  161.                         count,
  162.                         iterations,
  163.                         bticks,
  164.                         cticks,
  165.                         dticks,
  166.                         winner)
  167.  
  168.                 ~~ current
  169.  
  170.             ~~ String.Empty
  171.  
  172.     let bw = "Builder Win: " + score.[ConcatMethod.StringBuilderAppend].ToString()
  173.     let cw = " Concat Win: " + score.[ConcatMethod.StringConcat].ToString()
  174.     let tw = "       Tied: " + score.[ConcatMethod.None].ToString()
  175.  
  176.     output.Insert(0,
  177.         bw + Environment.NewLine +
  178.         cw + Environment.NewLine +
  179.         tw + Environment.NewLine +
  180.         Environment.NewLine) |> ignore
  181.  
  182.     ~~ bw
  183.     ~~ cw
  184.     ~~ tw
  185.  
  186.     File.WriteAllText(outputFile, output.ToString())
  187.  
  188.     sb.Length <- 0
  189.     sb.AppendLine(String.Format("\"ConcatMethod\",\"StringLength\",\"Concatenations\",\"Iterations\",\"Ticks\"")) |> ignore
  190.  
  191.     for result in results do
  192.         sb.AppendLine(result.ToString()) |> ignore
  193.  
  194.     File.WriteAllText(resultFile, sb.ToString())
  195.  
  196.     0
  197.  
  198. /*  RESULTS!
  199.  
  200.     --> Release, AnyCPU, Optimize Code
  201.     --> Run from the command line, not from within Visual Studio Hosting Process
  202.  
  203. Builder Win: 135
  204.  Concat Win: 24
  205.        Tied: 9
  206.  
  207. Length: 2, Count: 2, Iterations: 10, Builder: 16, Concat: 9, Difference: 7, Winner: CONCAT
  208. Length: 2, Count: 2, Iterations: 100, Builder: 13, Concat: 14, Difference: 1, Winner: BUILDER
  209. Length: 2, Count: 2, Iterations: 1000, Builder: 92, Concat: 127, Difference: 35, Winner: BUILDER
  210. Length: 2, Count: 2, Iterations: 10000, Builder: 906, Concat: 1370, Difference: 464, Winner: BUILDER
  211. Length: 2, Count: 2, Iterations: 100000, Builder: 8818, Concat: 10477, Difference: 1659, Winner: BUILDER
  212. Length: 2, Count: 2, Iterations: 1000000, Builder: 74462, Concat: 113628, Difference: 39166, Winner: BUILDER
  213.  
  214. Length: 2, Count: 3, Iterations: 10, Builder: 3, Concat: 3, Difference: 0, Winner: TIED!
  215. Length: 2, Count: 3, Iterations: 100, Builder: 9, Concat: 12, Difference: 3, Winner: BUILDER
  216. Length: 2, Count: 3, Iterations: 1000, Builder: 89, Concat: 122, Difference: 33, Winner: BUILDER
  217. Length: 2, Count: 3, Iterations: 10000, Builder: 903, Concat: 1218, Difference: 315, Winner: BUILDER
  218. Length: 2, Count: 3, Iterations: 100000, Builder: 9154, Concat: 12461, Difference: 3307, Winner: BUILDER
  219. Length: 2, Count: 3, Iterations: 1000000, Builder: 95296, Concat: 138524, Difference: 43228, Winner: BUILDER
  220.  
  221. Length: 2, Count: 4, Iterations: 10, Builder: 5, Concat: 3, Difference: 2, Winner: CONCAT
  222. Length: 2, Count: 4, Iterations: 100, Builder: 16, Concat: 27, Difference: 11, Winner: BUILDER
  223. Length: 2, Count: 4, Iterations: 1000, Builder: 168, Concat: 245, Difference: 77, Winner: BUILDER
  224. Length: 2, Count: 4, Iterations: 10000, Builder: 1455, Concat: 1789, Difference: 334, Winner: BUILDER
  225. Length: 2, Count: 4, Iterations: 100000, Builder: 11091, Concat: 15674, Difference: 4583, Winner: BUILDER
  226. Length: 2, Count: 4, Iterations: 1000000, Builder: 115609, Concat: 171761, Difference: 56152, Winner: BUILDER
  227.  
  228. Length: 2, Count: 5, Iterations: 10, Builder: 2, Concat: 1, Difference: 1, Winner: CONCAT
  229. Length: 2, Count: 5, Iterations: 100, Builder: 15, Concat: 17, Difference: 2, Winner: BUILDER
  230. Length: 2, Count: 5, Iterations: 1000, Builder: 134, Concat: 173, Difference: 39, Winner: BUILDER
  231. Length: 2, Count: 5, Iterations: 10000, Builder: 1340, Concat: 1821, Difference: 481, Winner: BUILDER
  232. Length: 2, Count: 5, Iterations: 100000, Builder: 13638, Concat: 17684, Difference: 4046, Winner: BUILDER
  233. Length: 2, Count: 5, Iterations: 1000000, Builder: 135560, Concat: 175093, Difference: 39533, Winner: BUILDER
  234.  
  235. Length: 2, Count: 6, Iterations: 10, Builder: 2, Concat: 2, Difference: 0, Winner: TIED!
  236. Length: 2, Count: 6, Iterations: 100, Builder: 16, Concat: 20, Difference: 4, Winner: BUILDER
  237. Length: 2, Count: 6, Iterations: 1000, Builder: 151, Concat: 199, Difference: 48, Winner: BUILDER
  238. Length: 2, Count: 6, Iterations: 10000, Builder: 1590, Concat: 1938, Difference: 348, Winner: BUILDER
  239. Length: 2, Count: 6, Iterations: 100000, Builder: 15130, Concat: 20913, Difference: 5783, Winner: BUILDER
  240. Length: 2, Count: 6, Iterations: 1000000, Builder: 152329, Concat: 201839, Difference: 49510, Winner: BUILDER
  241.  
  242. Length: 2, Count: 7, Iterations: 10, Builder: 2, Concat: 2, Difference: 0, Winner: TIED!
  243. Length: 2, Count: 7, Iterations: 100, Builder: 17, Concat: 23, Difference: 6, Winner: BUILDER
  244. Length: 2, Count: 7, Iterations: 1000, Builder: 163, Concat: 320, Difference: 157, Winner: BUILDER
  245. Length: 2, Count: 7, Iterations: 10000, Builder: 1645, Concat: 2222, Difference: 577, Winner: BUILDER
  246. Length: 2, Count: 7, Iterations: 100000, Builder: 17120, Concat: 23480, Difference: 6360, Winner: BUILDER
  247. Length: 2, Count: 7, Iterations: 1000000, Builder: 172656, Concat: 233056, Difference: 60400, Winner: BUILDER
  248.  
  249. Length: 2, Count: 8, Iterations: 10, Builder: 3, Concat: 5, Difference: 2, Winner: BUILDER
  250. Length: 2, Count: 8, Iterations: 100, Builder: 18, Concat: 25, Difference: 7, Winner: BUILDER
  251. Length: 2, Count: 8, Iterations: 1000, Builder: 181, Concat: 249, Difference: 68, Winner: BUILDER
  252. Length: 2, Count: 8, Iterations: 10000, Builder: 1885, Concat: 2758, Difference: 873, Winner: BUILDER
  253. Length: 2, Count: 8, Iterations: 100000, Builder: 19000, Concat: 26211, Difference: 7211, Winner: BUILDER
  254. Length: 2, Count: 8, Iterations: 1000000, Builder: 190201, Concat: 261162, Difference: 70961, Winner: BUILDER
  255.  
  256. Length: 4, Count: 2, Iterations: 10, Builder: 2, Concat: 1, Difference: 1, Winner: CONCAT
  257. Length: 4, Count: 2, Iterations: 100, Builder: 9, Concat: 10, Difference: 1, Winner: BUILDER
  258. Length: 4, Count: 2, Iterations: 1000, Builder: 80, Concat: 92, Difference: 12, Winner: BUILDER
  259. Length: 4, Count: 2, Iterations: 10000, Builder: 896, Concat: 1059, Difference: 163, Winner: BUILDER
  260. Length: 4, Count: 2, Iterations: 100000, Builder: 8563, Concat: 9752, Difference: 1189, Winner: BUILDER
  261. Length: 4, Count: 2, Iterations: 1000000, Builder: 82629, Concat: 95327, Difference: 12698, Winner: BUILDER
  262.  
  263. Length: 4, Count: 3, Iterations: 10, Builder: 2, Concat: 3, Difference: 1, Winner: BUILDER
  264. Length: 4, Count: 3, Iterations: 100, Builder: 10, Concat: 12, Difference: 2, Winner: BUILDER
  265. Length: 4, Count: 3, Iterations: 1000, Builder: 109, Concat: 117, Difference: 8, Winner: BUILDER
  266. Length: 4, Count: 3, Iterations: 10000, Builder: 1089, Concat: 1300, Difference: 211, Winner: BUILDER
  267. Length: 4, Count: 3, Iterations: 100000, Builder: 11143, Concat: 12957, Difference: 1814, Winner: BUILDER
  268. Length: 4, Count: 3, Iterations: 1000000, Builder: 113748, Concat: 123950, Difference: 10202, Winner: BUILDER
  269.  
  270. Length: 4, Count: 4, Iterations: 10, Builder: 3, Concat: 2, Difference: 1, Winner: CONCAT
  271. Length: 4, Count: 4, Iterations: 100, Builder: 14, Concat: 15, Difference: 1, Winner: BUILDER
  272. Length: 4, Count: 4, Iterations: 1000, Builder: 136, Concat: 149, Difference: 13, Winner: BUILDER
  273. Length: 4, Count: 4, Iterations: 10000, Builder: 1464, Concat: 1490, Difference: 26, Winner: BUILDER
  274. Length: 4, Count: 4, Iterations: 100000, Builder: 13774, Concat: 15073, Difference: 1299, Winner: BUILDER
  275. Length: 4, Count: 4, Iterations: 1000000, Builder: 136729, Concat: 149945, Difference: 13216, Winner: BUILDER
  276.  
  277. Length: 4, Count: 5, Iterations: 10, Builder: 2, Concat: 1, Difference: 1, Winner: CONCAT
  278. Length: 4, Count: 5, Iterations: 100, Builder: 16, Concat: 18, Difference: 2, Winner: BUILDER
  279. Length: 4, Count: 5, Iterations: 1000, Builder: 180, Concat: 170, Difference: 10, Winner: CONCAT
  280. Length: 4, Count: 5, Iterations: 10000, Builder: 1728, Concat: 1696, Difference: 32, Winner: CONCAT
  281. Length: 4, Count: 5, Iterations: 100000, Builder: 16131, Concat: 17884, Difference: 1753, Winner: BUILDER
  282. Length: 4, Count: 5, Iterations: 1000000, Builder: 160597, Concat: 177490, Difference: 16893, Winner: BUILDER
  283.  
  284. Length: 4, Count: 6, Iterations: 10, Builder: 3, Concat: 2, Difference: 1, Winner: CONCAT
  285. Length: 4, Count: 6, Iterations: 100, Builder: 19, Concat: 21, Difference: 2, Winner: BUILDER
  286. Length: 4, Count: 6, Iterations: 1000, Builder: 183, Concat: 201, Difference: 18, Winner: BUILDER
  287. Length: 4, Count: 6, Iterations: 10000, Builder: 1819, Concat: 1957, Difference: 138, Winner: BUILDER
  288. Length: 4, Count: 6, Iterations: 100000, Builder: 18452, Concat: 20126, Difference: 1674, Winner: BUILDER
  289. Length: 4, Count: 6, Iterations: 1000000, Builder: 183935, Concat: 206827, Difference: 22892, Winner: BUILDER
  290.  
  291. Length: 4, Count: 7, Iterations: 10, Builder: 4, Concat: 4, Difference: 0, Winner: TIED!
  292. Length: 4, Count: 7, Iterations: 100, Builder: 21, Concat: 22, Difference: 1, Winner: BUILDER
  293. Length: 4, Count: 7, Iterations: 1000, Builder: 202, Concat: 222, Difference: 20, Winner: BUILDER
  294. Length: 4, Count: 7, Iterations: 10000, Builder: 2177, Concat: 2899, Difference: 722, Winner: BUILDER
  295. Length: 4, Count: 7, Iterations: 100000, Builder: 21183, Concat: 23716, Difference: 2533, Winner: BUILDER
  296. Length: 4, Count: 7, Iterations: 1000000, Builder: 214112, Concat: 240613, Difference: 26501, Winner: BUILDER
  297.  
  298. Length: 4, Count: 8, Iterations: 10, Builder: 3, Concat: 4, Difference: 1, Winner: BUILDER
  299. Length: 4, Count: 8, Iterations: 100, Builder: 23, Concat: 26, Difference: 3, Winner: BUILDER
  300. Length: 4, Count: 8, Iterations: 1000, Builder: 231, Concat: 259, Difference: 28, Winner: BUILDER
  301. Length: 4, Count: 8, Iterations: 10000, Builder: 2362, Concat: 2712, Difference: 350, Winner: BUILDER
  302. Length: 4, Count: 8, Iterations: 100000, Builder: 24309, Concat: 27940, Difference: 3631, Winner: BUILDER
  303. Length: 4, Count: 8, Iterations: 1000000, Builder: 238219, Concat: 263220, Difference: 25001, Winner: BUILDER
  304.  
  305. Length: 6, Count: 2, Iterations: 10, Builder: 3, Concat: 2, Difference: 1, Winner: CONCAT
  306. Length: 6, Count: 2, Iterations: 100, Builder: 9, Concat: 10, Difference: 1, Winner: BUILDER
  307. Length: 6, Count: 2, Iterations: 1000, Builder: 90, Concat: 93, Difference: 3, Winner: BUILDER
  308. Length: 6, Count: 2, Iterations: 10000, Builder: 1011, Concat: 937, Difference: 74, Winner: CONCAT
  309. Length: 6, Count: 2, Iterations: 100000, Builder: 9249, Concat: 9457, Difference: 208, Winner: BUILDER
  310. Length: 6, Count: 2, Iterations: 1000000, Builder: 90435, Concat: 96055, Difference: 5620, Winner: BUILDER
  311.  
  312. Length: 6, Count: 3, Iterations: 10, Builder: 2, Concat: 1, Difference: 1, Winner: CONCAT
  313. Length: 6, Count: 3, Iterations: 100, Builder: 12, Concat: 12, Difference: 0, Winner: TIED!
  314. Length: 6, Count: 3, Iterations: 1000, Builder: 118, Concat: 119, Difference: 1, Winner: BUILDER
  315. Length: 6, Count: 3, Iterations: 10000, Builder: 1138, Concat: 1178, Difference: 40, Winner: BUILDER
  316. Length: 6, Count: 3, Iterations: 100000, Builder: 11980, Concat: 12030, Difference: 50, Winner: BUILDER
  317. Length: 6, Count: 3, Iterations: 1000000, Builder: 117333, Concat: 124298, Difference: 6965, Winner: BUILDER
  318.  
  319. Length: 6, Count: 4, Iterations: 10, Builder: 2, Concat: 1, Difference: 1, Winner: CONCAT
  320. Length: 6, Count: 4, Iterations: 100, Builder: 15, Concat: 15, Difference: 0, Winner: TIED!
  321. Length: 6, Count: 4, Iterations: 1000, Builder: 141, Concat: 152, Difference: 11, Winner: BUILDER
  322. Length: 6, Count: 4, Iterations: 10000, Builder: 1414, Concat: 1633, Difference: 219, Winner: BUILDER
  323. Length: 6, Count: 4, Iterations: 100000, Builder: 13922, Concat: 15112, Difference: 1190, Winner: BUILDER
  324. Length: 6, Count: 4, Iterations: 1000000, Builder: 141526, Concat: 158098, Difference: 16572, Winner: BUILDER
  325.  
  326. Length: 6, Count: 5, Iterations: 10, Builder: 3, Concat: 3, Difference: 0, Winner: TIED!
  327. Length: 6, Count: 5, Iterations: 100, Builder: 16, Concat: 18, Difference: 2, Winner: BUILDER
  328. Length: 6, Count: 5, Iterations: 1000, Builder: 164, Concat: 180, Difference: 16, Winner: BUILDER
  329. Length: 6, Count: 5, Iterations: 10000, Builder: 1649, Concat: 1886, Difference: 237, Winner: BUILDER
  330. Length: 6, Count: 5, Iterations: 100000, Builder: 16688, Concat: 19168, Difference: 2480, Winner: BUILDER
  331. Length: 6, Count: 5, Iterations: 1000000, Builder: 168085, Concat: 185004, Difference: 16919, Winner: BUILDER
  332.  
  333. Length: 6, Count: 6, Iterations: 10, Builder: 3, Concat: 25, Difference: 22, Winner: BUILDER
  334. Length: 6, Count: 6, Iterations: 100, Builder: 19, Concat: 20, Difference: 1, Winner: BUILDER
  335. Length: 6, Count: 6, Iterations: 1000, Builder: 180, Concat: 196, Difference: 16, Winner: BUILDER
  336. Length: 6, Count: 6, Iterations: 10000, Builder: 1901, Concat: 2108, Difference: 207, Winner: BUILDER
  337. Length: 6, Count: 6, Iterations: 100000, Builder: 19037, Concat: 21093, Difference: 2056, Winner: BUILDER
  338. Length: 6, Count: 6, Iterations: 1000000, Builder: 192310, Concat: 213582, Difference: 21272, Winner: BUILDER
  339.  
  340. Length: 6, Count: 7, Iterations: 10, Builder: 3, Concat: 2, Difference: 1, Winner: CONCAT
  341. Length: 6, Count: 7, Iterations: 100, Builder: 21, Concat: 22, Difference: 1, Winner: BUILDER
  342. Length: 6, Count: 7, Iterations: 1000, Builder: 205, Concat: 223, Difference: 18, Winner: BUILDER
  343. Length: 6, Count: 7, Iterations: 10000, Builder: 2334, Concat: 2269, Difference: 65, Winner: CONCAT
  344. Length: 6, Count: 7, Iterations: 100000, Builder: 21574, Concat: 23561, Difference: 1987, Winner: BUILDER
  345. Length: 6, Count: 7, Iterations: 1000000, Builder: 221312, Concat: 247530, Difference: 26218, Winner: BUILDER
  346.  
  347. Length: 6, Count: 8, Iterations: 10, Builder: 3, Concat: 2, Difference: 1, Winner: CONCAT
  348. Length: 6, Count: 8, Iterations: 100, Builder: 25, Concat: 26, Difference: 1, Winner: BUILDER
  349. Length: 6, Count: 8, Iterations: 1000, Builder: 238, Concat: 375, Difference: 137, Winner: BUILDER
  350. Length: 6, Count: 8, Iterations: 10000, Builder: 2376, Concat: 2734, Difference: 358, Winner: BUILDER
  351. Length: 6, Count: 8, Iterations: 100000, Builder: 24489, Concat: 27129, Difference: 2640, Winner: BUILDER
  352. Length: 6, Count: 8, Iterations: 1000000, Builder: 241470, Concat: 275563, Difference: 34093, Winner: BUILDER
  353.  
  354. Length: 8, Count: 2, Iterations: 10, Builder: 3, Concat: 1, Difference: 2, Winner: CONCAT
  355. Length: 8, Count: 2, Iterations: 100, Builder: 10, Concat: 9, Difference: 1, Winner: CONCAT
  356. Length: 8, Count: 2, Iterations: 1000, Builder: 253, Concat: 235, Difference: 18, Winner: CONCAT
  357. Length: 8, Count: 2, Iterations: 10000, Builder: 973, Concat: 984, Difference: 11, Winner: BUILDER
  358. Length: 8, Count: 2, Iterations: 100000, Builder: 9445, Concat: 9905, Difference: 460, Winner: BUILDER
  359. Length: 8, Count: 2, Iterations: 1000000, Builder: 93467, Concat: 98951, Difference: 5484, Winner: BUILDER
  360.  
  361. Length: 8, Count: 3, Iterations: 10, Builder: 2, Concat: 1, Difference: 1, Winner: CONCAT
  362. Length: 8, Count: 3, Iterations: 100, Builder: 12, Concat: 12, Difference: 0, Winner: TIED!
  363. Length: 8, Count: 3, Iterations: 1000, Builder: 116, Concat: 122, Difference: 6, Winner: BUILDER
  364. Length: 8, Count: 3, Iterations: 10000, Builder: 1313, Concat: 1523, Difference: 210, Winner: BUILDER
  365. Length: 8, Count: 3, Iterations: 100000, Builder: 12116, Concat: 12796, Difference: 680, Winner: BUILDER
  366. Length: 8, Count: 3, Iterations: 1000000, Builder: 123029, Concat: 128049, Difference: 5020, Winner: BUILDER
  367.  
  368. Length: 8, Count: 4, Iterations: 10, Builder: 3, Concat: 2, Difference: 1, Winner: CONCAT
  369. Length: 8, Count: 4, Iterations: 100, Builder: 15, Concat: 16, Difference: 1, Winner: BUILDER
  370. Length: 8, Count: 4, Iterations: 1000, Builder: 146, Concat: 156, Difference: 10, Winner: BUILDER
  371. Length: 8, Count: 4, Iterations: 10000, Builder: 1547, Concat: 1551, Difference: 4, Winner: BUILDER
  372. Length: 8, Count: 4, Iterations: 100000, Builder: 15031, Concat: 15743, Difference: 712, Winner: BUILDER
  373. Length: 8, Count: 4, Iterations: 1000000, Builder: 147404, Concat: 157996, Difference: 10592, Winner: BUILDER
  374.  
  375. Length: 8, Count: 5, Iterations: 10, Builder: 3, Concat: 1, Difference: 2, Winner: CONCAT
  376. Length: 8, Count: 5, Iterations: 100, Builder: 18, Concat: 19, Difference: 1, Winner: BUILDER
  377. Length: 8, Count: 5, Iterations: 1000, Builder: 195, Concat: 229, Difference: 34, Winner: BUILDER
  378. Length: 8, Count: 5, Iterations: 10000, Builder: 1784, Concat: 1999, Difference: 215, Winner: BUILDER
  379. Length: 8, Count: 5, Iterations: 100000, Builder: 17386, Concat: 18998, Difference: 1612, Winner: BUILDER
  380. Length: 8, Count: 5, Iterations: 1000000, Builder: 175296, Concat: 189133, Difference: 13837, Winner: BUILDER
  381.  
  382. Length: 8, Count: 6, Iterations: 10, Builder: 3, Concat: 2, Difference: 1, Winner: CONCAT
  383. Length: 8, Count: 6, Iterations: 100, Builder: 20, Concat: 22, Difference: 2, Winner: BUILDER
  384. Length: 8, Count: 6, Iterations: 1000, Builder: 198, Concat: 215, Difference: 17, Winner: BUILDER
  385. Length: 8, Count: 6, Iterations: 10000, Builder: 2087, Concat: 2183, Difference: 96, Winner: BUILDER
  386. Length: 8, Count: 6, Iterations: 100000, Builder: 20087, Concat: 21833, Difference: 1746, Winner: BUILDER
  387. Length: 8, Count: 6, Iterations: 1000000, Builder: 201399, Concat: 219362, Difference: 17963, Winner: BUILDER
  388.  
  389. Length: 8, Count: 7, Iterations: 10, Builder: 3, Concat: 3, Difference: 0, Winner: TIED!
  390. Length: 8, Count: 7, Iterations: 100, Builder: 23, Concat: 25, Difference: 2, Winner: BUILDER
  391. Length: 8, Count: 7, Iterations: 1000, Builder: 224, Concat: 245, Difference: 21, Winner: BUILDER
  392. Length: 8, Count: 7, Iterations: 10000, Builder: 2251, Concat: 2548, Difference: 297, Winner: BUILDER
  393. Length: 8, Count: 7, Iterations: 100000, Builder: 22795, Concat: 25432, Difference: 2637, Winner: BUILDER
  394. Length: 8, Count: 7, Iterations: 1000000, Builder: 229532, Concat: 249295, Difference: 19763, Winner: BUILDER
  395.  
  396. Length: 8, Count: 8, Iterations: 10, Builder: 4, Concat: 3, Difference: 1, Winner: CONCAT
  397. Length: 8, Count: 8, Iterations: 100, Builder: 26, Concat: 28, Difference: 2, Winner: BUILDER
  398. Length: 8, Count: 8, Iterations: 1000, Builder: 251, Concat: 273, Difference: 22, Winner: BUILDER
  399. Length: 8, Count: 8, Iterations: 10000, Builder: 2510, Concat: 2831, Difference: 321, Winner: BUILDER
  400. Length: 8, Count: 8, Iterations: 100000, Builder: 25220, Concat: 27881, Difference: 2661, Winner: BUILDER
  401. Length: 8, Count: 8, Iterations: 1000000, Builder: 255338, Concat: 287110, Difference: 31772, Winner: BUILDER
  402.  
  403. Builder Win: 135
  404.  Concat Win: 24
  405.        Tied: 9
  406.  
  407. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement