Tag: 性能

为什么ActionDispatch :: Routing :: RouteSet需要这么长时间

我在Rails 4.2.1上使用Grape为我们的应用程序提供API。 但是当我今天检查Newrelic的性能时,我发现RackApp Proc#call和Grape API::Root#call占用了大量的时间。 (见截图) 然后我尝试使用rack_timer记录中间件中消耗的时间,发现ActionDispatch::Routing::RouteSet占用了大部分时间: Rack Timer (Application Action) — ActionDispatch::Routing::RouteSet: 67.12579727172852 ms Rack Timer (Application Action) — ActionDispatch::Routing::RouteSet: 101.51457786560059 ms Rack Timer (Application Action) — ActionDispatch::Routing::RouteSet: 84.18059349060059 ms Rack Timer (Application Action) — ActionDispatch::Routing::RouteSet: 1236.2565994262695 ms Rack Timer (Application Action) — ActionDispatch::Routing::RouteSet: 8.124351501464844 ms Rack Timer (Application Action) — ActionDispatch::Routing::RouteSet: 55.65309524536133 ms […]

如何在Rails 3开发服务器上禁用控制台输出?

如何在Rails 3应用程序上禁用控制台输出? 更具体地说,我想至少禁用Mailer输出,输出整个电子邮件内容,包括图片,使动作处理更慢(发送电子邮件需要大约10秒)。 ps:我认为减速是因为输出,如果它可以来自其他来源,例如慢速smtp服务器(它是gmail atm,所以没有。)或其他类似的东西请告诉我。

ROR的不同实现

我正在制作一个非常简单的ROR网站。 class Product ‘Photo’, :order => ‘name’ has_one :random_photo_1, :class_name => ‘Photo’, :order => ‘RAND()’ def random_photo_2 Photo.find(:first, :conditions => { :product_id => self.id }, :order => ‘RAND()’) end end 在实现许多类ActiveRecord期间,我怀疑,我不明白random_photo_1实现random_photo_2方法之间的区别。 PS我很抱歉我的英语。

反向代理混淆

目前我使用nginx + passenger来提供我的rails应用程序。 我一直在对反向代理进行一些研究,并且弹出一些名称(主要是鱿鱼,清漆和nginx)。 现在,如果我使用nginx作为我的Web服务器,我可以将它用作我的反向代理吗? 一般意义上,大多数站点使用nginx代理静态内容和apache / mongrel或类似的动态内容。 如果我想坚持使用我的nginx,乘客设置,当我引入反向代理时,我的架构会是什么样子? 它会是一个单独的盒子或nginx实例吗? 如果我引入像HAProxy这样的负载均衡器,它会是什么样子? 最后,这些选择在早期有多重要? 所以,如果我最终后悔做出选择(让我们说Varnish,因为它不能很好地与cookie等等),是否容易切换? 谢谢

将一个大表分成多个表

rails app,我有一个表,数据已经有数亿条记录,我要将表拆分为多个表,这样可以加快读写速度。 我找到了这个gem章鱼 ,但他是一个主/从,我只是想拆分大桌子。 或者当桌子太大时我该怎么办?

我怎样才能找出为什么我的应用程序很慢?

我在500 MB Slicehost VPN上部署了一个简单的Rails应用程序。 我是唯一一个使用该应用程序的人。 当我在笔记本电脑上运行它时,它足够快。 但部署的版本非常慢。 加载登录屏幕需要6到10秒。 我想知道为什么它这么慢。 这是我的代码吗? (不要这么认为,因为它在本地速度要快得多,但也许。)Slicehost的服务器是否超负荷? 是互联网吗? 有人可以建议我可以采取的一种技巧或一系列步骤来帮助缩小这个问题的原因吗? 更新: 对不起忘了提。 我使用Phusion Passenger(AKA mod_rails或mod_rack )在CentOS 5下运行它。

rails3 – 这是更好的性能代码

哪个是最好的做法,并给我更好的表现? 例如: 我有状态表,有5条记录,每条记录需要存储在单独的变量上。 方法一: @new_status = Status.find_by_status(“NEW”) @inprocess_status = Status.find_by_status(“InProcess”) @completed_status = Status.find_by_status(“Completed”) @occupied_status = Status.find_by_status(“Occupied”) @success_status = Status.find_by_status(“Success”) 方法2: statuses = Status.all @new_status = statuses.find {|status| status.status == “NEW”} @inprocess_status = statuses.find {|status| status.status == “InProcess”} @completed_status = statuses.find {|status| status.status == “Completed”} @occupied_status = statuses.find {|status| status.status == “Occupied”} @success_status = statuses.find {|status| […]

Routes.rb vs rack-rewrite vs nginx / apache重写规则

我对以前的应用程序版本中的遗留URL有几十条重写规则。 我看到三个选择: 只需在路由文件中添加“匹配”行(config / routes.rb) 使用机架重写 创建Nginx / Apache重写规则(在我的例子中是Nginx) 我认为3的性能优于2,性能优于1。 我的问题: 真的吗? 如果是这样,重要的是多少? 我可能没有考虑过其他权衡吗? 除了那三个之外还有其他任何选择吗?

Rails如何优化我的网站?

我想让我的网站更快。 我知道我可以制作CSS精灵并压缩我的HTML和CSS。 还有其他方法可以优化我的页面速度吗? 这个页面就是一个例子: http : //www.vinderhimlen.dk/konkurrencer/vind-elektronik 加载共享按钮,评级星和Facebook喜欢它需要几秒钟。 我真的想要优化它。 我只是不认为最小化HTML和CSS就足够了。

使用Paperclip和Rails,Google Cloud Storage请求速度很慢

我有一个Rails应用程序,它使用Google云端存储来存储图像。 每个视图大约有8个图像,当用户尝试加载页面时,由于对GCS的请求,完成所需的时间超过5秒。 Paperclip通过以下配置发出请求: config.paperclip_defaults = { storage: :fog, fog_credentials: { google_storage_access_key_id: myAccessKey, google_storage_secret_access_key: mySecretKey, provider: ‘Google’ }, fog_public: true, fog_directory: ‘mybucket’ } 在我看来,我用这种方式调用每个图像: 有没有更快的方法来实现相同的结果? 懒惰负载在我看来是一个解决方法而不是解决方案,我错了吗? 这里New Relic臭名昭着的分析(绿色属于谷歌云存储请求)