Относительная производительность сборщика мусора в Java (G1)?

В MVP представление рисует данные от ведущего, который рисует и подготавливает / нормализует данные от модели, а в MVC контроллер рисует данные из модели и задает путем нажатия на представление.

В MVP вы можете иметь один просмотр, работающий с несколькими типами презентаторов, и один ведущий, работающий с разными множественными представлениями.

MVP обычно использует какую-то структуру привязки, такую ​​как инфраструктура привязки Microsoft WPF или различные рамки привязки для HTML5 и Java.

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

Итак, если, например, модель представляет собой автомобиль, то ведущий - это своего рода автомобиль ведущий, раскрывает свойства автомобиля (год, производитель, места и т. д.). Представление знает, что текстовое поле, называемое «автопроизводителем», должно отображать свойство создателя презентатора.

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

Эта привязка, если вы ее разделите, это на самом деле контроллер :-)

Итак, вы можете посмотреть MVP как эволюцию MVC.

MVC замечательный, но проблема в том, что обычно его контроллер на просмотр. Контроллер A знает, как установить поля View A. Если теперь вы хотите, чтобы View A отображал данные модели B, вам нужен контроллер A, чтобы знать модель B, или вам нужен контроллер A для получения объекта с интерфейсом - это похоже на MVP только без привязок, или вам нужно переписать набор UI-кода в контроллере B.

Заключение. MVP и MVC являются как развязкой шаблонов пользовательского интерфейса, но MVP обычно использует фреймворк привязок, который является MVC снизу. THUS MVP находится на более высоком архитектурном уровне, чем MVC, и шаблон оболочки выше MVC.

30
задан Haywood Jablomey 19 July 2010 в 17:09
поделиться

3 ответа

Мы только что закончили серию испытаний на CMS и G1, используя сопоставимую эргономику. Это зависит от продукта и очень субъективно, И мы используем Java 6 (поэтому G1 находится в сборке «предварительного просмотра»), но ...

Система, использующая CMS, работает на 20% быстрее, чем G1. Это было протестировано с кучей пространства 8 ГБ и 12 ГБ, с молодой и 1,5 ГБ памяти (соответственно).

Опять же - субъективная, единая система, специфическая нагрузка - но это наш опыт.

3
ответ дан Ran Biron 19 July 2010 в 17:09
поделиться

В этой статье Taranfx (2009-08-29) сравнивается производительность Java 5, 6 и 7 на 4 простых тестах.

0
ответ дан Chadwick 19 July 2010 в 17:09
поделиться

Исходная научная статья ( «Первая сборка мусора» Детлефсом, Флудом, Хеллером и Принтезисом) содержит некоторые подробности о реальных мерах (в разделе 4).

8
ответ дан 27 November 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: