Ruby 比较;“尺寸”;共有2个图书馆

Ruby 比较;“尺寸”;共有2个图书馆,ruby,image,docker,containers,Ruby,Image,Docker,Containers,如果我想比较两个库的大小,比如说Sinatra和Rails,那么最准确的方法是什么 我正在考虑创建以下两个docker图像并比较它们的大小,但不确定是否需要比较图像、容器或两者(无论出于何种原因): A-{Base Stuff}+Ruby+Sinatra B-{Base Stuff}+Ruby+Rails 这是一个很好的方法还是我想做一些不同的事情?从技术上来说,有几种方法可以比较库的大小,但真正的问题是,你从这些比较中得到了什么 Sinatra在几乎所有你能想到的指标上都比Rails“小”:

如果我想比较两个库的大小,比如说Sinatra和Rails,那么最准确的方法是什么

我正在考虑创建以下两个docker图像并比较它们的大小,但不确定是否需要比较图像、容器或两者(无论出于何种原因): A-{Base Stuff}+Ruby+Sinatra B-{Base Stuff}+Ruby+Rails


这是一个很好的方法还是我想做一些不同的事情?

从技术上来说,有几种方法可以比较库的大小,但真正的问题是,你从这些比较中得到了什么

Sinatra在几乎所有你能想到的指标上都比Rails“小”:

  • 代码行
  • 按代码列出的内存使用情况
  • 如果使用库,则应用程序的内存使用情况
  • 依赖项数
  • 库中的代码行+依赖项
  • 库+依赖项的内存使用
Sinatra做的也比Rails少很多(我认为准确地说Sinatra做的每件事,Rails在某些方面也做了)

但由于轴的数量,这种比较不容易推广到任意库。考虑图书馆A,它是一个围绕C库的薄包装,和一个库B:< /P>
  • 库A的代码行数少于库B
  • 库A+依赖项的代码行数比库B多
当您使用A或B时,它们都使用它们的依赖关系,那么哪一个“更小”


或者,将纯Ruby库(如net/http)与由C扩展或C库支持的库(如URB)进行比较。纯Ruby库的代码行可能更少,但内存占用更大,性能更低。C库可能有更多的代码行、更高的性能和更小的内存占用。但是,如果将不带curl的加铺(支持C库)与net/http进行比较,则加铺的代码行可能更少。

如何定义“大小”?它是Ruby特有的吗?它包括从属宝石吗?我不会不必要地把Docker引入这件事;您可以通过Bundler供应商树或rbenv或rvm gemset获得更简单的隔离。如何使用这两个框架构建相同的应用程序,并比较您必须编写的代码和所需的工作量?为什么您可以通过rbenv或rvm gemset获得更简单的隔离?您是否保证将其与系统ruby gems隔离?我想是的,但我不是100%确定。