Language agnostic 什么是;“重量轻”;在讨论一个框架时

Language agnostic 什么是;“重量轻”;在讨论一个框架时,language-agnostic,terminology,Language Agnostic,Terminology,我正在学习JavaEE框架,在学习的过程中,我遇到了术语“轻量级”应用程序或类。 这个词指的是什么?人们如何说这个应用程序是一个轻量级的应用程序?使应用程序“轻量级”的标准是什么?我通常认为“轻量级”是指低资源消耗(CPU、内存、网络带宽、文件句柄等) 但是其他人可能会编写一个非常臃肿的应用程序,但是为它创建一个简单的API,并声明它“轻量级” 您可以质疑它的含义,但不太可能得到明确的答案。轻量级通常指的是它的内存占用、安装大小,甚至是启动时间。如果一个框架仅使用30MB来运行,而平均框架需要1

我正在学习JavaEE框架,在学习的过程中,我遇到了术语“轻量级”应用程序或类。
这个词指的是什么?人们如何说这个应用程序是一个轻量级的应用程序?使应用程序“轻量级”的标准是什么?我通常认为“轻量级”是指低资源消耗(CPU、内存、网络带宽、文件句柄等)

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


您可以质疑它的含义,但不太可能得到明确的答案。

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

对于它没有一个一致的用法,但它通常会调用

  • 它需要较少的对其他库和API的依赖
  • 配置和设置较少
  • 可能更快,但代价是功能更少
一个很好的例子可能是将“轻量级”Spring框架与旧的EJB标准进行比较。Spring引入了使用注释将业务逻辑注入代码以及自动连接的思想。另一方面,EJB过去需要大量配置,依赖于JNDIAPI,并且必须在应用服务器中运行


为了让人们不觉得我有偏见,EJB3.1大大改进了事情。

轻量级意味着一种解决方案/技术,它可以避免未实现的内存/对象或更一般的资源消耗。 它通常是一个更智能的解决方案


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

轻量级也可用于描述故意缺少功能以提供更简单API或具有更少外部依赖性的库。例如,允许您按标记、ID或类获取元素,但不允许您编写自己的XPath查询的HTML解析器可能被称为轻量级解析器,特别是当用户不必为了使用它而安装那么多或任何其他库时


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

这是一个流行词,意思是“简单且好”。-)它的营销炒作,可能意味着什么,也可能不意味着什么。通常我听到说线程是轻量级的,而进程是重量级的。它没有任何意义。另外,从技术上讲,JavaEE是框架。还有很多其他的web框架在Servlet规范上工作,Servlet规范是JavaEE的一部分,但是这些框架本身我不这么认为。(老实说,JavaEE本身就是一个巨大的保护伞,将其应用于任何一件事情往往都是毫无意义的。)基本上,它可能意味着“资源使用率低”——尽管我怀疑大多数声称这一点的框架都懒得测试,此外,框架的启动时间通常由包含appserver和应用程序的启动时间决定。也就是说,如果你有一个五层的应用程序,它被过度设计到了极点,那么你的框架将不会使它更快。或者它可能意味着“简单的API”,这是一个有效的优势,但是为什么不这么说呢?或者它可能意味着“低概念开销”,但这也意味着框架实际上做不了什么。