粗粒度与细粒度

Lov*_*eTW 112 terminology granularity

粗粒度和细粒度之间有什么区别?

我在谷歌搜索过这些术语,但我找不到他们的意思.

Mic*_*tta 120

来自维基百科(粒度):

粒度是指系统被分解为小部分的程度,无论是系统本身还是描述或观察.它是一个更大的实体被细分的程度.例如,一个破碎成几英寸的院子比一个破碎成一英尺的院子具有更细的粒度.

粗粒度系统由比细粒度系统更少,更大的组件组成; 系统的粗粒度描述涉及大的子组件,而细粒度描述则涉及组成较大子组件的较小组件.


Tec*_*hie 32

简单来说

  • 粗粒度 - 比细粒度的大型子组件更大的组件.简单地将一个或多个细粒度服务组合成一个更粗粒度的操作.
  • 细粒度 - 较小的组件,较大的组件,较低级别的服务

最好是进行更细粒度的服务操作,这些操作由细粒度操作组成

在此输入图像描述


Hum*_*yan 20

粗粒度:一些对象持有大量相关数据,这就是为什么服务在功能上具有更广泛的范围.示例:单个"帐户"对象包含客户名称,地址,帐户余额,开放日期,上次更改日期等. 因此:设计复杂性增加,单元格数量减少到各种操作

细粒度:更多的对象每个包含更少的数据,这就是服务具有更窄的功能范围的原因.示例:Account对象保持余额,Customer对象保存名称和地址,AccountOpenings对象保存开放日期等. 因此:降低设计复杂性,增加各种服务操作的单元数.这些是在这些对象之间定义的关系.


小智 6

另一种理解方法是考虑流程和线程之间的通信.进程通过粗粒度通信机制(如套接字,信号处理程序,共享内存,信号量和文件)进行通信.另一方面,线程可以访问属于进程的共享内存空间,这允许它们应用更精细的粒度通信机制.

来源:实践中的Java并发性