perf_test('new') do
  i = 0
  while i < 100000
    b = "#{i}"
    c = "#{i} #{i}"
    d = "#{i} #{i} #{i}"
    i += 1
  end
end

perf_test('<<') do
  i = 0
  a = ""
  while i < 100000
    a << "1"; a << "2"; a << "3"; a << "4"; a << "5"
    a << "5"; a << "4"; a << "3"; a << "2"; a << "1"
    a << "1"; a << "2"; a << "3"; a << "4"; a << "5"
    a << "5"; a << "4"; a << "3"; a << "2"; a << "1"
    i += 1
  end
end

perf_test('[]') do
  i = 0
  a = "12345"
  while i < 100000
    a[0]; a[1]; a[2]; a[3]; a[4]
    a[0]; a[1]; a[2]; a[3]; a[4]
    a[0]; a[1]; a[2]; a[3]; a[4]
    a[0]; a[1]; a[2]; a[3]; a[4]
    i += 1
  end
end

perf_test('tuple swap') do
  i = 0
  a = "12345"
  while i < 100000
    a[4], a[0] = a[0], a[4]
    a[3], a[1] = a[1], a[3]
    i += 1
  end
end

perf_test('store swap') do
  i = 0
  a = "12345"
  while i < 100000
    temp = a[0]
    a[0] = a[4]
    a[4] = temp
    temp = a[1]
    a[1] = a[3]
    a[3] = temp
    i += 1
  end
end
