トップ «前の日記(2009-05-16) 最新 次の日記(2009-05-18)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2009-05-17

_ GC あそび

#GC::Profiler.enable
a = Array.new(1000000){'a'};
puts 'array nilled';
a = nil;
#a.clear
GC.start;
count = 0;
ObjectSpace.each_object{count += 1};
IO.popen('free'){|p| puts count, p.read}
#GC::Profiler.report

via http://redmine.ruby-lang.org/issues/show/649#note-8

i@uco ~/src/ruby-1.9.1-p0> ./miniruby_orig leak2.rb
array nilled
1628
             total       used       free     shared    buffers     cached
Mem:        516296     446072      70224          0      10128     262248
-/+ buffers/cache:     173696     342600
Swap:            0          0          0
i@uco ~/src/ruby-1.9.1-p0> ./miniruby_new leak2.rb
array nilled
1627
             total       used       free     shared    buffers     cached
Mem:        516296     446336      69960          0      10144     262248
-/+ buffers/cache:     173944     342352
Swap:            0          0          0

1000000 の方は普通に漏れてないし。 でもなんか 1 object 減ってるなぁと調べてみると 'array niled' って文字列の方だった。

そして x86-64 だとむしろ miniruby_new で 1000000 オブジェクトの方が漏れるぞ論外だ… まぁ x86-64 でだめなのはまぁありそうな話だけど。

もちょいたくさんベンチできるテストケースが欲しいなぁ。

(08:02)

_ kik code in hack the cell

even 957 命令。

a 65
ai 1
and 33
cntb 160
sumb 80
ori 8
selb 165
xor 440
nop 5

odd 882 命令。

rotqbyi 70
stqr 160
lqr 167
hbrr 1
brnz 1
rotqbii 198
lnop 28
shufb 40
stqd 71
lqd 86
shlqbii 60

で結果は、 126.628 倍。

ORIGNAL:         sum=3c927c56, 292970508 ticks
MINE:            sum=3c927c56, 2313630 ticks

うーんこれは狂ってるなー。 よくこれで優勝したなぁ。 コンパイラが吐いてるコードをちらちら見ると どう見ても最適とは言いがたい。

まぁそれより even/odd のバランスが悪いし nop も残ってるし。 even 957 命令に律速されてるとすると、 nop/lnop 削って even/odd にバランス良く振るだけで 903命令134倍とかになる。 まぁそこまで理想的にいかんとしても、 どう見ても不要な命令の削除だの、 レジスタに状態を置くだのすればもっといくわけで、 少なくとも 135 くらいは行けてたんじゃないかなぁ。

kodera さんの方は、二重ループになってて計算しずらいので、 結果から逆算すると、 1007.6 命令らしい。

120.705 倍。てか ORIGINAL の方も変わるのね。

ORIGNAL:         sum=3c927c56, 294032967 ticks
MINE:            sum=3c927c56, 2435961 ticks

僕は 1270 命令らしい。

http://shinh.skr.jp/m/?date=20090307#p08

ORIGNAL:         sum=3c927c56, 293506387 ticks
MINE:            sum=3c927c56, 2973408 ticks

(10:18)

_ colordiff

http://codereview.chromium.org/99143/diff/8054/7059

http://twitter.com/niha28/status/1818969913

この diff が欲しいですよねえという

(10:27)

_ もってけセーラーふく

http://hujita.sakura.ne.jp/log/eid225.html

何度も聞いたのに歌詞がさっぱりわからんと思ってたら、 そうとう意味不明な歌詞だったんだなぁ。

(12:32)

_ じゃあ

http://twitter.com/niha28/status/1824531243

作ってください。明日までに。はやく!

(17:49)

_ やっぱ

いいや。なんかほとんど完成してるのが何故か手元にあったのでちょっといじれば動きそうだ…

(18:09)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

2009年
5月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
1.shinh(2014-05-24 04:15) 2.pi8027(2014-05-24 04:15) 3.shinh(2014-05-24 04:15)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h