benchs/strings: Update string basic functions benchmarks
[nit.git] / benchmarks / strings / chain_concat.nit
index 35466f9..71c8303 100644 (file)
 # Benches measuring the performance of several concatenations on Text variants
 module chain_concat
 
+import bench_base
 import opts
 
-fun bench_flatstr(str_size: Int, nb_ccts: Int, loops: Int)
+private fun bench_string(str_size: Int, nb_ccts: Int, loops: Int)
 do
-       var lft = "a" * str_size
-
-       for i in [0..loops] do
-               var str: String = lft
-               for j in [0..nb_ccts] do
+       var lft = prepare_string(str_size)
+       for i in [0 .. loops[ do
+               var str = ""
+               for j in [0 .. nb_ccts[ do
                        str += lft
                end
        end
 end
 
-fun bench_rope(str_size: Int, nb_ccts: Int, loops: Int)
+private fun bench_buffer(str_size: Int, nb_ccts: Int, loops: Int)
 do
-       var lft = "a" * str_size
-
-       for i in [0..loops] do
-               var str: String = new RopeString.from(lft)
-               for j in [0..nb_ccts] do
-                       str += lft
-               end
-       end
-end
-
-fun bench_flatbuf(str_size: Int, nb_ccts: Int, loops: Int)
-do
-       var lft = "a" * str_size
-
-       for i in [0..loops] do
-               var buf = new FlatBuffer.from(lft)
-               for j in [0..nb_ccts] do
+       var lft = prepare_string(str_size)
+       for i in [0 .. loops[ do
+               var buf = new Buffer
+               for j in [0 .. nb_ccts[ do
                        buf.append(lft)
                end
-               buf.to_s
        end
 end
 
 var opts = new OptionContext
-var mode = new OptionEnum(["rope", "flatstr", "flatbuf"], "Mode", -1, "-m")
+var mode = new OptionEnum(["string", "buffer"], "Mode", -1, "-m")
 var nb_ccts = new OptionInt("Number of concatenations per loop", -1, "--ccts")
 var loops = new OptionInt("Number of loops to be done", -1, "--loops")
 var strlen = new OptionInt("Length of the base string", -1, "--strlen")
@@ -67,11 +53,9 @@ end
 var modval = mode.value
 
 if modval == 0 then
-       bench_rope(strlen.value, nb_ccts.value, loops.value)
+       bench_string(strlen.value, nb_ccts.value, loops.value)
 else if modval == 1 then
-       bench_flatstr(strlen.value, nb_ccts.value, loops.value)
-else if modval == 2 then
-       bench_flatbuf(strlen.value, nb_ccts.value, loops.value)
+       bench_buffer(strlen.value, nb_ccts.value, loops.value)
 else
        opts.usage
        exit -1