【问题标题】:What does "light weight" mean when discussing a framework讨论框架时“轻量级”是什么意思
【发布时间】:2013-10-02 17:22:06
【问题描述】:

我正在学习 Java EE 框架,在学习时我遇到了术语“轻量级”应用程序或类。 这个词指的是什么?人们怎么说这个应用程序是一个轻量级的应用程序?使应用程序“轻量级”的标准是什么?

【问题讨论】:

  • 这是一个流行语,意思是“简单又好”。 :-)
  • 营销炒作可能意味着也可能没有任何意义。
  • 通常我听说线程是轻量级的,进程是重量级的
  • 它没有任何意义。此外,从技术上讲,Java EE 是框架。还有很多其他的 Web 框架可以在 Servlet 规范上运行,它是 Java EE 的一部分,但我不会将这些框架本身算作这样。 (老实说,Java EE 本身就是一个巨大的保护伞,以至于将它应用到任何单一事物上都没有任何意义。)
  • 基本上,它可能意味着“资源使用率低”——尽管我怀疑大多数提出这种说法的框架都懒得测试,但框架的启动时间通常由包含应用服务器的启动时间和你的申请。 IE。如果你有一个五层的应用程序,它被过度设计到了地狱,你的框架不会让它变得更快。或者它可能意味着“简单的 API”,这是一个有效的优势,但为什么不这么说,或者“低概念开销”,但这也往往意味着框架实际上并没有做太多。

标签: language-agnostic terminology


【解决方案1】:

它的用法并没有达成一致,但它通常会引用这样的想法:

  • 它需要更少的对其他库和 API 的依赖
  • 配置和设置较少
  • 可能会更快,但功能更少

一个很好的例子可能是将“轻量级”Spring 框架与旧的 EJB 标准进行比较。 Spring 引入了使用注释将业务逻辑注入代码的想法,以及自动装配。另一方面,EJB 过去需要大量配置、依赖 JNDI API,并且必须在应用服务器中运行。

只是为了让人们不会觉得我有偏见,EJB 3.1 已经大大改进了事情。

【讨论】:

    【解决方案2】:

    我通常认为“轻量级”是指低资源消耗(CPU、内存、网络带宽、文件句柄等)。

    但其他人可能会编写一个非常臃肿的应用程序,但为它创建一个简单的 API,并将其声明为“轻量级”。

    你对它的含义提出质疑是对的,但不太可能得到明确的答案。

    【讨论】:

      【解决方案3】:

      轻量级通常指的是它的内存占用、安装大小,甚至是启动时间。如果一个框架只使用 30MB 来运行,而平均框架需要 100MB+ 来运行,那么它可以声称它是轻量级的。同样,如果与平均 5 秒相比,它只需要 0.5 秒即可运行,那么它可以做出相同的声明。不过,它们通常定义轻量级。

      【讨论】:

        【解决方案4】:

        轻量级意味着避免不必要的内存/对象或更一般的解决方案/技术:资源消耗。 它通常是更智能的解决方案。

        (虽然更好更快的算法(具有更好的最坏情况行为)不被称为轻量级)

        【讨论】:

          【解决方案5】:

          轻量级也可用于描述故意缺少功能以提供更简单的 API 或具有更少外部依赖项的库。例如,允许您通过标签、ID 或类获取元素但不允许您编写自己的 XPath 查询的 HTML 解析器可能被称为轻量级,特别是如果用户不必在为了使用它。

          正如其他人所说,出于同样的原因,轻量级库通常也提供更轻的资源消耗。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-03-12
            • 2010-09-09
            • 2013-05-31
            • 2012-05-15
            • 2015-02-09
            相关资源
            最近更新 更多