Project

General

Profile

Actions

Bug #11095

closed

severe performance regression since r50336

Added by ngoto (Naohisa Goto) almost 9 years ago. Updated almost 9 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-04-23) [sparc64-solaris2.10]
[ruby-dev:48946]

Description

sparc64-solaris2.10 にて、r50336 以降、
Rubyビルド時の

Generating RI format into /XXXXX/.ext/rdoc...

および、bootstraptest/test_eval.rb の306行目付近の

assert_normal_exit %q{
  hash = {}
  ("aaaa".."matz").each_with_index do |s, i|
    hash[s] = i
  end
  begin
    eval "class C; @@h = #{hash.inspect}; end"
  end
}, '[ruby-core:25714]'

の2か所が、それぞれ極端に長時間かかるようになりました。
合計10時間以上かかる場合も見られました。

r50336をrevertすると、それぞれ、せいぜい分単位程度のごく短時間で終了します。

r50336の変更により、str_buf_cat の際に以前行なっていた4096バイト単位でのメモリ確保を行わなくなり、
常にぴったりのサイズでの realloc を毎回行うようになったため、
後から文字列に別の文字列を複数回追加するような処理を行う際のパフォーマンスが、
malloc(3C)の性能に完全に依存するようになり、環境によっては、
パフォーマンスが極端に落ちたのだと思います。

取り急ぎは、r50336のrevertを希望します。
どこまでをmallocに依存してどこまでをRuby独自でやるのがよいかは後で考えるとして。


Related issues 1 (0 open1 closed)

Has duplicate Ruby master - Bug #11080: [PERF] bm_so_concatenate.rb regressionClosednobu (Nobuyoshi Nakada)Actions
Actions #1

Updated by nobu (Nobuyoshi Nakada) almost 9 years ago

  • Related to Bug #11080: [PERF] bm_so_concatenate.rb regression added
Actions #2

Updated by nobu (Nobuyoshi Nakada) almost 9 years ago

  • Related to deleted (Bug #11080: [PERF] bm_so_concatenate.rb regression)
Actions #3

Updated by nobu (Nobuyoshi Nakada) almost 9 years ago

  • Has duplicate Bug #11080: [PERF] bm_so_concatenate.rb regression added

Updated by nobu (Nobuyoshi Nakada) almost 9 years ago

  • Status changed from Open to Closed
Actions #5

Updated by usa (Usaku NAKAMURA) almost 9 years ago

  • Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0