I tried to compare string concatenation using ropes and system's add, but seems the bench mark result is not right... Does anyone know how to use this module efficiently? (Also, I must admit that I never used rope algorithm, so I might doing wrong)
rope_test.nim import times, ropes proc strBench(sample: Rope|string) = var str = when sample is Rope: rope("") else: "" let startTime = getTime() defer: let endTime = getTime() echo endTime.toSeconds() - startTime.toSeconds() for i in 0 .. 6_000_000: str.add sample const sample = "something\n" strBench(sample.rope()) strBench(sample) # nim c -r rope_test.nim # rope version -> 3 sec # normal version -> 1 sec