天泣記

2007-09-03 (Mon)

#1

蒲郡

#2

LC2007 の Lightning Talk の集まりが悪いので自分でも出してみる。

タイトルは「Ruby のダイエット」

2007-09-04 (Tue)

#1

蒲郡

2007-09-05 (Wed)

#1

蒲郡

2007-09-07 (Fri)

#1

つくばに用事があり、台風を追うかのように北上する。追いつかなかったが。

2007-09-11 (Tue)

#1

「Ruby のダイエット」のプレゼンを作る。

うぅむ。Lightning Talk の分量じゃないな。どうおさめるか。

2007-09-12 (Wed)

#1

明日からの LC2007 の準備で会場に行く。

2007-09-13 (Thu)

#1

会場でふと動画中継を見ていて、totem のメニューがなんかおかしいことに気がつく。

どうやってこれを英語で報告したものか悩むが、そのあたりにいた複数の Debian Developper に相談すると添付ファイルでスクリーンショットをつけるのが良かろう、とのことなので、そうしてみる。

Debian Bug 442116

2007-09-14 (Fri)

#1

超高速で発表してだいたい 5分におさめてみた。おさまったとはいわないかもしれない。

Rubyのダイエット

2007-09-28 (Fri)

#1

REXML がどうメモリを食うか調べてみる。

RAA の all.html をとってきて tidy -asxml で XML に変換し、パーズして、massif でメモリ使用量の推移をグラフにする。

あと、最後の時点での使用メモリと、

を ObjectSpace で調べる。

グラフを見ると、文字列が大半を占めている。しかも、一時的な文字列ばかりな感じで、たくさん生成し、たくさん GC しているようだ。

ハッシュはメモリ全体からいうとずいぶんと少ないので、REXML ならハッシュが効くかも、という予想は外れなかんじ。

% massif-ruby ./ruby ../../../mem.rb ../../../tst-rexml-raa.rb
==9410== Massif, a space profiler.
==9410== Copyright (C) 2003, Nicholas Nethercote
==9410== Using LibVEX rev 1658, a library for dynamic binary translation.
==9410== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
==9410== Using valgrind-3.2.1-Debian, a dynamic binary instrumentation framework.
==9410== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
==9410== For more details, rerun with: -v
==9410== 
VmSize:   127396 kB

hash-size num-hash
14      1
15      1
6       1
40      1
8       1
7       1
16      1
21      1
18      1
3       2
4       4
2       18
1       8618
0       8628

str-len num-str
33      1
225     1
43      1
140     1
197     1
139     1
176     1
401     1
26877   2
31358   2
31353   2
31352   2
31348   2
31343   2
31338   2
31337   2
31332   2
31331   2
31314   2
31313   2
31309   2
31285   2
31281   2
31277   2
31272   2
31271   2
31267   2
31239   2
31234   2
31233   2
48      2
31229   2
31181   2
31176   2
31172   2
31171   2
31099   2
31092   2
31088   2
31083   2
31082   2
31078   2
31048   2
31041   2
31481   2
31037   2
422     2
391     2
31032   2
348     2
179     2
31031   2
164     2
76      2
31027   2
31022   2
31017   2
31016   2
31011   2
31010   2
30994   2
30993   2
30989   2
44      2
30962   2
30955   2
30951   2
30946   2
30945   2
513009  2
30941   2
30934   2
79      2
30929   2
31367   2
31397   2
31401   2
31402   2
31407   2
31411   2
31414   2
30928   2
30924   2
84      2
30881   2
30876   2
30872   2
35      2
134     2
30871   2
219     2
228     2
229     2
235     2
236     2
256     2
257     2
261     2
265     2
280     2
301     2
321     2
322     2
326     2
30800   2
367     2
384     2
393     2
394     2
399     2
400     2
405     2
411     2
415     2
416     2
421     2
425     2
435     2
465     2
469     2
470     2
475     2
479     2
483     2
551     2
552     2
556     2
561     2
609     2
613     2
614     2
619     2
625     2
629     2
630     2
635     2
639     2
645     2
671     2
675     2
676     2
693     2
694     2
699     2
700     2
705     2
710     2
714     2
715     2
720     2
724     2
733     2
763     2
767     2
768     2
773     2
777     2
784     2
855     2
856     2
860     2
865     2
913     2
917     2
918     2
923     2
951     2
955     2
956     2
961     2
965     2
972     2
999     2
1003    2
1004    2
1020    2
1021    2
1026    2
1027    2
1032    2
1035    2
1039    2
1040    2
1045    2
1049    2
1051    2
1081    2
1085    2
1086    2
1091    2
1095    2
1098    2
1165    2
1166    2
1170    2
1175    2
1223    2
1227    2
1228    2
1233    2
1261    2
1265    2
1266    2
1271    2
1275    2
1280    2
1305    2
1309    2
1310    2
1327    2
1328    2
1333    2
1334    2
1339    2
1344    2
1348    2
1349    2
1354    2
1358    2
1368    2
1398    2
1402    2
1403    2
1408    2
1412    2
1419    2
30793   2
1503    2
1504    2
1508    2
1513    2
1561    2
1565    2
1566    2
1571    2
1599    2
1603    2
1604    2
1609    2
1613    2
1620    2
1647    2
1651    2
1652    2
1668    2
1669    2
1674    2
1675    2
1680    2
1683    2
1687    2
1688    2
1693    2
1697    2
1705    2
1735    2
1739    2
1740    2
1745    2
1749    2
1756    2
1830    2
1831    2
1835    2
1840    2
1888    2
1892    2
1893    2
1898    2
1926    2
1930    2
1931    2
1936    2
1940    2
1951    2
1982    2
1986    2
1987    2
2004    2
2005    2
2010    2
2011    2
2016    2
2021    2
2025    2
2026    2
2031    2
2035    2
2046    2
2076    2
2080    2
2081    2
2086    2
2090    2
2097    2
2168    2
2169    2
2173    2
2178    2
2221    2
2225    2
2226    2
2231    2
2259    2
2263    2
2264    2
2269    2
2273    2
2284    2
2315    2
2319    2
2320    2
2336    2
2337    2
2342    2
2343    2
2348    2
2351    2
2355    2
2356    2
2361    2
2365    2
2376    2
2406    2
2410    2
2411    2
2416    2
2420    2
2426    2
2492    2
2493    2
2497    2
2502    2
2545    2
2549    2
2550    2
2555    2
2576    2
2580    2
2581    2
2586    2
2590    2
2593    2
2616    2
2620    2
2621    2
2638    2
2639    2
2644    2
2645    2
2650    2
2653    2
2657    2
2658    2
2663    2
2667    2
2673    2
2703    2
2707    2
2708    2
2713    2
2717    2
2722    2
2791    2
2792    2
2796    2
2801    2
2849    2
2853    2
2854    2
2859    2
2887    2
2891    2
2892    2
2897    2
2901    2
2906    2
2931    2
2935    2
2936    2
2952    2
2953    2
2958    2
2959    2
2964    2
2970    2
2974    2
2975    2
2980    2
2984    2
2988    2
3015    2
3019    2
3020    2
3025    2
3029    2
3036    2
3111    2
3112    2
3116    2
3121    2
3169    2
3173    2
3174    2
3179    2
3204    2
3208    2
3209    2
3214    2
3218    2
3222    2
3246    2
3250    2
3251    2
3268    2
3269    2
3274    2
3275    2
3280    2
3285    2
3289    2
3290    2
3295    2
3299    2
3308    2
3338    2
3342    2
3343    2
3348    2
3352    2
3356    2
3420    2
3421    2
3425    2
3430    2
3473    2
3477    2
3478    2
3483    2
3506    2
3510    2
3511    2
3516    2
3520    2
3524    2
3548    2
3552    2
3553    2
3569    2
3570    2
3575    2
3576    2
3581    2
3586    2
3590    2
3591    2
3596    2
3600    2
3611    2
3640    2
3644    2
3645    2
3650    2
3654    2
3657    2
3720    2
3721    2
3725    2
3730    2
3773    2
3777    2
3778    2
3783    2
3800    2
3804    2
3805    2
3810    2
3814    2
3826    2
3858    2
3862    2
3863    2
3880    2
3881    2
3886    2
3887    2
3892    2
3897    2
3901    2
3902    2
3907    2
3911    2
3915    2
3945    2
3949    2
3950    2
3955    2
3959    2
3966    2
4033    2
4034    2
4038    2
4043    2
4086    2
4090    2
4091    2
4096    2
4124    2
4128    2
4129    2
4134    2
4138    2
4151    2
4184    2
4188    2
4189    2
4205    2
4206    2
4211    2
4212    2
4217    2
4222    2
4226    2
4227    2
4232    2
4236    2
4247    2
4277    2
4281    2
4282    2
4287    2
4291    2
4294    2
4357    2
4358    2
4362    2
4367    2
4410    2
4414    2
4415    2
4420    2
4448    2
4452    2
4453    2
4458    2
4462    2
4472    2
4502    2
4506    2
4507    2
4524    2
4525    2
4530    2
4531    2
4536    2
4541    2
4545    2
4546    2
4551    2
4555    2
4566    2
4596    2
4600    2
4601    2
4606    2
4610    2
4617    2
4685    2
4686    2
4690    2
4695    2
4738    2
4742    2
4743    2
4748    2
4776    2
4780    2
4781    2
4786    2
4790    2
4795    2
4820    2
4824    2
4825    2
4841    2
4842    2
4847    2
4848    2
4853    2
4858    2
4862    2
4863    2
4868    2
4872    2
4883    2
4912    2
4916    2
4917    2
4922    2
4926    2
4933    2
5002    2
5003    2
5007    2
5012    2
5055    2
5059    2
5060    2
5065    2
5088    2
5092    2
5093    2
5098    2
5102    2
5106    2
5130    2
5134    2
5135    2
5152    2
5153    2
5158    2
5159    2
5164    2
5169    2
5173    2
5174    2
5179    2
5183    2
5194    2
5224    2
5228    2
5229    2
5234    2
5238    2
5245    2
5312    2
5313    2
5317    2
5322    2
5365    2
5369    2
5370    2
5375    2
5403    2
5407    2
5408    2
5413    2
5417    2
5421    2
5445    2
5449    2
5450    2
5466    2
5467    2
5472    2
5473    2
5478    2
5483    2
5487    2
5488    2
5493    2
5497    2
5508    2
5537    2
5541    2
5542    2
5547    2
5551    2
5554    2
5617    2
5618    2
5622    2
5627    2
5670    2
5674    2
5675    2
5680    2
5699    2
5703    2
5704    2
5709    2
5713    2
5722    2
5751    2
5755    2
5756    2
5773    2
5774    2
5779    2
5780    2
5785    2
5790    2
5794    2
5795    2
5800    2
5804    2
5815    2
5844    2
5848    2
5849    2
5854    2
5858    2
5861    2
5924    2
5925    2
5929    2
5934    2
5977    2
5981    2
5982    2
5987    2
5993    2
5997    2
5998    2
6003    2
6007    2
6013    2
6039    2
6043    2
6044    2
6060    2
6061    2
6066    2
6067    2
6072    2
6075    2
6079    2
6080    2
6085    2
6089    2
6100    2
6130    2
6134    2
6135    2
6140    2
6144    2
6148    2
6212    2
6213    2
6217    2
6222    2
6265    2
6269    2
6270    2
6275    2
6303    2
6307    2
6308    2
6313    2
6317    2
6329    2
6361    2
6365    2
6366    2
6383    2
6384    2
6389    2
6390    2
6395    2
6398    2
6402    2
6403    2
6408    2
6412    2
6417    2
6447    2
6451    2
6452    2
6457    2
6461    2
6465    2
6529    2
6530    2
6534    2
6539    2
6582    2
6586    2
6587    2
6592    2
6620    2
6624    2
6625    2
6630    2
6634    2
6640    2
6666    2
6670    2
6671    2
6687    2
6688    2
6693    2
6694    2
6699    2
6704    2
6708    2
6709    2
6714    2
6718    2
6729    2
6759    2
6763    2
6764    2
6769    2
6773    2
6780    2
6855    2
6856    2
6860    2
6865    2
6913    2
6917    2
6918    2
6923    2
6951    2
6955    2
6956    2
6961    2
6965    2
6974    2
7003    2
7007    2
7008    2
7025    2
7026    2
7031    2
7032    2
7037    2
7045    2
7049    2
7050    2
7055    2
7059    2
7066    2
7094    2
7098    2
7099    2
7104    2
7108    2
7115    2
7186    2
7187    2
7191    2
7196    2
7239    2
7243    2
7244    2
7249    2
7252    2
7256    2
7257    2
7262    2
7266    2
7269    2
7292    2
7296    2
7297    2
7313    2
7314    2
7319    2
7320    2
7325    2
7330    2
7334    2
7335    2
7340    2
7344    2
7355    2
7384    2
7388    2
7389    2
7394    2
7398    2
7403    2
7468    2
7469    2
7473    2
7478    2
7521    2
7525    2
7526    2
7531    2
7540    2
7544    2
7545    2
7550    2
7554    2
7563    2
7592    2
7596    2
7597    2
7614    2
7615    2
7620    2
7621    2
7626    2
7629    2
7633    2
7634    2
7639    2
7643    2
7651    2
7679    2
7683    2
7684    2
7689    2
7693    2
7696    2
7759    2
7760    2
7764    2
7769    2
7812    2
7816    2
7817    2
7822    2
7850    2
7854    2
7855    2
7860    2
7864    2
7878    2
7912    2
7916    2
7917    2
7933    2
7934    2
7939    2
7940    2
7945    2
7950    2
7954    2
7955    2
7960    2
7964    2
7975    2
8004    2
8008    2
8009    2
8014    2
8018    2
8021    2
8084    2
8085    2
8089    2
8094    2
8137    2
8141    2
8142    2
8147    2
8167    2
8171    2
8172    2
8177    2
8181    2
8188    2
8215    2
8219    2
8220    2
8237    2
8238    2
8243    2
8244    2
8249    2
8254    2
8258    2
8259    2
8264    2
8268    2
8279    2
8309    2
8313    2
8314    2
8319    2
8323    2
8330    2
8402    2
8403    2
8407    2
8412    2
8460    2
8464    2
8465    2
8470    2
8524    2
8528    2
8529    2
8534    2
8538    2
8549    2
8580    2
8584    2
8585    2
8601    2
8602    2
8607    2
8608    2
8613    2
8618    2
8622    2
8623    2
8628    2
8632    2
8643    2
8672    2
8676    2
8677    2
8682    2
8686    2
8689    2
8752    2
8753    2
8757    2
8762    2
8805    2
8809    2
8810    2
8815    2
8824    2
8828    2
8829    2
8834    2
8838    2
8847    2
8876    2
8880    2
8881    2
8898    2
8899    2
8904    2
8905    2
8910    2
8914    2
8918    2
8919    2
8924    2
8928    2
8939    2
8969    2
8973    2
8974    2
8979    2
8983    2
8990    2
30789   2
9071    2
9072    2
9076    2
9081    2
9129    2
9133    2
9134    2
9139    2
9167    2
9171    2
9172    2
9177    2
9181    2
9190    2
9219    2
9223    2
9224    2
9240    2
9241    2
9246    2
9247    2
9252    2
9257    2
9261    2
9262    2
9267    2
9271    2
9282    2
9312    2
9316    2
9317    2
9322    2
9326    2
9329    2
9392    2
9393    2
9397    2
9402    2
9445    2
9449    2
9450    2
9455    2
9466    2
9470    2
9471    2
9476    2
9480    2
9491    2
9522    2
9526    2
9527    2
9544    2
9545    2
9550    2
9551    2
9556    2
9559    2
9563    2
9564    2
9569    2
9573    2
9584    2
9614    2
9618    2
9619    2
9624    2
9628    2
9635    2
9716    2
9717    2
9721    2
9726    2
9774    2
9778    2
9779    2
9784    2
9812    2
9816    2
9817    2
9822    2
9826    2
9832    2
9858    2
9862    2
9863    2
9879    2
9880    2
9885    2
9886    2
9891    2
9896    2
9900    2
9901    2
9906    2
9910    2
9915    2
9945    2
9949    2
9950    2
9955    2
9959    2
9962    2
10025   2
10026   2
10030   2
10035   2
10078   2
10082   2
10083   2
10088   2
10116   2
10120   2
10121   2
10126   2
10130   2
10139   2
10168   2
10172   2
10173   2
10190   2
10191   2
10196   2
10197   2
10202   2
10207   2
10211   2
10212   2
10217   2
10221   2
10232   2
10261   2
10265   2
10266   2
10271   2
10275   2
10278   2
10341   2
10342   2
10346   2
10351   2
10394   2
10398   2
10399   2
10404   2
10428   2
10432   2
10433   2
10438   2
10442   2
10452   2
10482   2
10486   2
10487   2
10503   2
10504   2
10509   2
10510   2
10515   2
10521   2
10525   2
10526   2
10531   2
10535   2
10546   2
10576   2
10580   2
10581   2
10586   2
10590   2
10593   2
10656   2
10657   2
10661   2
10666   2
10709   2
10713   2
10714   2
10719   2
10747   2
10751   2
10752   2
10757   2
10761   2
10768   2
10795   2
10799   2
10800   2
10817   2
10818   2
10823   2
10824   2
10829   2
10834   2
10838   2
10839   2
10844   2
10848   2
10859   2
10889   2
10893   2
10894   2
10899   2
10903   2
10906   2
10969   2
10970   2
10974   2
10979   2
11022   2
11026   2
11027   2
11032   2
11066   2
11070   2
11071   2
11076   2
11080   2
11091   2
11122   2
11126   2
11127   2
11143   2
11144   2
11149   2
11150   2
11155   2
11160   2
11164   2
11165   2
11170   2
11174   2
11185   2
11215   2
11219   2
11220   2
11225   2
11229   2
11232   2
11295   2
11296   2
11300   2
11305   2
11348   2
11352   2
11353   2
11358   2
11386   2
11390   2
11391   2
11396   2
11400   2
11414   2
11448   2
11452   2
11453   2
11470   2
11471   2
11476   2
11477   2
11482   2
11487   2
11491   2
11492   2
11497   2
11501   2
11506   2
11536   2
11540   2
11541   2
11546   2
11550   2
11554   2
11622   2
11623   2
11627   2
11632   2
11680   2
11684   2
11685   2
11690   2
11714   2
11718   2
11719   2
11724   2
11728   2
11734   2
11760   2
11764   2
11765   2
11781   2
11782   2
11787   2
11788   2
11793   2
11798   2
11802   2
11803   2
11808   2
11812   2
11821   2
11851   2
11855   2
11856   2
11861   2
11865   2
11872   2
30784   2
11949   2
11950   2
11954   2
11959   2
12007   2
12011   2
12012   2
12017   2
12045   2
12049   2
12050   2
12055   2
12059   2
12068   2
12097   2
12101   2
12102   2
12119   2
12120   2
12125   2
12126   2
12131   2
12136   2
12140   2
12141   2
12146   2
12150   2
12158   2
12188   2
12192   2
12193   2
12198   2
12202   2
12205   2
12272   2
12273   2
12277   2
12282   2
12330   2
12334   2
12335   2
12340   2
12368   2
12372   2
12373   2
12378   2
12382   2
12392   2
12422   2
12426   2
12427   2
12443   2
12444   2
12449   2
12450   2
12455   2
12458   2
12462   2
12463   2
12468   2
12472   2
12482   2
12512   2
12516   2
12517   2
12522   2
12526   2
12530   2
12594   2
12595   2
12599   2
12604   2
12647   2
12651   2
12652   2
12657   2
12685   2
12689   2
12690   2
12695   2
12699   2
12709   2
12739   2
12743   2
12744   2
12761   2
12762   2
12767   2
12768   2
12773   2
12776   2
12780   2
12781   2
12786   2
12790   2
12798   2
12826   2
12830   2
12831   2
12836   2
12840   2
12847   2
12921   2
12922   2
12926   2
12931   2
12979   2
12983   2
12984   2
12989   2
13010   2
13014   2
13015   2
13020   2
13024   2
13029   2
13054   2
13058   2
13059   2
13075   2
13076   2
13081   2
13082   2
13087   2
13095   2
13099   2
13100   2
13105   2
13109   2
13120   2
13149   2
13153   2
13154   2
13159   2
13163   2
13166   2
13229   2
13230   2
13234   2
13239   2
13282   2
13286   2
13287   2
13292   2
13312   2
13316   2
13317   2
13322   2
13326   2
13330   2
13354   2
13358   2
13359   2
13376   2
13377   2
13382   2
13383   2
13388   2
13391   2
13395   2
13396   2
13401   2
13405   2
13416   2
13445   2
13449   2
13450   2
13455   2
13459   2
13462   2
13525   2
13526   2
13530   2
13535   2
13578   2
13582   2
13583   2
13588   2
13596   2
13600   2
13601   2
13606   2
13610   2
13618   2
13646   2
13650   2
13651   2
13667   2
13668   2
13673   2
13674   2
13679   2
13684   2
13688   2
13689   2
13694   2
13698   2
13709   2
13738   2
13742   2
13743   2
13748   2
13752   2
13759   2
13834   2
13835   2
13839   2
13844   2
13892   2
13896   2
13897   2
13902   2
13930   2
13934   2
13935   2
13940   2
13944   2
13949   2
13974   2
13978   2
13979   2
13996   2
13997   2
14002   2
14003   2
14008   2
14013   2
14017   2
14018   2
14023   2
14027   2
14038   2
14068   2
14072   2
14073   2
14078   2
14082   2
14089   2
14157   2
14158   2
14162   2
14167   2
14210   2
14214   2
14215   2
14220   2
14248   2
14252   2
14253   2
14258   2
14262   2
14271   2
14300   2
14304   2
14305   2
14321   2
14322   2
14327   2
14328   2
14333   2
14338   2
14342   2
14343   2
14348   2
14352   2
14363   2
14393   2
14397   2
14398   2
14403   2
14407   2
14410   2
14473   2
14474   2
14478   2
14483   2
14526   2
14530   2
14531   2
14536   2
14564   2
14568   2
14569   2
14574   2
14578   2
14584   2
14610   2
14614   2
14615   2
14632   2
14633   2
14638   2
14639   2
14644   2
14650   2
14654   2
14655   2
14660   2
14664   2
14668   2
14698   2
14702   2
14703   2
14708   2
14712   2
14715   2
14782   2
14783   2
14787   2
14792   2
14840   2
14844   2
14845   2
14850   2
14856   2
14860   2
14861   2
14866   2
14870   2
14876   2
14902   2
14906   2
14907   2
14923   2
14924   2
14929   2
14930   2
14935   2
14938   2
14942   2
14943   2
14948   2
14952   2
14963   2
14991   2
14995   2
14996   2
15001   2
15005   2
15009   2
15077   2
15078   2
15082   2
15087   2
15135   2
15139   2
15140   2
15145   2
15166   2
15170   2
15171   2
15176   2
15180   2
15184   2
15208   2
15212   2
15213   2
15230   2
15231   2
15236   2
15237   2
15242   2
15245   2
15249   2
15250   2
15255   2
15259   2
15264   2
15292   2
15296   2
15297   2
15302   2
15306   2
15309   2
15376   2
15377   2
15381   2
15386   2
15434   2
15438   2
15439   2
15444   2
15470   2
15474   2
15475   2
15480   2
15484   2
15488   2
15512   2
15516   2
15517   2
15533   2
15534   2
15539   2
15540   2
15545   2
15549   2
15553   2
15554   2
15559   2
15563   2
15574   2
15604   2
15608   2
15609   2
15614   2
15618   2
15625   2
15693   2
15694   2
15698   2
15703   2
15746   2
15750   2
15751   2
15756   2
15784   2
15788   2
15789   2
15794   2
15798   2
15803   2
15828   2
15832   2
15833   2
15850   2
15851   2
15856   2
15857   2
15862   2
15866   2
15870   2
15871   2
15876   2
15880   2
15887   2
15917   2
15921   2
15922   2
15927   2
15931   2
15938   2
16006   2
16007   2
16011   2
16016   2
16059   2
16063   2
16064   2
16069   2
16097   2
16101   2
16102   2
16107   2
16111   2
16121   2
16151   2
16155   2
16156   2
16172   2
16173   2
16178   2
16179   2
16184   2
16188   2
16192   2
16193   2
16198   2
16202   2
16213   2
16242   2
16246   2
16247   2
16252   2
16256   2
16263   2
16334   2
16335   2
16339   2
16344   2
16387   2
16391   2
16392   2
16397   2
16433   2
16437   2
16438   2
16443   2
16447   2
16454   2
16481   2
16485   2
16486   2
16503   2
16504   2
16509   2
16510   2
16515   2
16520   2
16524   2
16525   2
16530   2
16534   2
16545   2
16574   2
16578   2
16579   2
16584   2
16588   2
16595   2
16676   2
16677   2
16681   2
16686   2
16734   2
16738   2
16739   2
16744   2
16755   2
16759   2
16760   2
16765   2
16769   2
16780   2
16811   2
16815   2
16816   2
16832   2
16833   2
16838   2
16839   2
16844   2
16847   2
16851   2
16852   2
16857   2
16861   2
16872   2
16902   2
16906   2
16907   2
16912   2
16916   2
16921   2
16986   2
16987   2
16991   2
16996   2
17039   2
17043   2
17044   2
17049   2
17077   2
17081   2
17082   2
17087   2
17091   2
17101   2
17131   2
17135   2
17136   2
17153   2
17154   2
17159   2
17160   2
17165   2
17170   2
17174   2
17175   2
17180   2
17184   2
17195   2
17224   2
17228   2
17229   2
17234   2
17238   2
17243   2
17308   2
17309   2
17313   2
17318   2
17361   2
17365   2
17366   2
17371   2
17381   2
17385   2
17386   2
17391   2
17395   2
17405   2
17435   2
17439   2
17440   2
17456   2
17457   2
17462   2
17463   2
17468   2
17473   2
17477   2
17478   2
17483   2
17487   2
17498   2
17527   2
17531   2
17532   2
17537   2
17541   2
17548   2
17619   2
17620   2
17624   2
17629   2
17672   2
17676   2
17677   2
17682   2
17710   2
17714   2
17715   2
17720   2
17724   2
17730   2
17756   2
17760   2
17761   2
17778   2
17779   2
17784   2
17785   2
17790   2
17795   2
17799   2
17800   2
17805   2
17809   2
17820   2
17850   2
17854   2
17855   2
17860   2
17864   2
17871   2
17938   2
17939   2
17943   2
17948   2
17991   2
17995   2
17996   2
18001   2
18029   2
18033   2
18034   2
18039   2
18043   2
18053   2
18083   2
18087   2
18088   2
18104   2
18105   2
18110   2
18111   2
18116   2
18121   2
18125   2
18126   2
18131   2
18135   2
18146   2
18176   2
18180   2
18181   2
18186   2
18190   2
18195   2
18260   2
18261   2
18265   2
18270   2
18313   2
18317   2
18318   2
18323   2
18351   2
18355   2
18356   2
18361   2
18365   2
18376   2
18407   2
18411   2
18412   2
18429   2
18430   2
18435   2
18436   2
18441   2
18449   2
18453   2
18454   2
18459   2
18463   2
18471   2
18499   2
18503   2
18504   2
18509   2
18513   2
18520   2
18590   2
18591   2
18595   2
18600   2
18643   2
18647   2
18648   2
18653   2
18670   2
18674   2
18675   2
18680   2
18684   2
18695   2
18726   2
18730   2
18731   2
18747   2
18748   2
18753   2
18754   2
18759   2
18764   2
18768   2
18769   2
18774   2
18778   2
18789   2
18819   2
18823   2
18824   2
18829   2
18833   2
18840   2
18920   2
18921   2
18925   2
18930   2
18973   2
18977   2
18978   2
18983   2
19011   2
19015   2
19016   2
19021   2
19025   2
19040   2
19075   2
19079   2
19080   2
19097   2
19098   2
19103   2
19104   2
19109   2
19112   2
19116   2
19117   2
19122   2
19126   2
19137   2
19166   2
19170   2
19171   2
19176   2
19180   2
19185   2
19250   2
19251   2
19255   2
19260   2
19303   2
19307   2
19308   2
19313   2
19324   2
19328   2
19329   2
19334   2
19338   2
19349   2
19380   2
19384   2
19385   2
19401   2
19402   2
19407   2
19408   2
19413   2
19418   2
19422   2
19423   2
19428   2
19432   2
19443   2
19472   2
19476   2
19477   2
19482   2
19486   2
19491   2
19556   2
19557   2
19561   2
19566   2
19609   2
19613   2
19614   2
19619   2
19647   2
19651   2
19652   2
19657   2
19661   2
19669   2
19697   2
19701   2
19702   2
19719   2
19720   2
19725   2
19726   2
19731   2
19736   2
19740   2
19741   2
19746   2
19750   2
19761   2
19791   2
19795   2
19796   2
19801   2
19805   2
19811   2
19877   2
19878   2
19882   2
19887   2
19930   2
19934   2
19935   2
19940   2
19968   2
19972   2
19973   2
19978   2
19982   2
19994   2
20026   2
20030   2
20031   2
20047   2
20048   2
20053   2
20054   2
20059   2
20062   2
20066   2
20067   2
20072   2
20076   2
20087   2
20116   2
20120   2
20121   2
20126   2
20130   2
20136   2
20202   2
20203   2
20207   2
20212   2
20255   2
20259   2
20260   2
20265   2
20283   2
20287   2
20288   2
20293   2
20297   2
20308   2
20339   2
20343   2
20344   2
20361   2
20362   2
20367   2
20368   2
20373   2
20378   2
20382   2
20383   2
20388   2
20392   2
20403   2
20432   2
20436   2
20437   2
20442   2
20446   2
20451   2
20516   2
20517   2
20521   2
20526   2
20569   2
20573   2
20574   2
20579   2
20592   2
20596   2
20597   2
20602   2
20606   2
20619   2
20652   2
20656   2
20657   2
31482   2
31486   2
20673   2
20674   2
20679   2
20680   2
20685   2
20690   2
20694   2
20695   2
20700   2
20704   2
20715   2
20745   2
20749   2
20750   2
20755   2
20759   2
20764   2
20833   2
20834   2
20838   2
20843   2
20891   2
20895   2
20896   2
20901   2
20929   2
20933   2
20934   2
20939   2
20943   2
20956   2
20989   2
20993   2
20994   2
21011   2
21012   2
21017   2
21018   2
21023   2
21028   2
21032   2
21033   2
21038   2
21042   2
21053   2
21082   2
21086   2
21087   2
21092   2
21096   2
21101   2
21166   2
21167   2
21171   2
21176   2
21219   2
21223   2
21224   2
21229   2
21257   2
21261   2
21262   2
21267   2
21271   2
21283   2
21315   2
21319   2
21320   2
21336   2
21337   2
21342   2
21343   2
21348   2
21353   2
21357   2
21358   2
21363   2
21367   2
21378   2
21407   2
21411   2
21412   2
21417   2
21421   2
21426   2
21491   2
21492   2
21496   2
21501   2
21544   2
21548   2
21549   2
21554   2
21582   2
21586   2
21587   2
21592   2
21596   2
21611   2
21646   2
21650   2
21651   2
21668   2
21669   2
21674   2
21675   2
21680   2
21685   2
21689   2
21690   2
21695   2
21699   2
21710   2
21740   2
21744   2
21745   2
21750   2
21754   2
21759   2
21824   2
21825   2
21829   2
21834   2
21877   2
21881   2
21882   2
21887   2
21915   2
21919   2
21920   2
21925   2
21929   2
21940   2
21971   2
21975   2
21976   2
21992   2
21993   2
21998   2
21999   2
22004   2
22009   2
22013   2
22014   2
22019   2
22023   2
22034   2
22064   2
22068   2
22069   2
22074   2
22078   2
22083   2
22148   2
22149   2
22153   2
22158   2
22201   2
22205   2
22206   2
22211   2
22239   2
22243   2
22244   2
22249   2
22253   2
22267   2
22301   2
22305   2
22306   2
22323   2
22324   2
22329   2
22330   2
22335   2
22340   2
22344   2
22345   2
22350   2
22354   2
22365   2
22395   2
22399   2
22400   2
22405   2
22409   2
22414   2
22479   2
22480   2
22484   2
22489   2
22532   2
22536   2
22537   2
22542   2
22569   2
22573   2
22574   2
22579   2
22583   2
22596   2
22629   2
22633   2
22634   2
22650   2
22651   2
22656   2
22657   2
22662   2
22667   2
22671   2
22672   2
22677   2
22681   2
22692   2
22722   2
22726   2
22727   2
22732   2
22736   2
22741   2
22806   2
22807   2
22811   2
22816   2
22859   2
22863   2
22864   2
22869   2
22895   2
22899   2
22900   2
22905   2
22909   2
22924   2
22959   2
22963   2
22964   2
22981   2
22982   2
22987   2
22988   2
22993   2
22998   2
23002   2
23003   2
23008   2
23012   2
23023   2
23053   2
23057   2
23058   2
23063   2
23067   2
23072   2
23137   2
23138   2
23142   2
23147   2
23190   2
23194   2
23195   2
23200   2
23228   2
23232   2
23233   2
23238   2
23242   2
23252   2
23282   2
23286   2
23287   2
23303   2
23304   2
23309   2
23310   2
23315   2
23320   2
23324   2
23325   2
23330   2
23334   2
23345   2
23375   2
23379   2
23380   2
23385   2
23389   2
23394   2
23459   2
23460   2
23464   2
23469   2
23512   2
23516   2
23517   2
23522   2
23550   2
23554   2
23555   2
23560   2
23564   2
23577   2
23610   2
23614   2
23615   2
23632   2
23633   2
23638   2
23639   2
23644   2
23649   2
23653   2
23654   2
23659   2
23663   2
23674   2
23703   2
23707   2
23708   2
23713   2
23717   2
23722   2
23787   2
23788   2
23792   2
23797   2
23840   2
23844   2
23845   2
23850   2
23878   2
23882   2
23883   2
23888   2
23892   2
23902   2
23932   2
23936   2
23937   2
23953   2
23954   2
23959   2
23960   2
23965   2
23970   2
23974   2
23975   2
23980   2
23984   2
23995   2
24025   2
24029   2
24030   2
24035   2
24039   2
24044   2
24109   2
24110   2
24114   2
24119   2
24162   2
24166   2
24167   2
24172   2
24200   2
24204   2
24205   2
24210   2
24214   2
24225   2
24256   2
24260   2
24261   2
24278   2
24279   2
24284   2
24285   2
24290   2
24295   2
24299   2
24300   2
24305   2
24309   2
24320   2
24350   2
24354   2
24355   2
24360   2
24364   2
24369   2
24434   2
24435   2
24439   2
24444   2
24487   2
24491   2
24492   2
24497   2
24525   2
24529   2
24530   2
24535   2
24539   2
24550   2
24581   2
24585   2
24586   2
24602   2
24603   2
24608   2
24609   2
24614   2
24619   2
24623   2
24624   2
24629   2
24633   2
24644   2
24674   2
24678   2
24679   2
24684   2
24688   2
24693   2
24758   2
24759   2
24763   2
24768   2
24811   2
24815   2
24816   2
24821   2
24849   2
24853   2
24854   2
24859   2
24863   2
24873   2
24903   2
24907   2
24908   2
24925   2
24926   2
24931   2
24932   2
24937   2
24942   2
24946   2
24947   2
24952   2
24956   2
24967   2
24997   2
25001   2
25002   2
25007   2
25011   2
25016   2
25081   2
25082   2
25086   2
25091   2
25134   2
25138   2
25139   2
25144   2
25172   2
25176   2
25177   2
25182   2
25186   2
25195   2
25224   2
25228   2
25229   2
25245   2
25246   2
25251   2
25252   2
25257   2
25265   2
25269   2
25270   2
25275   2
25279   2
25287   2
25315   2
25319   2
25320   2
25325   2
25329   2
25332   2
25399   2
25400   2
25404   2
25409   2
25457   2
25461   2
25462   2
25467   2
25481   2
25485   2
25486   2
25491   2
25495   2
25508   2
25541   2
25545   2
25546   2
25563   2
25564   2
25569   2
25570   2
25575   2
25580   2
25584   2
25585   2
25590   2
25594   2
25605   2
25635   2
25639   2
25640   2
25645   2
25649   2
25656   2
25723   2
25724   2
25728   2
25733   2
25776   2
25780   2
25781   2
25786   2
25814   2
25818   2
25819   2
25824   2
25828   2
25843   2
25878   2
25882   2
25883   2
25899   2
25900   2
25905   2
25906   2
25911   2
25916   2
25920   2
25921   2
25926   2
25930   2
25941   2
25971   2
25975   2
25976   2
25981   2
25985   2
25990   2
26055   2
26056   2
26060   2
26065   2
26108   2
26112   2
26113   2
26118   2
26146   2
26150   2
26151   2
26156   2
26160   2
26170   2
26200   2
26204   2
26205   2
26222   2
26223   2
26228   2
26229   2
26234   2
26239   2
26243   2
26244   2
26249   2
26253   2
26264   2
26294   2
26298   2
26299   2
26304   2
26308   2
26313   2
26378   2
26379   2
26383   2
26388   2
26431   2
26435   2
26436   2
26441   2
26469   2
26473   2
26474   2
26479   2
26483   2
26497   2
26531   2
26535   2
26536   2
26552   2
26553   2
26558   2
26559   2
26564   2
26569   2
26573   2
26574   2
26579   2
26583   2
26594   2
26624   2
26628   2
26629   2
26634   2
26638   2
26643   2
26708   2
26709   2
26713   2
26718   2
26761   2
26765   2
26766   2
26771   2
26799   2
26803   2
26804   2
26809   2
26813   2
26824   2
26855   2
26859   2
26860   2
31362   2
26878   2
26883   2
26884   2
26889   2
26894   2
26898   2
26899   2
26904   2
26908   2
26919   2
26949   2
26953   2
26954   2
26959   2
26963   2
26968   2
27033   2
27034   2
27038   2
27043   2
27086   2
27090   2
27091   2
27096   2
27124   2
27128   2
27129   2
27134   2
27138   2
27147   2
27176   2
27180   2
27181   2
27197   2
27198   2
27203   2
27204   2
27209   2
27214   2
27218   2
27219   2
27224   2
27228   2
27239   2
27269   2
27273   2
27274   2
27279   2
27283   2
27288   2
27353   2
27354   2
27358   2
27363   2
27406   2
27410   2
27411   2
27416   2
27444   2
27448   2
27449   2
27454   2
27458   2
30783   2
27496   2
27500   2
27501   2
27518   2
27519   2
27524   2
27525   2
27530   2
27535   2
27539   2
27540   2
27545   2
27549   2
27560   2
27590   2
27594   2
27595   2
27600   2
27604   2
27609   2
27674   2
27675   2
27679   2
27684   2
27727   2
27731   2
27732   2
27737   2
27765   2
27769   2
27770   2
27775   2
27779   2
27794   2
27829   2
27833   2
27834   2
27850   2
27851   2
27856   2
27857   2
27862   2
27867   2
27871   2
27872   2
27877   2
27881   2
27892   2
27922   2
27926   2
27927   2
27932   2
27936   2
27941   2
28006   2
28007   2
28011   2
28016   2
28059   2
28063   2
28064   2
28069   2
28097   2
28101   2
28102   2
28107   2
28111   2
28125   2
28159   2
28163   2
28164   2
28181   2
28182   2
28187   2
28188   2
28193   2
28198   2
28202   2
28203   2
28208   2
28212   2
28223   2
28253   2
28257   2
28258   2
28263   2
28267   2
28272   2
28337   2
28338   2
28342   2
28347   2
28390   2
28394   2
28395   2
28400   2
28428   2
28432   2
28433   2
28438   2
28442   2
28454   2
28486   2
28490   2
28491   2
28507   2
28508   2
28513   2
28514   2
28519   2
28524   2
28528   2
28529   2
28534   2
28538   2
28549   2
28579   2
28583   2
28584   2
28589   2
28593   2
28600   2
28667   2
28668   2
28672   2
28677   2
28720   2
28724   2
28725   2
28730   2
28758   2
28762   2
28763   2
28768   2
28772   2
28781   2
28810   2
28814   2
28815   2
28832   2
28833   2
28838   2
28839   2
28844   2
28849   2
28853   2
28854   2
28859   2
28863   2
28868   2
28898   2
28902   2
28903   2
28908   2
28912   2
28919   2
28992   2
28993   2
28997   2
29002   2
29050   2
29054   2
29055   2
29060   2
29088   2
29092   2
29093   2
29098   2
29102   2
29116   2
29150   2
29154   2
29155   2
29171   2
29172   2
29177   2
29178   2
29183   2
29186   2
29190   2
29191   2
29196   2
29200   2
29211   2
29241   2
29245   2
29246   2
29251   2
29255   2
29258   2
29325   2
29326   2
29330   2
29335   2
29383   2
29387   2
29388   2
29393   2
29421   2
29425   2
29426   2
29431   2
29435   2
29443   2
29471   2
29475   2
29476   2
29493   2
29494   2
29499   2
29500   2
29505   2
29508   2
29512   2
29513   2
29518   2
29522   2
29530   2
29560   2
29564   2
29565   2
29570   2
29574   2
29578   2
29642   2
29643   2
29647   2
29652   2
29695   2
29699   2
29700   2
29705   2
29733   2
29737   2
29738   2
29743   2
29747   2
29753   2
29779   2
29783   2
29784   2
29800   2
29801   2
29806   2
29807   2
29812   2
29815   2
29819   2
29820   2
29825   2
29829   2
29840   2
29869   2
29873   2
29874   2
29879   2
29883   2
29886   2
29949   2
29950   2
29954   2
29959   2
30002   2
30006   2
30007   2
30012   2
30017   2
30021   2
30022   2
30027   2
30031   2
30036   2
30061   2
30065   2
30066   2
30083   2
30084   2
30089   2
30090   2
30095   2
30100   2
30104   2
30105   2
30110   2
30114   2
30120   2
30150   2
30154   2
30155   2
30160   2
30164   2
30168   2
30232   2
30233   2
30237   2
30242   2
30285   2
30289   2
30290   2
30295   2
30323   2
30327   2
30328   2
30333   2
30337   2
30346   2
30375   2
30379   2
30380   2
30396   2
30397   2
30402   2
30403   2
30408   2
30413   2
30417   2
30418   2
30423   2
30427   2
30430   2
30460   2
30464   2
30465   2
30470   2
30474   2
30477   2
30544   2
30545   2
30549   2
30554   2
30602   2
30606   2
30607   2
30612   2
30640   2
30644   2
30645   2
30650   2
30654   2
30658   2
30682   2
30686   2
30687   2
30704   2
30705   2
30710   2
30711   2
30716   2
30724   2
30728   2
30729   2
30734   2
30738   2
30749   2
30779   2
27467   2
74      3
39      3
81      3
41      3
85      3
75      3
37      3
77      4
385     4
70      5
49      6
73      7
34      8
71      9
78      9
66      15
29      17
67      24
68      25
31      25
72      32
65      32
30      33
38      34
69      36
50      39
64      47
58      61
61      62
57      68
54      73
63      76
45      80
25      86
53      89
62      105
60      114
59      119
24      129
23      133
22      148
26      151
21      163
52      205
20      209
40      215
51      233
55      240
56      260
27      280
16      297
14      320
15      357
12      463
10      468
9       514
36      523
13      551
18      668
8       709
6       748
28      1005
32      1095
19      1190
7       1366
11      1464
3       2047
17      2864
5       8558
2       21446
4       21656
1       45518
0       54235

num-ivar num-obj
9       3268
7       8167
11      13002
6       22775
1       32541
0       170445

==9410== 
==9410== Total spacetime:   890,212,251,517 ms.B
==9410== heap:              90.6%
==9410== heap admin:         9.1%
==9410== stack(s):           0.1%

2007-09-30 (Sun)

#1
#2

ふと、ObjectSpace.count_objects なるものを書いてしまって ([ruby-core:12301])、せっかくなので WeakRef がどのくらいメモリを食うのか調べてみる。

% ./ruby -v -rweakref -e '
ary = []
objs = []
GC.start; c = ObjectSpace.count_objects
10.times {|i|
  objs << i.to_s
  ary << WeakRef.new(objs.last)
  GC.start; c2 = ObjectSpace.count_objects
  c.keys.each {|k| n = c2[k] - c[k]; print "#{k}:#{n} " if 0<n }; puts
  c = c2
}
'
ruby 1.9.0 (2007-09-30 patchlevel 0) [i686-linux]
T_OBJECT:1 T_STRING:26 T_ARRAY:2 T_HASH:1 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 T_HASH:1 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 
T_OBJECT:1 T_STRING:1 T_ARRAY:5 

ふむ。T_OBJECT が 1個、T_ARRAY が 5個、か。

T_OBJECT のひとつは WeakRef のインスタンスであろう。

表から見えないところでは T_ARRAY が 5個できるということか。


[latest]


田中哲