[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/04 11:44 / Filesize : 240 KB / Number-of Response : 968
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Ruby on Rails



1 名前:デフォルトの名無しさん mailto:sage [2007/10/03(水) 12:18:26 ]
Ruby on Railsスレ
みんな語ろう。

756 名前:デフォルトの名無しさん mailto:sage [2008/03/27(木) 17:05:46 ]
なんかすげー怪しいんだけど、ちゃんと動くようなら良いなぁ。
www.modrails.com/

757 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 02:45:13 ]
>>756
ちょww、そいつのブログ

izumi.plan99.net/blog/index.php/about-me/


758 名前:デフォルトの名無しさん mailto:sage [2008/03/28(金) 11:39:10 ]
本場のメイドさん?

759 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 01:03:42 ]
超低級な質問で申し訳ないですが、
ActiveRecord::Baseの、::Baseって文法上どういう意味なんですか?
自分が勉強した限りでは、::という記号はクラスフィールドか定数を表すはずだったんですが。

760 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 01:11:49 ]
ActiveRecordというのはモジュール。
ARのモデルは、そのモジュールの中にあるBaseというクラスを継承したクラス。
Baseもそうだが、実はStringやArrayなんかも
「値がClassクラスのインスタンスである」定数
だよ。


761 名前:759 mailto:sage [2008/03/30(日) 02:04:22 ]
>>760
分かりやすい説明ありがとうございます。
Classという型があってオブジェクトはその型の定数になってるんですね。

762 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 03:01:03 ]
759の質問に答えるだけなら、BaseはActiveModuleの定数だな。

Stringみたいなクラス名が、所詮Classクラスのインスタンスを値として
持つ定数に過ぎないってのはなかなか理解しづらい人もいるかも。

>> ActiveRecord.class
=> Module
#ActiveRecordというオブジェクトはModuleクラスのインスタンス

>> ActiveRecord::Base.class
=> Class
#ActiveRecord::BaseというオブジェクトはClassクラスのインスタンス

>> class Hoge < ActiveRecord::Base; end
=> nil
>> Hoge.class
=> Class
#HogeというオブジェクトはClassオブジェクトのインスタンス

>> Hoge.superclass
=> ActiveRecord::Base
#HogeクラスのスーパークラスはActiveRecord::Base


763 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 03:01:59 ]
間違い
誤 ActiveModule
正 ActiveRecordというModule

○刀乙


764 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 20:50:08 ]
            ____
         __,,/  _, ----`ヽ  :.
     :.  / _     ___   、\
       / /   i      \   \\ :.
     :. ,'./       i  ヽ:.   ヽ:.:.. ヽ.ヽ
      ,'/    / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :.
     :. |i .i i  .i /  ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ}
       |i .i l  :N_, -弋 \弌弋ナ:}:.:}
    :. |i∧ ', :{ ,ィjモト \  イjミトイイV :.  な…
       .|  :メヽ.', `ozZ}      izN。ハ::{     なんなんですか?
      :. |  :ヾ_! ゝ "゙゙    '  `゙ ハ.:', :.   ここ、どこですか?
      |  :.:_イ .:.ヽ.   (二フ , イ :.:.:!:.ヽ     なんであたし
   :.  / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:.   貼られたんですか?
      / ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\
 :.  / .{. ',ヾ、ヽi .:.:.{ /(^`  |.:.:.:.//: : :.}: . ヽ.:.
   / /  ) ヽ ヾ、ヽ:.ハ ヤ{   ∧/.-‐'": : |:.:. i ',
  ./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、  : : : l:.:.: .ハ ',
  { /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.}
  V | .:.:/:.:|_,ィ' ̄  ヽ三{ `ー-ノ : イ : : :/:.:i.:{  リ
    ヽ:.:{、.:.V     : : ヘ     : : {: : :/:.::∧|
     ヽ! )人    : : :人      : : : / \! :.
      "  ヽ : : : : :/イ{     :.ノ: : : :.\ :.
       :.  \__///: :\______/: : : : : : : ヽ
           / //: : :|;|: : : : : : i: : : __: : : : ',
       :.     / 、 {;{   |;|   . : i/. : : : : : :|
          / `Y;{. . . .|;|. : : : /i: : : : : : : : :l



765 名前:デフォルトの名無しさん mailto:sage [2008/03/30(日) 22:51:18 ]
RailsのAPIを見てると、メソッドの引数にパラメータとオプションの2種類あるんですが
これはRails独特の文法なんですか?
それとも複数の引数に対して呼び名を変えてるだけですか?
そもそもオプションをいくつ付けても付けなくてもよいというのは、どのようにメソッドを宣言してるのでしょうか

766 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 00:03:14 ]
ソース読もうぜこんちくしょー。

767 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 00:39:22 ]
普通に最後の引数がHashで
引数の最後にHashが来る場合は{}を省略できるから名前付き引数に見えるだけ

768 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 11:41:46 ]
>>767
それだとオプションを省略したらHashの引数を省略することになって
引数の数が違うというエラーが出るように思うのですが。

769 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 14:03:53 ]
ソース読もうぜこんちくしょー。

770 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:37:41 ]
PCユーザ向けSNSができたね。
Ruby on Rails+Mongrelで出来てるね。

bb.watch.impress.co.jp/cda/news/21440.html

最近増えたなぁ・・・

771 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 18:55:59 ]
>>768
デフォルト引数くらい知っておいてくれ

772 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 22:18:51 ]
ソース読まんようだから書いてやる

def foo(mandatory, arguments, options={})
end


773 名前:デフォルトの名無しさん mailto:sage [2008/03/31(月) 22:54:26 ]
書いても読まれないよ?

774 名前:デフォルトの名無しさん mailto:sage [2008/04/01(火) 00:04:12 ]
先週出たSB本まぁまぁ
よかった。昔の良書系
インプレス程度だが



775 名前:デフォルトの名無しさん [2008/04/01(火) 18:28:54 ]
Informationテーブルがあったとして、そのカラムを多対多で結び付けたい(親子関係を多対多で付けたい)のですが、どのようにしたらいいでしょうか?
テーブルがどんな風になるのかいまいちわからないのです><

776 名前:775 mailto:sage [2008/04/01(火) 18:30:23 ]
すみません途中で送信してしまいました><

Informationテーブルがあったとして、そのカラム同士を多対多で結び付けたい(親子関係を多対多で付けたい)のですが、
どのようにしたらいいでしょうか?
information_and_informationテーブルがどんな風になるのかいまいちわからないのです><

777 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 12:17:08 ]

table_a
 id
 name

table_b
 id
 name

table a_and_b
 a_id
 b_id
って事かいな?
has_and_belongs_to_manyを使うといいかもしれんね。

778 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:01:08 ]
同じテーブルの結合は普通にできると思うし
acts_as_tree でやるのがかんたんにできるんじゃ。
使ったことないけど。

779 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 19:02:03 ]
ごめん。多対多か。

780 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:51:17 ]
model部分ではActionRecord::Baseを継承したクラスでvalidateメソッドをオーバーライドしますが、
APIを見てみるとvalidateメソッドはActionRecord::Validationモジュールのメソッドのようです。
どうしてオーバーライド出来るんでしょう?

781 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 00:20:54 ]
lib/active_record.rb で、 ActiveRecord::Base.class_eval do ... include ActiveRecord::Validations ... end してるから。

782 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:02:44 ]
>>781
ありがとうございます。

783 名前:775 mailto:sage [2008/04/03(木) 15:31:36 ]
ありがとうございます。
自分でもなにがなんだかよくわかってなかったのですが、結局
blog.japan.zdnet.com/yoshimi/a/2007/11/mvcm.htmlを参考にして出来ました _ _

784 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 17:47:39 ]
testの実行で微妙にうまく動かなくて困っています

rake test:units で全体をテストするとERRORになる項目がありますが、
一つのファイルだけ指定して、
ruby test/unit/foobar.rb
等と実行すると、PASSします。

autotestにすると、最初の一回は上と同様ERRORになりますが、ファイルを一度
更新して(全く同じ内容で上書き)もう一度テストが実行されると、同じ
テストがPASSします。

モデルのクラス名とDBテーブル名がrails規約に則っていないので、
set_fixture_class で指定しているのですが、

class FoobarTest < Test::Unit::TestCase
fixtures :hogera
set_fixture_class :hogera => Foobar
def setup
@foobar = Foobar.find(1)
end
....
ここが設定されていないようで、Hogeraクラスがないというエラーに
なっています。
なんだか、全体をテストで回すときに最初の一回初期化がおかしいような
動作に見えるのですが、何か原因や、対応策などありますでしょうか?


「2.0.2になってからfunctional testがおかしい、 setup_without_fixtures を
オーバーライドしてみたらうごく・・・」という情報を見つけましたが、
これに関連しているのか、よくわかりませんでした。




785 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 11:44:08 ]
2.0.2のfunctional testは壊れてる

786 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 17:27:02 ]
vendor/plugins/hogehoge/app/controllers/foo_controller.rb
を変更したい場合、このファイルを直接変更する以外に、
別の場所にコピーし上書きして使うことができるとききました。
もしほんとにそんなことができるなら、どこにコピーしたら
いいのか教えてください。


787 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 22:09:53 ]
RoRって凄いな…
Javaの10倍早いとかなんとかの噂に釣られて少し勉強してみたけど
マジで2〜3時間程度で1つのWebサービス作れるようになった

788 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 16:16:58 ]
>>787
それは貴方がすごいだけ。

789 名前:デフォルトの名無しさん mailto:sage [2008/04/05(土) 23:41:06 ]
>>787
RoRの派生系統でもそんな感じ。
たとえばLisp系のGauche/Kahuaもそれぐらいで作れる。
RoRは「10分で作れる・・・」が目標w

790 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 13:14:41 ]
だめだ・・・
俺なんてログインフォームの html.erb 編集だけで 10 分くらいかかっちゃう。

791 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 13:25:36 ]
そこから先も長そうだな・・・

792 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 13:33:42 ]
そのぶん作りたてでは実行速度が絶対的に遅いです
サイトに合わせて設定やパラメータをチューニングしていくとまあまあの動作になります

他の言語では作りたては単一の目的に驀進してて普通に速くて軽快ですが、
ユーザーの利便のためにエラー処理とかオプションとかを作りこんでいくとどんどん遅くなります

どっちもどっちっすな

793 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 16:32:27 ]
>他の言語では作りたては単一の目的に驀進してて普通に速くて軽快ですが、
>ユーザーの利便のためにエラー処理とかオプションとかを作りこんでいくとどんどん遅くなります

でたYO!Ruby厨のネガキャンw
「他の言語はどんどん遅くなってしまえ」の間違いじゃねえの?www

794 名前:デフォルトの名無しさん [2008/04/06(日) 17:38:40 ]
Rubyはもっと広がってほしいけど、その前にPHPを抹殺してほしい。



795 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 18:36:15 ]
PHPとPerlとVBとCOBOLとJavaは関わりたくないな

796 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 18:45:28 ]
PerlとJavaは内容によっては許可


797 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 18:48:10 ]
>>793
あんたプログラム作ったことないね

798 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 19:01:04 ]
PHPなどの他の言語では遅くなるけどRubyでは遅くならない例ってあるのかな?
具体的なケースがあればRoRを使う理由のひとつとして提案しやすいよ。
RubyとRoRのどの部分が速度に効いてるかその理由も聞かしてよ。
作りこんでいくと遅くなるだと、どの言語を使ってもプログラマーの腕次第って結論になるよ。
設計が良いから遅くならない理由をちゃんと説明できるようになりたい。

799 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 19:29:29 ]
        \   ∩─ー、    ====
           \/ ● 、_ `ヽ   ======
           / \( ●  ● |つ
           |   X_入__ノ   ミ   そんな餌で俺様が釣られクマ――
            、 (_/   ノ /⌒l
            /\___ノ゙_/  /  =====
            〈         __ノ  ====
            \ \_    \
             \___)     \   ======   (´⌒
                \   ___ \__  (´⌒;;(´⌒;;
                  \___)___)(´;;⌒  (´⌒;;  ズザザザ

800 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 19:44:59 ]
PHPonRailsとか無いんですか

801 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 20:17:11 ]
COBOL ON COGSなら


802 名前:デフォルトの名無しさん [2008/04/06(日) 21:38:21 ]
www.nicovideo.jp/watch/sm1233406

Perl + Catalystフレームワークによる1行掲示板の作成過程
8分で作ってるぞw

803 名前:デフォルトの名無しさん [2008/04/06(日) 21:39:56 ]
rubyは口だけ

804 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 21:56:25 ]
8分で作るまでになんどリハーサルやったんだろうな。

第一8分でできたといってもそれ実用レベルじゃないしな。



805 名前:デフォルトの名無しさん [2008/04/06(日) 21:57:58 ]
Ralisでこんなに速く簡単に作れるんか?

806 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:26:20 ]
n分で作るなんとかシリーズって、みんなタイピング練習してからキャプチャしてるだろ。
ってマジレスでごめん。

807 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:27:27 ]
>>804
それはRailsにも言えること。
あんなのを素の本気でアピールに使うのは迷惑千万。


808 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:32:37 ]
Rubyだけが例外と思ってる奴はアホ。
現実的にはRoRもスケーラビリティーに問題があるというのが一般的な見解。
作りこめば遅くなるのも同様。
Catalystが早いのもリーハーサルじゃなくてコード数のおかげ。
RoRは開発スピードが停滞してて他言語に追い越されつつある。

809 名前:デフォルトの名無しさん [2008/04/06(日) 22:40:28 ]
デフォルトでperlのほうが2倍以上速くてしかも
RubyだとFastCGIしか使えないだろw
どう見てもperlにメリットがあると思うw

810 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 22:58:16 ]
>>809
まぁ保守という面を除けばな

811 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:00:39 ]
とは言え、perlで1万行書いたら確実に死ねる。
経験者が言うんだから間違いないw
# しかもそのシステム、まだ現役なんだ……。


812 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:00:58 ]
>>804
rubyは実用的だとでも?

813 名前:デフォルトの名無しさん [2008/04/06(日) 23:05:16 ]
本読むにも文字が少ないほうが速く読めるだろ
1000ページの本と
100ページの本どちらが速く見れるか
慣れれば省略なんて分かるさ。

814 名前:デフォルトの名無しさん [2008/04/06(日) 23:06:11 ]
Rubyだとperlで1万行で済むところ3万行も書く羽目になる



815 名前:デフォルトの名無しさん [2008/04/06(日) 23:23:10 ]
3万ってたいしたことなくね?

816 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:28:13 ]
私的には些細な保守性や速度の差よりも、
ドキュメントが充実してるか否かの方が大きいわ。

817 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:51:09 ]
じゃ、PHPってことで

818 名前:デフォルトの名無しさん [2008/04/06(日) 23:52:21 ]
ドキュメントもモジュールもperlが一番多くて出来る事も多い


819 名前:デフォルトの名無しさん mailto:sage [2008/04/06(日) 23:56:56 ]
FastCGIって使うのかなぁ。
Apache+mod_proxy_balancer+mongrel_cluster だと思うけど。

スケーラビリティの無さは確かに困るね。
実際に開発に入る前に、
その辺の基礎的な所を固めるのに結構時間かかったよ。


820 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 00:49:16 ]
>>804
ホントはそんなにゲームが上手いわけじゃなくて、イベントのために
「スターソルジャー」のステージ1だけ猛練習してた高橋名人みたいなものか。

821 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:09:42 ]
ウェブアプリなんて、8分でつくれるんだろ?

822 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:49:45 ]
自分が書いたプログラムが全部で何行になっているか確認する方法はありますか?
RoRだとよくわからなくて・・・

823 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 01:50:07 ]
rubyって早くも行き詰ってる感あるからなぁ
RoRでちょっと人気でただけで
PHPが登場したときの盛り上がりと比較すれば差は歴然だよね
pythonではなくruby選ぶ理由なんて現時点では皆無だし

824 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 02:05:10 ]
>>814
両方いじった感触だとそれはありえない。
perlやrubyなら100行で済むところが、javaだと300行になるのはよくあるが。



825 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 03:15:48 ]
> 822

rake stats


826 名前:デフォルトの名無しさん [2008/04/07(月) 09:04:09 ]
pythonのような屑言語と比較するなよ

827 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:07:01 ]
板違いなので次スレはここで

pc11.2ch.net/test/read.cgi/php/1207425569/

828 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 09:09:01 ]
Rails on Apache と Apache on Rails
どっちがいい?

829 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 10:17:06 ]
>>819
mongrelって最適なプロセス数をちゃんと考えておかないとイマイチじゃね?

そこら辺皆どうしてるん?
ちゃんとJmeterでしらべてるのかしらん?

830 名前:デフォルトの名無しさん [2008/04/07(月) 11:29:21 ]
rails全然スケールすると思うけどなぁ。
ちゃんと作ってれば、WEB系システムのスケールってだいたいDBの速度じゃない?

スケーラビリティーに問題ありって人はどういった状況なの?

831 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 12:12:47 ]
>>829
おれも興味ある。
mongrelのプロセス数が足りてないのか、あるいは多すぎるってのは、
何を見て判断すればいいんだろ。
とりあえず最初から3個のままだ。

832 名前:デフォルトの名無しさん [2008/04/07(月) 13:04:30 ]
描画で時間かかってて、同時アクセス数が多いならプロセス数増やす
DBが遅いならRAILS関係なし

プロセス数たりなければ、apacheの待ちプロセスが増える。
プロセス多すぎたらリソース食いすて遅くなる等の問題が出る。

メモリはいっぱい積もう。

833 名前:デフォルトの名無しさん [2008/04/07(月) 13:58:53 ]
質問させてください。
初心者で、何をいじれば、良くなるのか、わからないので、
ヒントをいただけるとうれしいです。
構成は、
Apache(+mod_proxy_balancer) + mongrel_cluster(Rails) + MySQL
です。
スクリプトで、別マシンから平均25アクセス/秒程度の
負荷を掛けてみました。
レスポンスに平均2秒程度掛かってしまっています。
Mongrelは10個立ち上げてます(多すぎですかね?)
アプリマシンの状態はこんな感じです。
$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 3242764 78532 117304 0 0 0 0 10 10 0 0 100 0
0 0 0 3244628 78532 117348 0 0 0 0 1329 1262 61 4 35 0
14 0 0 3243952 78548 117416 0 0 0 25 1579 1548 72 6 22 0
7 0 0 3242316 78556 117500 0 0 0 25 1876 1535 92 8 0 0
9 0 0 3241708 78564 117584 0 0 0 22 1937 1415 93 7 0 0
9 0 0 3240336 78572 117664 0 0 0 22 1839 1281 93 7 0 0
10 0 0 3240960 78580 117740 0 0 0 21 1883 1324 94 6 0 0
9 0 0 3238612 78588 117820 0 0 0 26 1885 1336 93 7 0 0
10 0 0 3240196 78596 117904 0 0 0 22 1887 1325 93 7 0 0
10 0 0 3240456 78604 117988 0 0 0 24 1903 1432 94 6 0 0
9 0 0 3240588 78612 118068 0 0 0 22 1875 1272 93 7 0 0
5 0 0 3240100 78620 118156 0 0 0 22 1935 1704 92 8 0 0


834 名前:833 [2008/04/07(月) 14:15:05 ]
すみません。アプリマシンは、こんな感じです。
$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
-r--b --swpd---free---buff--cache --si---so ---bi----bo --in---cs us-sy-id-wa
-0--0 -----0-3242764--78532-117304 ---0----0 ----0-----0 --10 --10 -0--0-100--0
-0--0 -----0-3244628--78532-117348 ---0----0 ----0-----0 1329-1262 61--4-35--0
14--0 -----0-3243952--78548-117416 ---0----0 ----0----25 1579-1548 72--6-22--0
-7--0 -----0-3242316--78556-117500 ---0----0-----0----25 1876-1535 92--8--0--0
-9--0 -----0-3241708--78564-117584 ---0----0-----0----22 1937-1415 93--7--0--0
-9--0 -----0-3240336--78572-117664 ---0----0-----0----22 1839-1281 93--7--0--0
10--0 -----0-3240960--78580-117740 ---0----0 ----0----21 1883-1324 94--6--0--0
-9--0 -----0-3238612--78588-117820 ---0----0 ----0----26 1885-1336 93--7--0--0
10--0 -----0-3240196--78596-117904 ---0----0 ----0----22 1887-1325 93--7--0--0
10--0 -----0 3240456--78604-117988 ---0----0 ----0----24 1903-1432 94--6--0--0
-9--0 -----0-3240588--78612-118068 ---0----0 ----0----22 1875-1272 93--7--0--0
-5--0 -----0-3240100--78620-118156 ---0----0 ----0----22 1935-1704 92--8--0--0
-0--0 -----0-3241952--78628-118204 ---0----0 ----0----21 -978-1249 41--3-56--0
-0--0 -----0-3241960--78636-118224 ---0----0 ----0----12 -535--904 15--2-83--0
-0--0 -----0-3241952--78644-118232 ---0----0 ----0-----8 -347--900 -6--1-93--0
-2--0 -----0-3241952--78652-118236 ---0----0 ----0-----6 -294--853 -1--0-98--0
-0--0 -----0-3241952--78652-118236 ---0----0 ----0-----3 -269--939 -0--0-100--0
-0--0 -----0-3242016--78660-118236 ---0----0 ----0-----2 -253--820 -0--0-100--0



835 名前:デフォルトの名無しさん [2008/04/07(月) 14:37:15 ]
railsログでは1プロセスは1リクエストを何秒で処理できるの?

簡単に言えば1プロセスが1秒に10リクエスト裁けるなら、mongrel5個なら
1秒に50個処理できるよね。

もともと処理に2秒かかるなら、プロセスいくつ増やしたって当然2秒かかる。

プロセス増やして描画の処理能力が落ちちゃってるならプロセス多すぎる。
DBが遅くなってるなら設計がだめかサーバーがぼろすぎる。

設計がダメなアプリは何でどう作ってもダメだからしょうがないよ。

836 名前:833 [2008/04/07(月) 14:59:22 ]
>>835
アドバイス有難うございます。
秒間、18リクエストぐらいまでは、
平均、0.2秒で返してくれるんですが、
19〜20リクエストぐらいから、どんどん遅くなるみたいです。

railsログは、log/production.logを見れば良いんですかね?
production.logは、こんな感じです。
Completed in 0.01850 (54 reqs/sec) | Rendering: 0.01424 (76%) | DB: 0.00000 (0%) | 200 OK
Completed in 0.01773 (56 reqs/sec) | Rendering: 0.01332 (75%) | DB: 0.00000 (0%) | 200 OK
Completed in 0.06937 (14 reqs/sec) | Rendering: 0.06201 (89%) | DB: 0.00000 (0%) | 200 OK
Completed in 0.03860 (25 reqs/sec) | Rendering: 0.03171 (82%) | DB: 0.00000 (0%) | 200 OK
Completed in 0.05636 (17 reqs/sec) | Rendering: 0.05005 (88%) | DB: 0.00000 (0%) | 200 OK
Completed in 0.01776 (56 reqs/sec) | Rendering: 0.01385 (78%) | DB: 0.00000 (0%) | 200 OK
Completed in 0.13781 (7 reqs/sec) | Rendering: 0.12299 (89%) | DB: 0.00000 (0%) | 200 OK



837 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 15:01:49 ]
個人的には鯖がたくさんあって、書き込みが多いシステムにはmongrel

それ以外ならFastCGIで
htmlに吐いてキャッシュかRailsキャッシュ使うなりして逃げた方がいいと思ってる。

>>833
それだけじゃワカラン。

SWAPは発生して無いみたいだから
DB回りがボトルネックになってると予想

JOINとかしてる?
無駄なクエリ発行してない?
ARに頼ると遅くなるよ

select * from hoge where id = ????? limit 1 ;
みたいな単発SQLでも数が多いと時間かかる時もある

838 名前:833 [2008/04/07(月) 15:18:06 ]
>>837
有難うございます。
確かに、クエリは多くなっているように思います。
JOINしてます。
ARに頼らないということは、DBIを使うべしということでしょうか?
よくわかっていないもので、お手数お掛けしてすみません。

839 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 15:28:53 ]
>>838
find で
:select で絞るとか、
:join で明示的にJOINするとか・・・

クエリに関わる物全てが動的だったら無理だけど、
マスタデータとか、バッチ更新でしか変わらないようなデータなら
フラグメントキャッシュ使うとかやってみたら?

例えば、TOPのランキング一覧とかなら
その部分はフラグメントキャッシュで持って
1時間毎キャッシュクリアして更新するとか。

クエリ多いなら、
DB側のチューニングもやってなければやった方がいいかもしれんね。

840 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 15:33:21 ]
さくらのレンタルサーバーとかだったら、DB周りはチューニングしようがないと思うよー

841 名前:833 [2008/04/07(月) 15:38:16 ]
>>839
有難うございます。
:selectは、使ってませんでした。
アドバイス助かります。

キャッシュについても試してみます。


842 名前:833 [2008/04/07(月) 15:41:21 ]
>>840
自宅に置いてるので、いじれると思うんですが、
具体的な方法がわかってません。


843 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 16:01:35 ]
David Pollak

わたしはこれまで Rails による開発を 18 カ月、Java による開発を 10 年経験してきました。
Rails はウェブ開発に新しい風を吹き込みました。よく使うタスクはコマンド一発で実行することができます。
実にすばらしい。しかし、私は気が付いてしまいました。Ruby の動的型付けは多くのエラーを引きおこすことに。
そして、安心してデプロイするためには 95% ものテストカバレッジを達成しなければいけないことに。
95% のテストカバレッジを得ることの代償として、私の書いたコードは(テストコードも含めて)
Java で書いたものと同等のサイズにまでふくれあがってしまいました。
その上、Rails では動的なコードの変更が可能なため、開発・テスト・デプロイ中にトラブルが続出するようになりました。
高いテストカバレッジを確保しているにも関わらずです。
これらの問題にくわえて、MRI(Matz Ruby Implementation: まつもとゆきひろ氏による Rubyの実装)は速度が遅く、
言語仕様も安定していません。それなのに開発コミュニティはそのことに見向きもしません。

844 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 16:28:12 ]
>>843
ひがの反論の方がしっくりくるよ
95%カバレッジしててトラブル続出ってありえないだろう



845 名前:デフォルトの名無しさん [2008/04/07(月) 17:09:37 ]
CPUリソース不足
あとはMYSQLで処理開始待ちが増えてないかどうか見てみな



846 名前:833 [2008/04/07(月) 17:31:05 ]
>>845
アドバイス有難うございます。
ということは、Railsのコードに大幅な改善が見込めないなら、
さっさと、アプリサーバを増やした方が早いということでしょうか。
MySQLの状態の見方が良くわかっていないのですが、
負荷テスト中に、show full processlist;してみると、こんな感じでした。

mysql> show full processlist;
+-----+--------+---------------------+----------------+---------+------+-------+-----------------------+
|-Id--|-User---|-Host----------------|-db-------------|-Command-|-Time-|-State-|-Info------------------|
+-----+--------+---------------------+----------------+---------+------+-------+-----------------------+
|-316-|-apphnk-|-192.168.2.100:60163-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|-
|-317-|-apphnk-|-192.168.2.100:60164-|-hnk_production-|-Sleep---|----1-|-------|-NULL------------------|-
|-318-|-apphnk-|-192.168.2.100:60165-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|-
|-319-|-apphnk-|-192.168.2.100:60166-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|-
|-320-|-apphnk-|-192.168.2.100:60167-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|-
|-321-|-apphnk-|-192.168.2.100:60168-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|-
|-322-|-apphnk-|-192.168.2.100:60169-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|-
|-323-|-apphnk-|-192.168.2.100:60170-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|-
|-324-|-apphnk-|-192.168.2.100:60171-|-hnk_production-|-Sleep---|----1-|-------|-NULL------------------|-
|-325-|-apphnk-|-192.168.2.100:60172-|-hnk_production-|-Sleep---|----0-|-------|-NULL------------------|-
|-327-|-root---|-localhost-----------|-NULL-----------|-Query---|----0-|-NULL--|-show-full-processlist-|-
+-----+--------+---------------------+----------------+---------+------+-------+-----------------------+
11 rows in set (0.00 sec)


847 名前:デフォルトの名無しさん [2008/04/07(月) 18:12:03 ]
今あるデータだけだとそう考えられるね。とりあえずプロセス減らして、サーバー買うなりCPU強化するなり、ロジックを修正するなり

BACKGROUNDRBとか、大量のログとか、ファイルの読み書きとかやってないよね?


848 名前:833 [2008/04/07(月) 18:28:08 ]
>>847
アドバイス恐縮です。
BackgrounDRb、log/production.log以外のログ、
ファイルの読み書き、などやっていないと思います。
教えていただいたことをやってみます。
有難うございました。

849 名前:デフォルトの名無しさん [2008/04/07(月) 19:21:18 ]
production logだけど、遅くなってる時はproduction.logの処理時間も遅くなってるんだよね?
apacheでは処理時間だしてる?

apacheで表示される処理時間と、同じリクエストのproduction.logを見てみな。

どっちみちWEBアプリでユーザーのCPUリソースが90%超えるとかありえないから
どっかおかしいんじゃないかな。それか 凄く思いロジックを凄いぼろい鯖でやってる?


850 名前:833 [2008/04/07(月) 20:38:36 ]
>>849
有難うございます。
Apacheのログに%D(マイクロ秒?)で処理時間を出してみました。
こんな感じで、
1312022
970413
1431397
1205620
1165282
1027745
1138476
1326502
980994
大体1秒から2秒ぐらいかかってます。ただ、6335389ぐらいかかってる
リクエストが混じってるので、平均して2秒以上掛かってます。
(遅かったリクエストの処理が他に比べ重いとかそういうことはないです。)

すみません。先ほど、production.logのデータを取るところを間違ったみたいで
一番負荷が掛かってる頃では、大体0.2〜0.35秒ぐらいかかってました。
30秒間で、1秒程度掛かってるのも3回ほどありました。


851 名前:833 [2008/04/07(月) 20:50:09 ]
>>849
ロジックが酷いのかもしれないです。
CPUは、Core2Duoです。
:includeとかで、もう少し速くなりそうではあるのですが、
根本的に、やり方が酷いのかもしれません。。

あと、秒間18リクエストぐらいに落とすと、
ユーザーのCPUリソースがだいたい60%ぐらいで、
平均0.2秒ぐらいでレスポンスが返ってきます。


852 名前:デフォルトの名無しさん [2008/04/07(月) 21:43:54 ]
TEXT入力ボックスの幅を調整するにはどうすればよいですか?

<p>
<b>Text</b><br />
<%= f.text_area :text %>
</p>



853 名前:833 [2008/04/07(月) 21:51:17 ]
>>852
こんな感じ?
<%= f.text_area :text, {:cols => 50, :rows=> 5 }%>

854 名前:デフォルトの名無しさん [2008/04/07(月) 22:03:43 ]
>>853
ありがとうございます。
うまく行きました。3日前からはじめたばっかりなもんで ^^;




855 名前:833 [2008/04/07(月) 22:37:19 ]
>>854
僕もつい最近覚えました。。

856 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 23:38:37 ]
>>851
Railsのログ見てどこがネックになってるかわからんのん?
DBアクセスで何秒、レンダリングで何秒か位は出てた気がする。
見当違いだったらスマンね。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<240KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef