[#3524] GC target (Re: [ruby-list:10035] Re: Ruby/Gtk text widget) — "D.Kanda" <MAP2303@...>
7 messages
1998/10/13
[#3525] Re: GC target (Re: [ruby-list:10035] Re: Ruby/Gtk text widget)
— matz@... (Yukihiro Matsumoto)
1998/10/13
まつもと ゆきひろです
[#3536] Re: [ruby-list:10256] Re: for が修飾子だったら — Junichi Kurokawa <jun@...>
Reply-To: ruby-devとしました。
15 messages
1998/10/22
[#3540] Re: [ruby-list:10256] Re: for が修飾子だったら
— Junichi Kurokawa <jun@...>
1998/10/23
>>>>> "Y" == Yukihiro Matsumoto <matz@netlab.co.jp> writes:
[#3543] Re: for が修飾子だったら
— ARIMA Yasuhiro <fit0298@...>
1998/10/23
Regard to "[ruby-dev:3540] Re: [ruby-list:10256] Re: for が修飾子だったら"
[#3551] [BUG?] gsub — Shin-ichro Hara <sinara@...>
原です。
10 messages
1998/10/27
[ruby-dev:3534] Re: [ruby-list:10167] Re: Speed!
From:
EGUCHI Osamu <eguchi@...>
Date:
1998-10-19 01:24:35 UTC
List:
ruby-dev #3534
えぐち@エスアンドイー です。
>>> On Mon, 19 Oct 1998 09:25:50 +0900, WATANABE Tetsuya <tetsu@jpn.hp.com> said:
tetsu> 興味があって試してみました。
tetsu>
触発されて、15分ハッキングで ruby-1.1c6/eval.c を
一寸チューニングしました。 (ので To: ruby-dev も)
--- /tmp/ruby-1.1c6/eval.c Tue Sep 8 18:17:32 1998
+++ eval.c Mon Oct 19 10:07:01 1998
@@ -1612,6 +1612,10 @@
switch (nd_type(node)) {
case NODE_BLOCK:
+ if (!node->nd_next) {
+ node = node->nd_head;
+ goto again;
+ }
while (node) {
result = rb_eval(self, node->nd_head);
node = node->nd_next;
rb_eval() の再帰コストが高かったので
1つの stmt だけの block を再帰なしに実行するパッチです。
min = n if min > n
にも
if min > n
min = n
end
にも効くはずです。
結果は、
オリジナル
triton2.eguchi:85% time ./ruby.orig floatBasic_ruby_while_GC_upto
Elements = 100000, average = 14.499995
11.428u 0.662s 0:31.16 38.7% 449+12608k 0+0io 0pf+0w
パッチ後
triton2.eguchi:86% time ./ruby floatBasic_ruby_while_GC_upto
Elements = 100000, average = 14.499995
10.740u 0.503s 0:33.17 33.8% 444+12466k 0+0io 0pf+0w
でした。(環境: CC=egcs-1.1b CPU=Pentium Classic 200MHz w/ L2=256K)
えぐち