2007年10月29日

便利だけども、遅い遅いEager Loading

PratikさんがEager loading optimization patchというパッチを出していた。
#10011がもともとのチケットで、ここのチケットに当該パッチが添付されている。
三秒くらい眺めたけど、私が昔プロジェクトに取り込んだのとほぼ同じみたいだ。
最初のレスポンスをしている、Tarmo Tänavさんが言っているのに、簡単な例でしか試していない感じだ。

次にコメントしたMark Reginald Jamesさんが指摘している
Frederick Cheungさんによるslow eager loading ( & fix)のほうがまだよさそうな気配だ。
こちらのフィックスは私が関わったプロジェクトでもほぼ同じ問題が起きていたからだ。時間を割いて、このパッチを読んでみるといいかもしれないと思います。
ラベル:Rails-core
posted by N.T.T with Rails 3.2 (ex. 2.1) at 13:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年10月26日

diffの形式: SVN diffを見慣れた後のcontext形式

最近Subversionばかりを使う日々なせいで、Subversionのdiff形式(デフォルトがunified)を見慣れたせいで、普通のGNU diffのcontext形式のdiffがすごい違和感に感じるようになってしまった。。。

ぐぐってたら、
svn diff の出力フォーマットを変更ってことで、side-by-side形式がいいって人もいるみたい。
context強く推奨コミュニティで長く過ごしたため、context>>unified>>>>>side-by-sideって感じです。個人的に。

私はcontextが好きでunifiedも楽々許容範囲。でも、side-by-sideは慣れてない。
ラベル:diff subversion
posted by N.T.T with Rails 3.2 (ex. 2.1) at 17:00| Comment(0) | TrackBack(0) | バージョン管理 | このブログの読者になる | 更新情報をチェックする

2007年10月23日

Time.nowが遅いとかいう「Rails勉強会@東京 第23回」の話を五分だけ見てみた。

ruby -rdate -e '1.upto(10000) { |i| p Date.today.year } '


ruby -e '1.upto(10000) { |i| p Time.now.year } '

を比較してみた@Ruby 1.8.5@Pentium D 3.40GHz (2MB cache) on RHEL4。

$ time ruby -rdate -e '1.upto(10000) { |i| p Date.today.year } '

real    0m1.563s
user 0m1.496s
sys 0m0.067s

$ time ruby -e '1.upto(10000) { |i| p Time.now.year } '


real    0m0.099s
user 0m0.044s
sys 0m0.041s

と、まー
Time.now
のほうが早いという結果になった。

結論:
Date.today
のほうが20倍近く遅いってことでいいの?
ラベル:Rails Rails勉強会
posted by N.T.T with Rails 3.2 (ex. 2.1) at 17:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年10月12日

Webアプリ開発がうまくいかない理由

第12回 バーンダウン・チャートで「終わるかどうか」を見える化する

儲からないから、工数を気にしてばかりで、従業員の満足度が上がらないから。

冒頭の連載の半分は、チバビジョンさんの宣伝ということではあるんだろうけど。
ラベル:Webサービス
posted by N.T.T with Rails 3.2 (ex. 2.1) at 13:00| Comment(0) | TrackBack(0) | Web系企業・サービス | このブログの読者になる | 更新情報をチェックする

2007年10月09日

Subversionのglobal-ignoresを強制できない場合の処置

デザイナなどと仕事していて
~/.subversion/config
にglobal-ignoresを書いてもらうのを強制できない場合はThumbs.dbをsvn:ignoreにいちいちセットするしかないのかな?
posted by N.T.T with Rails 3.2 (ex. 2.1) at 17:00| Comment(0) | TrackBack(0) | バージョン管理 | このブログの読者になる | 更新情報をチェックする

2007年10月04日

AR#findのincludeオプションの罠

たとえば、こういうモデルがテーブル関係にある場合、


$ cat app/model/user.rb
class User < ActiveRecord::Base
has_one :user_some
end
$ cat app/model/user_some.rb
class UserSome < ActiveRecord::Base
belongs_to :user
end


userモデルとuser_someモデルは1:1対応。



User.find :first


だと


SELECT * FROM users LIMIT 1


と、まぁごく自然なのに対して、


User.find :first, :include => [ :user_profile ]


だと、


SELECT users.`id` AS t0_r0, users.`hoge` AS t0_r1, user_somes.`id` AS t1_r0, user_somes.`hoge` AS t1_r1 FROM users LEFT OUTER JOIN user_profiles ON user_profiles.user_id = users.id


となり、え?って感じで、10000レコードずつあれば、1億レコードのもRailsに返ってきて、それを処理することになる。どっひゃーーって感じなので、注意せねばね。

where
で絞り込めば、まだマシなのでしょうが、そうでない場合もあるので、注意がかなり必要!
ラベル:Rails
posted by N.T.T with Rails 3.2 (ex. 2.1) at 11:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

2007年10月01日

今年の夏の旅行

今年の夏はどこにも行かなかった印象だ。

七月に新潟に、八月に岐阜・名古屋に行ってきたくらい。

でも、どっちらも暑かったけど、楽しむことができました。

あなたの旅の思い出をブログに書こう!
ラベル:研究
posted by N.T.T with Rails 3.2 (ex. 2.1) at 21:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

[Rails-core] Railsのセキュリティはジョークか?

Security + Rails =Joke?より

Rails Securityメーリングリストが機能していないよね、って話。

Railsはセキュリティに弱いフレームワークではなくて、セキュリティの情報共有ができていないよね。

Railsの脆弱性のあるバージョン範囲を示すべきで、どのバージョンから直っているのか分かりやすくしたほうがいい。

[7589]: Secure #sanitize, #strip_tags, and #strip_links helpers against xss attacksなどが採り上げられている。
ラベル:Rails-core
posted by N.T.T with Rails 3.2 (ex. 2.1) at 15:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする

[Rails最前線] メモリリークの問題

rails/ruby memory leak (2007年10月1日(月) 午前12:59)より

DBでセッション管理すると
http://drawohara.tumblr.com/post/13655303
に詳細が書いてあるよ、と。
      Darwin 8.10.1 i386

ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-darwin8.9.1]

Rails 1.2.3

sqlite3lighttpdを使って、30分間で25000アクセス程度かけていくと、ゆっくりrsizeが増大していく。6hとかかけて。
ラベル:Rails-core
posted by N.T.T with Rails 3.2 (ex. 2.1) at 13:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。