加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 调用部分昂贵的操作?

发布时间:2020-12-16 22:58:51 所属栏目:百科 来源:网络整理
导读:我可以尽可能多地使用部分内容吗?或者我必须克制自己,以避免在大量流量下抓取我的观点? 解决方法 使用partial有明显的开销,但这不是你应该担心的事情. 部分是文件.当你渲染一个没有局部的动作时,你的动作“花费”1个文件(这不是完全正确的,但这是为了简化
我可以尽可能多地使用部分内容吗?或者我必须克制自己,以避免在大量流量下抓取我的观点?

解决方法

使用partial有明显的开销,但这不是你应该担心的事情.

部分是文件.当你渲染一个没有局部的动作时,你的动作“花费”1个文件(这不是完全正确的,但这是为了简化解释).
如果您的操作呈现4个部分,则最终成本为5.这意味着,您有4个额外的IO调用,每个调用的实际成本取决于您的服务器负载,服务器性能等.

但这个成本是否重要?根据我的经验,99%的时间没有.另外值得注意的是,在代码可读性和可维护性方面使用partials的好处通常值得选择.

如果表演必须是一个关键特征,你应该在其他地方寻找速度和改进.

请记住:Ruby不是一种超快的编程语言,代码表达总是首先支持性能. Rails暗中同意这个约定,尽管Rails团队一直专注于表演(而Rails 3则是实际演示,总是有改进的地方)

也就是说,您可以使用一些聪明的缓存机制安全地使用partials并减少应用程序开销.例如,您可以将集合渲染放在缓存块中,这样渲染集合语句只会执行一次,然后您的应用程序将只加载1个缓存文件而不是10个未缓存的部分.

我在开始时多次出现的最隐秘的错误之一是担心错误的表现,即没有实际运行基准测试.我记得曾经有一次,当我试图放弃一个单一的数据库查询而支持硬编码哈希,因为“查询成本”,没有意识到还有一个其他愚蠢的查询正在加载一个没有include语句的整个表集合,导致运行第二个查询慢3倍.

所以,如果你真的关心性能,你可能不应该避免使用partials,而是确保你利用Rails为扩展你的应用程序提供的所有其他功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读