1

私はアプリのパフォーマンスを改善しようとしています。パフォーマンスが最も悪い領域は、attachment_fuを使用するImageモデルの作成であるようです。

class Image < Attachment

  ...

  has_attachment :content_type => :image,
    :max_size => 100.megabytes,
    :storage => :file_system,
    :path_prefix => 'public/uploaded/images',
    :thumbnails => { :small => '75x75>', :medium => '160x120>', :large => '600x600>' },
    :s3_access => :authenticated_read

  validates_as_attachment

  after_create :move_to_s3

  ...

move_to_s3メソッドはすでにdelayed_jobに移動しています。

このトランザクションのapdexスコアはひどいもので(多くの場合<0.5)、1〜2秒かかります。

他にどのように画像レコードの作成を(速度的に)改善できますか?

:smallサムネイルなしでできるかもしれませんか?それを落とすのに役立ちますか?

それが役立つ場合、これらのファイルのほとんどは高解像度の画像です。アップロード時間は私が持っているメトリックに影響しますか?レポートを歪めていますか?

4

2 に答える 2

1

画像を S3 に直接保存し、遅延ジョブを作成してダウンロードし、サイズを変更して、サムネイルを S3 に戻します。

次のページの読み込み時に画像を表示するには、大きなバージョンにリンクし、css でサイズを変更します。

また、はい、必要なサイズが少ないほど、処理にかかる時間も少なくなります。

于 2009-10-28T20:18:54.613 に答える
0

アプリの代わりに、mod_porterを使用してウェブサーバーにアップロードを処理させることができます。

これによって「スピードアップ」することはありませんが、ファイルが実際にアップロードされるまで、アプリサーバーの1つがブロックされないようにします。

于 2009-10-28T21:21:28.730 に答える