[#44578] Ruby初心者が作りました — Kabu and Ruby管理人 <kabu_and_ruby@...>

http://www.geocities.jp/kabuandruby/index.html

26 messages 2008/02/06

[#44691] ”Rubyアプリケーションプログラミング”の伝言サーバの使い方 — "Yangkook Kim" <yangkookkim@...>

キムと申します。オーム社から出版されている書籍、"Rubyアプリケーションプログラミング"のP267~275に掲載されている伝言サーバー&クライアントの利用の仕方がわかりません。質問を要約すると次の2点です。1、サーバーが正常に起動されているかどうかわからない。2、書き込みクライアントで入力をサーバーに送信する方法がわからない。

8 messages 2008/02/24

[ruby-list:44638] Re: Q: 動的デバッグ方法

From: "Ohto, Yasunori" <Yasunori.Ohto@...>
Date: 2008-02-14 04:24:17 UTC
List: ruby-list #44638
大戸です。

getsで処理間隔を簡単に計測したもので、プロファイルを使っての
解析ではないことから正確ではないのですが、どうも、DBMでの
書き込みがボトルネックのようでした。

gzファイル(複数行で一つの単位となるテキストデータを圧縮したもの
(250MBくらい(データによってはもっと巨大なものもあります))を読み
込み、データ単位に分けてインデックスを作り、DBMでデータベース化
するというものです。

DBMに入れるデータを工夫するとかで対応を取っており、
これ以上やろうとすると、自前でDBMを作ることになりそうです。

このプログラムは生データーからDBを作るところなので、
この部分は頻繁に実行しないので少々時間がかかっても
いいかなって感じで考えています。

#処理全体を見ると、DBへのインストール作業の割合は
#低いですからね

プロファイルについては今度使ってみたいと思います。
NArray はDB化したデータを使った処理に使っていますので、
これについてもチャレンジしてみます。

ご意見、ありがとうございました。


-----Original Message-----
From: rubikitch@ruby-lang.org [mailto:rubikitch@ruby-lang.org] 
Sent: Thursday, February 14, 2008 12:38 PM
To: ruby mailing list
Subject: [ruby-list:44637] Re: Q: 動的デバッグ方法

From: "Ohto, Yasunori" <Yasunori.Ohto@jp.sony.com>
Subject: [ruby-list:44636] Re: Q: 動的デバッグ方法
Date: Thu, 14 Feb 2008 11:15:42 +0900

るびきちです。

> 先日作ったプログラムでは、(通常モードでも)処理に1.5日くらいかかってました。
> 素直にデバッグモードを使っていると大変な時間がかかります。

ボトルネックを探してみましょう。
ボトルネックを探すにはprofilerを使います。遅いけれど…
ruby -rprofile script

# ruby-prof <http://raa.ruby-lang.org/project/ruby-prof/> は高速らしい

そこで、無駄な処理が行われていないでしょうか?
たとえば行指向なデータではないのにもかかわらず行単位で処理してたり、
同じ内容の正規表現オブジェクトを作りまくってたりしてませんか?

その部分を拡張ライブラリにする手もあります。
RubyInlineを使うとお手軽です。

やっている処理が数値計算ならばNArrayが使えるでしょう。

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/




In This Thread