Крупнозернистый против мелкозернистого - PullRequest
103 голосов
/ 22 сентября 2010

В чем разница между крупнозернистым и мелкозернистым?

Я искал эти термины в Google, но не смог найти их значения.

Ответы [ 10 ]

110 голосов
/ 22 сентября 2010

Из Википедия (гранулярность) :

Гранулярность - это степень, в которой система разбивается на мелкие части, либо сама система, либо ее описание, либо наблюдение.Это степень, в которой большая сущность подразделяется.Например, ярд, разбитый на дюймы, имеет более высокую степень детализации, чем ярд, разбитый на футы.

Крупнозернистые системы состоят из меньшего количества более крупных компонентов, чем мелкозернистые системы;грубое описание системы относится к большим подкомпонентам, а подробное описание относится к более мелким компонентам, из которых состоят более крупные компоненты.

27 голосов
/ 27 мая 2015

Проще говоря

  • Крупнозернистый - более крупные компоненты, чем мелкозернистые, большие подкомпоненты.Просто объединяет один или несколько детализированных сервисов в более грубую операцию.
  • Мелкозернистый - более мелкие компоненты, из которых состоят более крупные, более низкого уровня обслуживания

Лучше иметь более крупные операции обслуживания, которыесоставлены мелкозернистыми операциями

enter image description here

19 голосов
/ 13 января 2016

Грубо говоря: Несколько объектов содержат много связанных данных, поэтому сервисы имеют более широкий спектр функциональных возможностей. Пример: один объект «Учетная запись» содержит имя клиента, адрес, остаток на счете, дату открытия, дату последнего изменения и т. Д. Таким образом: Увеличена сложность конструкции, уменьшено количество ячеек для различных операций

Мелкозернистый: Больше объектов, каждый из которых содержит меньше данных, поэтому сервисы имеют более узкую область действия по функциональности. Пример: объект Account содержит баланс, объект Customer содержит имя и адрес, объект AccountOpenings содержит дату открытия и т. Д. Таким образом: Уменьшена сложность конструкции, увеличено количество ячеек для различных сервисных операций. Это отношения, определенные между этими объектами.

6 голосов
/ 04 марта 2015

Еще один способ понять это думать с точки зрения связи между процессами и потоками. Процессы взаимодействуют с помощью грубых механизмов связи, таких как сокеты, обработчики сигналов, общая память, семафоры и файлы. Потоки, с другой стороны, имеют доступ к общему пространству памяти, которое принадлежит процессу, что позволяет им применять более точные механизмы связи.

Источник: параллелизм Java на практике

2 голосов
/ 13 декабря 2017

В терминах набора данных, подобного текстовому файлу, грубое значение означает, что мы можем преобразовать весь набор данных, но не отдельный элемент в наборе данных. В то время как точное определение означает, что мы можем преобразовать отдельный элемент в наборе данных.

2 голосов
/ 20 января 2015

В контексте услуг:

http://en.wikipedia.org/wiki/Service_Granularity_Principle

По определению, грубая сервисная операция имеет более широкий охват чем мелкозернистый сервис, хотя условия относительны. первый тип обычно требует повышенной сложности конструкции, но может уменьшить количество звонков, необходимых для выполнения задачи.

Интерфейс мелкозернистого сервиса примерно такой же, как и у болтливого интерфейса.

1 голос
/ 29 марта 2019

Подробные услуги предоставляют более широкие функциональные возможности по сравнению с подробными услугами.В зависимости от бизнес-сферы можно создать один сервис для обслуживания одного бизнес-подразделения или создать несколько специализированных детализированных сервисов, если подразделения в значительной степени независимы друг от друга.Грубый сервис может стать более трудным, может быть менее адаптируемым к изменениям из-за его размера, в то время как детальный сервис может создать дополнительную сложность управления несколькими сервисами

1 голос
/ 08 ноября 2018

Крупнозернистый и мелкозернистый оба думают об оптимизации ряда услуг. Но разница в уровне. Мне нравится объяснять на примере, вы легко поймете.

Мелкозернистый : Например, у меня есть 100 служб, таких как findbyId, findbyCategry, findbyName ...... и так далее. Вместо того, чтобы много услуг, почему мы не можем предоставить найти (идентификатор, категория, имя .... и так далее). Таким образом, мы можем уменьшить количество услуг. Это только пример, но цель состоит в том, как оптимизировать количество услуг.

Крупный : Например, у меня есть 100 клиентов, у каждого клиента есть свой набор из 100 услуг. Поэтому я должен предоставить 100 * 100 услуг. Это очень сложно. Вместо этого я идентифицирую все общие службы, которые применяются для большинства клиентов, как один набор служб, а остальные - отдельно. Например, на 100 услуг распространено 50 услуг. Так что я должен управлять только 100 * 50 + 50.

1 голос
/ 22 августа 2017

крупнозернистый и мелкозернистый. Оба эти режима определяют, как разделяются ядра между несколькими задачами Spark. Как следует из названия, мелкозернистый режим ответственность за совместное использование ядер на более детальном уровне. Мелкозернистый режим устарел и теперь будет удален.

1 голос
/ 18 сентября 2015

Крупнозернистая гранулярность не всегда означает большие компоненты, если вы в буквальном смысле понимаете слово грубое, это означает грубость или несоответствие. например В управлении программными проектами, если разбить небольшую систему на несколько компонентов, которые равны по размеру, но различаются по сложности и функциям, это может привести к грубой детализации. И наоборот, для мелкозернистой разбивки вы должны разделить компоненты на основе их согласованности функций, предоставляемых каждым компонентом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...