В объектно-ориентированном программировании тип включает набор членских полей. Эти поля могут быть сохранены или значением или ссылкой (т.е. указатель на значение).
В мелкой копии, новый экземпляр типа создается, и значения копируются в новый экземпляр. Ссылочные указатели также копируются точно так же, как значения. Поэтому ссылки указывают на исходные объекты. Любые изменения в участниках, которые хранятся ссылкой, появляются и в оригинале и в копии, так как никакая копия не была сделана из ссылочного объекта.
В глубокой копии, поля, которые хранятся значением, копируются как прежде, но указатели на объекты, хранившие ссылкой, не копируются. Вместо этого глубокая копия сделана из ссылочного объекта, и указатель на новый объект хранится. Любые изменения, которые внесены в те ссылочные объекты, не будут влиять на другие копии объекта.
Есть пример в репозитории подрывной версии Simple HTTP .
Он демонстрирует рыночные данные в реальном времени с использованием кометы и только одного потока, отправляющего обновления любому количеству клиентов. Simple имеет прозрачный транспортный уровень, который обеспечивает семантику блокирующего ввода-вывода с преимуществом асинхронной отправки с NIO на основе фиксированных очередей ByteBuffer для каждого подключенного клиента. Таким образом, вы получаете плавный прозрачный вывод NIO с предсказуемым потреблением памяти. Также измерения производительности серверов, таких как Jetty, показывают увеличение производительности в 2 раза
You may want to look at Jetty, and in particular, Hightide
Hightide is pre-configured with state-of-the-art Ajax communication libraries such as DWR, ActiveMQ-Web (JMS to the browser), and the Bayeux protocol (also known as cometd). Deploying your applications on Hightide means that it will scale smoothly thanks to a combination of Jetty's smart IO layer and continuations mechanism
Specifically, a lot of work has been put in to optimise Jetty for AJAX. See this blog entry for more details