【问题标题】:Does using eval() increase memory consumption?使用 eval() 会增加内存消耗吗?
【发布时间】:2011-07-13 11:21:53
【问题描述】:

我编写了一些 Javascript(特别是 jQuery 插件),其中我用 eval 的结果替换了一些标签的内容,以提供某种模板机制。

我的问题是:反复使用 eval() 会导致内存问题吗?

我问的原因是,当我用 Firebug 查看加载的脚本时,我看到那里列出了所有经过评估的代码,所以我担心如果用户在浏览器中使用这个应用程序,它可能会导致问题有记忆。

【问题讨论】:

  • 一位智者曾经说过:如果eval()是答案,那你肯定问错了!
  • 取决于您的评估代码。先上传一些。
  • 我不知道内存消耗,但已知eval()ed 代码运行速度要慢得多。
  • @spudley - 只是它需要被解析两次 - 与通过网络拖运内容/解析后执行相比,这通常是一个很小的开销。
  • @BenM:有趣,@Starx:好主意,@Spudley:问题是关于记忆的

标签: javascript memory


【解决方案1】:

除了使用 eval 是个坏主意之外,几乎可以肯定的是,在设置它时会有一些内存开销。

由于没有机会进行缓存或其他优化,评估代码也不会得到优化**。

** 取决于浏览器。

【讨论】:

  • 好吧,我真的不能接受这个答案,因为问题是 eval() 是否会增加内存消耗,而你给了我一个“几乎可以肯定”,这与“也许”非常接近。跨度>
  • 那么您对所有不同类型的 javascript 引擎/浏览器/编码方式/使用 eval 的方式有什么期望??
  • 你是否有一个链接可以解释在任何浏览器(即使只有一个)中使用 eval() 的开销(特别是从内存的角度来看)?
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 2013-02-22
  • 2010-10-08
相关资源
最近更新 更多