[macruby-changes] [MacRuby/MacRuby] 67e47b: improve the performance of String#length with mult...

GitHub noreply at github.com
Wed Jun 6 18:30:38 PDT 2012


  Branch: refs/heads/master
  Home:   https://github.com/MacRuby/MacRuby
  Commit: 67e47b989eb8560f608b0a1a6393650259bec531
      https://github.com/MacRuby/MacRuby/commit/67e47b989eb8560f608b0a1a6393650259bec531
  Author: Watson <watson1978 at gmail.com>
  Date:   2012-06-06 (Wed, 06 Jun 2012)

  Changed paths:
    M encoding.h
    M string.c

  Log Message:
  -----------
  improve the performance of String#length with multi-byte character string

* before
          user     system      total        real
ascii       0.000000   0.000000   0.000000 (  0.002556)
utf8        2.340000   0.000000   2.340000 (  2.344955)
utf8 (dup)  3.580000   0.640000   4.220000 (  3.584336)

* after
          user     system      total        real
ascii       0.000000   0.000000   0.000000 (  0.002540)
utf8        0.010000   0.000000   0.010000 (  0.003444)
utf8 (dup)  0.600000   0.780000   1.380000 (  1.324915)

Test Script
----
# -*- coding: utf-8 -*-
require 'benchmark'

str_ascii = "abcdefghij" * 100000
str_utf8 = "あいうえお" * 100000
Benchmark.bm(10) do |x|
  x.report "ascii" do
    1000.times do
      str_ascii.length
    end
  end

  x.report "utf8" do
    1000.times do
      str_utf8.length
    end
  end

  x.report "utf8 (dup)" do
    1000.times do
      str_utf8.dup.length
    end
  end

end





More information about the macruby-changes mailing list