Rails元编程和性能

3

Rails 的约定强制框架和 gem 作者广泛使用反射/元编程。我一直认为元编程效率较低,并且随着使用越来越多的 gem 的趋势,问题是 - 性能影响如何?


我认为这与Rails的惯例无关。许多事情使用元编程绝对更容易解决(并且后期更易于维护)。 - Mladen Jablanović
这与惯例有关,因为大多数方法都通过通配符处理(例如,请查看activerecord、actionpack等)。而在配置是规则的框架/语言中,很少使用方法反射,例如J2EE。 - Syed Ali
Java和Ruby是如此不同,以至于在谈到Web框架之前,每一种可能的比较都会失败。顺便说一句,“元编程”是一个非常广泛的术语(正如@shingara已经提到的)。你主要是想到method_missing吗? - Mladen Jablanović
是的,我知道它们是不同的,Java示例只是为了明确说明我所说的元编程需求,这些需求源于Rails的惯例优先配置哲学。method_missing就是其中之一,反射技术如respond_to?、class等也是。 - Syed Ali
2个回答

3

程序员的生产力 >> 软件性能(通常情况下)

实际上,不用担心这个... 在实践中,正确的算法、正确的架构、正确的数据库模型等比纯语言性能更重要...

不用花费精力去对抗语言(如Java XML地狱、C编译等),而是将精力投入到设计更好的算法、用户体验上,从而得到更好、更友好的应用。


1
虽然你的说法对于大部分网络应用程序来说是正确的(大多数应用程序在其生命周期内都无法接近被认为是高流量的水平),但我担心的是,Rails 中过度反射是否使其不适合极高流量的网站。 - Syed Ali
请翻译以下和编程有关的内容,将翻译后的文本返回:最后一句话听起来有点负面,即“不适用于极高流量的网站”。更好的说法是,如果反射存在缺陷,我们需要开始放手,一旦需要提高性能,就像有时候使用SQL查询而不仅仅依赖ORM一样。 - Syed Ali

0

真的取决于什么样的元编程。有些在运行时没有性能影响,只是启动时稍微慢一点。

在你的情况下进行基准测试,看看有什么影响。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接