namazu-dev(ring)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How to get tf value? (長文注意)
小松です。
On Tue, 26 Oct 1999 12:43:33 +0900 (JST)
Mr. Rei FURUKAWA <furukawa@xxxxxxxxxxxxxxxx> wrote:
Rei> あと、「Data::Dumper 吐き出し」というのが、具体的にどうすることなのか、
Rei> も教えていただけると、ありがたいです。
正確には、「Data::Dumper でファイル に print 」という意味で
した。こうしておいていただけば、ファイルに書いたハッシュは初期化
してメモリを節約できますし、複数の PC で作業を分業させることもでき
ます。ハッシュを使うときは、そのファイルを require すれば OK です。
【具体例】
my $Cluster = { # ref_hash
c001 => [1,],
c002 => [10,10,],
c003 => [22,10,10,10,10],
c004 => [30,],
c005 => [40,],
c006 => [50,],
c007 => [60,],
c008 => [80,],
c009 => [130,],
c010 => [140,]
} ;
# Data::Dumper でこのハッシュをファイル $fh ('d.dump') に保存
print $fh Dumper($Cluster), "\n";
# ファイル d.dmp の中身はこんな風:
$VAR1 = {'c010' => [140],'c001' => [1],'c002' => [10,10],'c003' =>
[22,10,10,10,10],'c004' => [30],'c005' => [40],'c006' => [50],'c007' =>
[60],'c008' => [80],'c009' => [130]};
# 他のプログラムから、d.dmp に保存されたハッシュを使うときは:
my $h = require('d.dmp');
# CPAN にある Agent 関係のモジュールでも使われていて、オブジェ
# クトの転送にも使えます。
Rei> (3) 参照する順番に、規則性のようなものは、ありますでしょうか?
Rei>
Rei> 「一つの大きなハッシュを返す関数」だと、戻ってくるまでに、かなりの時間
Rei> がかかると考えられます。
Rei>
Rei> それに対して「値ごとに関数を呼んで、キャッシュを併用」ならば、一回の時
Rei> 間は短いので、途中経過の表示などがしやすくなります。ただし、参照順によ
Rei> っては、seek のコストによって、全体として遅くなるかもしれません。
参照するときは、必ず「ファイル単位」で参照します。つまり、ある
ファイルにあるすべての $word のスコアを全部一気に参照します。ファイルは、
0 から順番に参照されます。$word の参照には、順番は、ありません。全部
を一回づつ参照します。
こんな説明で、よろしいでしょうか。(キャッシュのイメージが、まだ
沸いてこないので、不十分な説明かもしれません)
よろしくお願いします。
*-------------------------------------------------------
Hiroshi Komatsu <sui_feng@xxxxxxxxxxxxx>
URL http://home2.highway.ne.jp/sui_feng/index.html
Rei> 古川です。
Rei>
Rei> >> On Tue, 26 Oct 1999 10:32:35 +0900, Hiroshi KOMATSU <sui_feng@xxxxxxxxxxxxx> said:
Rei> > Dumper は、私もつい最近使い始めたのですが、結構いけてます。
Rei> > 複雑なハッシュやアレーをファイルに吐き出したり、読み込んだり
Rei> > プリチイにプリントするのに便利です。
Rei>
Rei> なるほど、分かってきました。これは、使いこなせると、便利そうです。
Rei>
Rei> あと、「Data::Dumper 吐き出し」というのが、具体的にどうすることなのか、
Rei> も教えていただけると、ありがたいです。
Rei>
Rei>
Rei>
Rei> >> (1) 同じデータを複数回参照しますか?
Rei> >> (2) 最終的に、全てのデータを参照しますか?
Rei>
Rei> > #あう、メモリの問題がありますね。たしかに。
Rei>
Rei> > (1) (2) ともに、yes であります。
Rei>
Rei> では、「十分なメモリを用意してね」ということにしましょう。で、もう一つ
Rei> うかがいたいのですが、
Rei>
Rei> (3) 参照する順番に、規則性のようなものは、ありますでしょうか?
Rei>
Rei> 「一つの大きなハッシュを返す関数」だと、戻ってくるまでに、かなりの時間
Rei> がかかると考えられます。
Rei>
Rei> それに対して「値ごとに関数を呼んで、キャッシュを併用」ならば、一回の時
Rei> 間は短いので、途中経過の表示などがしやすくなります。ただし、参照順によ
Rei> っては、seek のコストによって、全体として遅くなるかもしれません。
Rei>
Rei> --
Rei>
Rei> ヤマハ(株)ピアノプレーヤ設計課
Rei> 古川 令
Rei> furukawa@xxxxxxxxxxxxxxxx
Rei>