Последний проект Джеймса Гослинга привлек к себе огромное внимание. Мы тоже активно следим за его развитием. Оказалось, что он использует Jelastic для своих разработок.
Рубрика «jvm» - 12
Океаны, роботы и Java
2012-09-03 в 10:44, admin, рубрики: java, jvm, linux, paas, Блог компании Jelastic, Облачные вычисления, океан, Программирование, робототехника, роботы, метки: java, jvm, linux, paas, облачные вычисления, океан, Программирование, робототехника, роботыРазмещаем индекс Lucene в RAM при помощи Azul Zing JVM
2012-08-01 в 14:13, admin, рубрики: garbage collector, java, jvm, высокая производительностьВесь поисковый индекс Google размещается в RAM памяти уже как минимум 5 лет. Почему бы не попробовать сделать то же самое и с поисковым индексом для Lucene?
В последнее время, оперативная память стала весьма недорога, поэтому для высоконагруженных ресурсов, вполне резонно ожидать серьезного улучшения производительности за счет размещения поискового индекса целиком в оперативной памяти.
Очевидный вопрос – не попробовать ли нам загрузить весь индекс, в предоставляемый Lucene класс RAMDirectory?
Читать полностью »
GC и большой heap: друзья или враги?
2012-07-23 в 15:51, admin, рубрики: garbage collector, java, jvm, высокая производительность, метки: garbage collector, java, jvmСпоры о том, что лучше: ручное управление или автоматическое ведутся во многих областях науки и техники. Положиться на человека или отдаться на откуп бесстрастным механизмам и алгоритмам? Похоже, что в мире создания Enterprise решений чаша весов склонилась все-таки в сторону автоматического управления памятью, большей частью из-за того, что возиться с указателями, ручным управлением памятью и закрашивать седину после каждого бага, появившегося из-за «неправильного» компилятора С/C++ не хочется сейчас уже никому. Но до сих пор возникают на форумах топики, где не сдающиеся суровые приверженцы ручного управления памятью яростно и непримиримо отстаивают свои ретроградные взгляды в борьбе с прогрессивной частью человечества. Пусть их, оставим их в покое.
Одной из наиболее часто использующихся платформ с механизмами автоматического управления памятью стала Java. Но, автоматическое управление памятью принесло не только комфорт в нелегкий труд программистов, но и свои недостатки, с которыми приходиться сталкиваться всё чаще и чаще. Современные многопользовательские приложения, способные обработать огромный поток транзакций, требуют значительных аппаратных ресурсов, размеры которых раньше было трудно даже вообразить. Однако, дело не в размерах этих ресурсов, дело в том, что сборщик мусора, существующий в большинстве современных JVM, не может работать эффективно с большими объемами памяти.
Читать полностью »
Крадущийся тигр, затаившийся дракон
2012-06-16 в 10:17, admin, рубрики: .net, clr, generics, java, jvm, linq, Программирование, метки: .net, c++, clr, generics, java, jvm, linqJava vs. C#… Что может быть лучше вечного спора? Нет, данная статья не посвящена очередному бенчмарку, и даже не является holy war, не стоит даже вопрос: «кто круче».
Для каждой задачи существует свой инструмент. Сравнивать C# и Ruby, например, не имеет смысла, т.к. их целевое предназначение совершенно разное, да и природа также. Однако именно C# и Java являются наиболее близкими по своей философии.
Очень часто коллеги, пишущие на Java, даже не подозревают о многих (!!!) вещах, которые предоставляет (или, наоборот не предоставляет) C#.
Если Вам интересно посмотреть на C# и Java без субъективизма, а также узнать внутреннее устройство той или иной возможности, тогда вперед.
Читать полностью »
Функциональное мышление: Функциональные шаблоны проектирования, часть 3
2012-06-10 в 10:28, admin, рубрики: clojure, functional programming, groovy, java, jvm, scala, Программирование Нил Форд, Архитектор ПО, ThoughWorks Inc.
15 Мая 2012
перевод статьи Functional thinking: Functional design patterns, Part 3
Серия «Функциональное мышление» (часть 1, часть 2) продолжает исследование альтернативных, функциональных решений шаблонам проектирования Банды Четрых (англ. Gang of Four, GoF). В этой части я буду исследовать наименее понимаемый, но наиболее мощный из шаблонов проектирования: «Интерпретатор» (англ. Interpreter).
Читать полностью »
Функциональное мышление: Функциональные шаблоны проектирования, часть 2
2012-04-24 в 22:07, admin, рубрики: functional programming, groovy, jvm, Программирование Нил Форд, Архитектор ПО, ThoughWorks Inc.
03 Апреля 2012
перевод статьи Functional thinking: Functional design patterns, Part 2
В последней части (на хабре), я начал исследование взаимодействия традиционных шаблонов “Банды четырех” (Gang of Four, GoF) и более функциональных подходов. Я продолжу разбор в этой части, показывая решение типичных проблем в рамках 3х различных парадигм: паттерны, метапрограммирование и композиция функций.
Если первичная парадигма, которая поддерживается вашим ЯП объектная, то намного проще думать о решении каждой проблемы в рамках ее терминов. Тем не менее, большинство современных языков программирования являются мультипарадигменными, это значит, что они поддерживают объекты, метаобъекты, функциональную и другие парадигмы. Изучение использования различных парадигм для наиболее подходящего решения проблемы — часть эволюции в лучшего разработчика.
Читать полностью »
Функциональное мышление: Функциональные шаблоны проектирования, часть 1
2012-04-23 в 6:39, admin, рубрики: functional programming, groovy, jvm, Программирование, метки: functional programming, groovy, jvm Нил Форд, Архитектор ПО, ThoughWorks Inc.
06 Марта 2012
перевод статьи Functional thinking: Functional design patterns, Part 1
Некоторые представители функционального мира утверждают, что концепция шаблонов проектирования содержит недостатки и ей нет места в мире функционального программирования(далее ФП). Это мнение может быть подтвержено используя довольно узкое определение слова шаблон(pattern), но это больше касается семантики, чем реально использования.
Концепция шаблона проектирования — именованное, представленное в виде каталога решение для распространенной проблемы- живо и здравствует.Тем ни менее, шаблоны могут принимать различные обличья, в рамках разных парадигм. Учитывая, что подходы к построению программ и решению проблем в функциональном программировании другие, некоторые шаблоны «Банды четырех»(Gang of Four, GoF) исчезают, другие сохраняют проблему, но решают ее радикально по-другому.Эта часть и несколько других будет содержать в себе исследования некоторых традиционных шаблонов проектирования и переосмыслять их в рамках функционального подхода.
Читать полностью »
Релиз Clojure 1.4
2012-04-16 в 17:51, admin, рубрики: clojure, jvm, Программирование, метки: clojure, jvm, ЛиспПосле нескольких месяцев разработки вышла новая версия языка Clojure — 1.4. Clojure — Lisp'образный язык общего назначения, работающий на платформах JVM и .Net, известный специальными средствами для упрощения разработки concurrency кода.
Среди изменений стоит отметить:
Читать полностью »
Загрузка классов в серверах приложений, особенности JBoss AS 7
2012-03-16 в 14:39, admin, рубрики: classloader, intellij idea, java, jboss, jboss as 7, jvm, maven, метки: classloader, intellij idea, java, jboss, jboss as 7, jvm, mavenJava характеризуется динамической загрузкой классов. Для поиска и загрузки используется механизм делегирующих classloader'ов. В Java SE окружении их количество ограничивается 2-3, но в серверах приложений оно приближается к 10 иерархическим classloader'ам. Этим объясняется большое время запуска (обычно от минуты) и деплоя приложений.
В JBoss AS 7 разработчикам удалось сильно сократить время запуска (пустой appserver запускается за 3-4 секунды на рабочей станции). Этому способствовала новая система загрузки классов в данном сервере приложений. Такой подход всё же обладает своими недостатками.
Данная статья касается механизма загрузки классов в различных окружениях, особенностях работы с JBoss AS 7, сопряжения с системой сборки Apache Maven и IDE IntelliJ IDEA.
Читать полностью »
JAVA / Немного про повторное использование объектов
2012-02-15 в 14:55, admin, рубрики: jvm, kotlin, performance, метки: jvm, kotlin, performance
Недавно я наткнулся на блог, который ведет Peter Lawrey. Там можно найти интересную информацию, которая касается производительности кода под JVM.
Там я нашел непривычный подход, который состоит в повторном использовании объектов. Непривычен он по нескольким причинам:Общепринятое мнение, что создание объектов сейчас настолько быстрое, что не стоит обращать на него внимание
Этот подход редко где используется, и на это должны быть причины.
Но существует область, где преимущества этой концепции можно заметить. Это сериализация (вернее, десериализация) объектов. Дело в том, что в этом случаеЧитать полностью »

