Плитка под майолику

Не только начинающих керамистов волнует вопрос, майолика – что это такое и чем она отличается от изразцов (а может, и не отличается вовсе)? Керамику майолику чаще ассоциируют с Италией, где действительно долгое время был европейский центр изготовления самых разных художественных объектов в данной технике. Но у средиземноморской керамики давно появились яркие конкуренты, и это уже интересно.

Что такое майолика?

Это технология (или способ) изготовления керамики. Изначально под этим словом подразумевались любые глиняные изделия с обжигом, которые покрывались красками и глазурью. Сегодня активен спрос на плитку, изготовленную в технике maiolika (встречаются и такие варианты названий как mayolica, majolica). Ее уникальность в рельефной поверхности и особенных цветовых переходах.

Основной общий признак технологии – высокая молекулярная пористость, это значит, что материал достаточно гигроскопичен. Майоликовый продукт покрывается белой эмалью. Практически вся керамика, которую глазурируют (кроме «фаянса» и «каменной» керамики) – майолика.

Черепки могут быть сделаны из фаянсовой и полуфаянсовой, из терракотовой глины. Нередко майолику путают с изразцом. Последним называют плитку с румпой, объемным элементом с обратной стороны. Эта плитка может быть изготовлена способом майолики, но не обязательно им. Майолика – понятие более объемное. У нее много применений в художественном мире! Изразец – только один из видов архитектурной керамики.

Предлагаем вам посмотреть выпуск передачи «Галилео» о майолике:

Историческая справка

Если кратко, то история направления, вполне возможно, несколько тысяч лет назад началась в Египте, Ассирии и Вавилоне. И когда прекрасные керамические образцы попали в Европу, их путь пролегал через испанскую Майорку. Отсюда и название технологии. Собственная технология в Старом Свете появилась только в конце 16 века, благодаря стараниям голландцев.

Справка. Русский вклад в развитие направления – возникновение в Средневековье первых образцов глазурованной расписной керамики. С 18-ого столетия ее стали выпускать в промышленных масштабах, Гжельские и Ярославльские мастерские, а также Московский завод Гребенщикова стали флагманами производства.

Наиболее известные виды майолики

Распространение какого-то художественного направления по разным точкам земного шара – увлекательная аналитическая работа для культуролога. И равнодушно относиться к этому действительно не получается: в разных местах, культурах один и тот же технологический способ обрастал местным колоритом, художественными традициями. И архитектура, и скульптура, и разного рода керамический продукт (статуэтки, вазы), словно отпечаток национальной культуры, уникален и узнаваем.

Русская майолика

Стараниями князя Меньшикова в Стрельне, в 18 веке была основана керамическая фабрика. В основном продукцию использовали для декорирования храмов и светских зданий: подобный декор считался признаком роскоши, богатства. Большим спросом пользовалась сделанная способом майолики посуда.

Изразцы (русская майолика предполагает и их тоже), а также мелкая пластика и посуда прославили московскую фабрику Гребенщикова. В мастерских Гжели делали керамические изделия, способные конкурировать с московской продукцией. О том, что такое представляла майолика в то время, ярко говорит тот факт, что Васнецов, Врубель и Головин и другие известнейшие живописцы эпохи, выполняли изображения для русской керамики 19-20 веков.

Примеры русской майолики смотрите в этом видео:

Итальянская майолика

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

Помимо классического вида Италия породила меццо-майолику и полуфаянс (фаянс – это слово, возникшее вследствие географической привязки, крупного центра производства керамики Фаэнца).

В 16 столетии расписная керамика стала художественным новаторством в Италии: утилитарный смысл плавно перетек в декоративный. Роспись усложнялась, стала называться «прекрасным стилем», в каждом регионе Италии образовывалась своя школа. Популярной была роспись тарелок в рафаэлевском стиле. И хоть сам классик этим видом творчества не занимался, итальянскую майолику долго еще так и называли – рафаэлевской.

Арабские и турецкие майолики

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

Изящна турецкая керамика: звезды, цветущие сады, яркость мелких деталей и совершенство узора, тончайшая каллиграфия. Сегодня хозяйки специально ищут плитку-майолику на кухню в турецком стиле, чтобы готовить любимые лакомства в духовке (и не только в ней) в атмосфере Востока.

Португальские майолики

Традиционные бело-голубые керамические тона сплелись с современным паблик-Артом, и получилось азулежу – декоративный материал, гордость Португалии. Глиняная основа, покрытая глазурью плюс искусство ручной росписи: такими работами полон Лиссабон, да и вся страна!

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

Северные майолики

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

Майолика в интерьере квартиры, майоликовая посуда

Что такое сегодня майолика – посуда, декор, расписная плитка. Последний вариант самый трендовый.

Используется майолика для:

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

Справка. Майолика – это еще и самодостаточный арт-объект. Емкость (не то ваза, не то тарелка), панно в раме и другие декоративные вещи не требуют привязки к помещению и функциональной зоне. Примеры на фото доказывают это!

Цена майолики

Вид, размеры, характер росписи, бренд – факторы ценового решения. Условно один квадратный метр расписной майолики обойдется вам в 7-8 тысяч рублей. Вазы и тарелки можно заказывать в интернет-магазинах (от 700 рублей). Декоративный изразец – от 500 рублей, елочная игрушка – от 200 рублей, а большой набор игрушек – от 6000 рублей.

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

Что такое изразцы и майолика и чем они отличаются

Что такое майолика

Майолика — это технология или способ изготовления керамики. Майолику отличает от других видов керамики крупнопористый черепок, покрытый белой эмалью с последующим декорированием, которое может быть очень разным — от однородного глазурования полупрозрачными глазурями до росписи и живописи по эмали. Черепок может быть сделан из любой глины — терракотовой, фаянсовой, полуфаянсовой и т.д. и т.п. Главный общий признак такой керамики — достаточно высокая пористость на молекулярном уровне, как следствие, относительно сильная гигроскопичность (способность поглощать воду) и покрытие белой эмалью. Строго говоря, вся глазурованная керамика, кроме фарфора и т.н. «каменной» керамики — это майолика, если говорить о технологии и особенностях ее изготовления.

Наиболее известные майолики

Итальянские майолики — это, как правило, разнообразные изделия из красной и розовой (терракотовой) глины, покрытые эмалью и расписанные в ренессансном стиле: растительные и геометрические орнаменты, гротески и т. д.

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

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

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

Предыстория возникновения майолики — в попытках копирования белого китайского фарфора и его имитация. Отсюда покрытие белой глазурью керамических изделий из цветных глин, доступных мастерам прошлого. В России майолика заменила собой технологию ангобирования, т.е. покрытия красного черепка «ангобом» (жидкой белой глиной), как более легкая с технологической точки зрения. Наши предки не пытались имитировать китайский фарфор, но белая основа ярче проявляла краски, которые на белом фоне смотрелись намного лучше, чем на красном.

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

Что такое изразцы

А вот изразцы — это просто изделие — плитка с румпой (объемной «коробочкой» с оборотной стороны), которая может изготавливаться по технологии майолики, а может быть сделана из фарфора или «каменной» массы. Из майолики изготавливают посуду, декоративные облицовочные материалы, статуэтки — в общем, все что угодно. А изразцы — это всего лишь один из видов изделий, относящийся к архитектурной керамике.

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

О происхождении сине-белых росписей на керамике вы можете прочитать .
А о появлении фарфора в России .
Об изразцах .

Майорский Жемчуг — технология природы

Майорский жемчуг.

Настало время рассказать вам о таком удивительном и малопонятном словосочетании — майорский жемчуг.
Владеть подлинным морским жемчугом было привилегией богатых и могущественных вплоть до 19 века. Капля из жемчужной устрицы была (и остается) редкой и ценной, что делает ее очень желанным объектом. В те дни жемчуг использовался не только для ожерелий, браслетов, брошей и колец, но чаще, чем сегодня, его вплетали в волосы, нашивали на одежду, шляпы, восточные тюрбаны и платья для украшения или использовали в качестве пуговиц. В средние века жемчужины украшали великолепные обложки, реликвии и королевские шкатулки. Короче говоря, все, что должно было быть возвышено в духовной ценности, социальном престиже или эстетической привлекательности, было сделано с помощью жемчуга. Учитывая цену на жемчуг, люди в то время искали доступные альтернативы. В 17 веке парижский производитель четок обнаружил, что клейкий материал на чешуе рыбы можно использовать для покрытия стеклянных бусин. Это дало им определенное перламутровое мерцание. Затем, в 19 веке, японцы изобрели культивированный жемчуг, положив конец исключительной эксклюзивности жемчужных украшений высшего класса.

В те времена, когда жемчуг был более редким и ценным, чем бриллианты, немецкий иммигрант Эдуард Хьюго Хош, одержимый созданием идеальной жемчужины, впервые изобрёл процесс создания человеком органического жемчуга в производственных условиях. В 1890 году, после достижения успешной секретной формулы, жемчуг был представлен на выставке Paris Universal в Париже, после чего было принято решение о создании компании под названием «Societé des perles de Indes E. Heusch&Co». Это и был тот самый исторический момент, который сегодня считается датой основания фабрики. Несколькими годами позже, в Японии, был изобретён процесс создания жемчуга путём культивации, но безусловно, пионером идеи создания жемчуга человеком был Эдуард.

Для создания уникального процесса производства необходимо было находиться у моря, и при этом наблюдать процесс изготовления жемчужин лично. Для этого был выбран один из прекраснейших островов — Майорка, известный своими стеклодувными мастерскими и женщинами-рукодельницами. В столице острова — Пальма де Майорка, была основана первая жемчужная фабрика, на улице Миссо, 53, насчитывающая на тот момент 50 работников. В том же году в центральной части острова Майорка в городе Манакор была основана Фабрика Heusch&Co Casa HugoPearl.

Впоследствии название упростилось до емкого MAJORICA, которое читается по-разному. Большинство испанцев его произносят как «Maхopикa», тогда как баски, жители Барселоны, где находится головной офис, говорят «Maджopикa». Название «жемчужина Майорки», указывает на страну происхождения, относящуюся ко всем жемчужинам имитирующим природный жемчуг , произведенным на Майорке и изготовленным в основном таким же образом. Когда в 1948 году истек срок действия патента на семью основателя, были открыты многочисленные производственные фирмы.
Сегодня семь компаний конкурируют в производстве имитации жемчуга на солнечном острове. Состав перламутрового слоя для покрытия жемчуга варьируется от фирмы к фирме и является хорошо сохраняемым секретом.

Суть жемчуга МАЙОРКА такое явление, которое лежит между синтетическим и природным образованием. Происхождение его — антропогенное, контролируемое человеком, процесс создания жемчужины происходит в искусственных условиях. Ho сама по себе майорская жемчужина — образование, по своему химическому составу и ювелирным качествам аналогичное природному жемчуга.

Эдуард Хьюго Хoш начал эксперименты примерно в то же время, когда в Японии стали открывать фирмы культивированного жемчуга, сначала озерного, a потом морского. Но Эдуард пошел другим путем. Он изобрел технологию, позволяющую получать жемчужину за 10–40 дней в зависимости от требуемого размера. При этом внешний вид изделий majorica отличает качество перламутра, радужный перелив и блеск, присущие лучшим сортам морского жемчуга.

При производстве жемчуга используется процесс полимеризации. Во-первых, крошечная искусственная сердцевина, состоящая из белого непрозрачного стекла, хрусталя или раковины, закрепляется на специальной подставке. Затем это ядро ​​погружают в перламутровую смесь, вынимают, сушат и снова погружают до 40 раз. В каждой из этих операций жемчужина покрыта еще одним чрезвычайно тонким слоем, который нагревается газовой горелкой. Подробности технологии производства — ноу-хау (секрет) фирмы и поэтому держаться в тайне, но приблизительный алгоритм известен. Ядро будущего украшения из фарфора или стекла опускают в раствор, точный состав которого и есть главный секрет каждого производителя.

Известно лишь, что в него входит порошок из настоящего жемчуга или перламутра (материала раковин моллюсков), измельченная чешуя некоторых рыб, предположительно играющая роль связующего вещества, и масло. Несмотря на свое название, перламутровая смесь состоит не из дробленого перламутра, а из мелких частиц морских животных, таких как мидийный песок или рыбья чешуя (которые использовались производителем четок более 200 лет назад). Наконец, жемчуг полируется и покрывается специальным лаком, готовым к продаже с 10-летней гарантией, гарантирующей его высокое качество. Цветные минералы также можно добавлять в ванну, чтобы придать жемчугу любой желаемый цвет и оттенок.
Ядро выдерживается в этой смеси несколько минут, после чего извлекается, просушивается, в том числе под ультрафиолетом, и цикл повторяется. После определенного момента в него входит шлифовка жемчужины. Всего таких циклов — от 20 до 40, в зависимости от размеров бусины, которую нужно получить.

В результате выходит изделие c искусственным ядром, покрытое толстым и прочным слоем настоящего перламутра, в состав которого входят кoнхиoлин и арагонит, как y природного жемчуга.

Технология позволяет выдерживать качество изделий на высоком уровне — y «мaйopики» не бывает неправильных форм, кроме эллиптических и грушевидных (согласно технологическому заданию), этот жемчуг лишен дефектов, сколов, трещин и царапин. Его несомненное достоинство — толстый и прочный слой перламутра, обеспечивающий великолепную игру цвета.
Поверхность гладкая и имеет более твердую и, следовательно, более прочную поверхность, чем натуральный жемчуг, поэтому ни пот, ни макияж, ни духи, ни тепло, ни холод не могут повредить его.

Физические свойства «мaйopики» — жемчужного аналога:
Твердость — от 2,5 до 4 по Moocy;
Радужный блеск, интерференция цвета, какой обладает только природный минерал;
Высокая прочность и износостойкость;
Нечувствительность к режиму влажности;
Долгий срок жизни изделия.

В отличие от природного жемчуга (вне зависимости — дикого или культивированного), «мaйopикa» менее чувствительна к температуре и уровню влажности. Не нуждается в периодическом смачивание во избежание рассыхания, не впитывает пот c человеческой кожи (соответственно, не темнеет из-за этого), обладает высокой механической прочностью. Максимальный срок жизни «мaйopики», по оценкам специалистов, превышает 500 лет — a это предел для природного жемчуга.
Уход за «майорским камнем» легче, чем за жемчугом. Mаcca «мaйopики» меньше, чем природных жемчужин.
Соответственно, носить бусы и серьги из нее гораздо комфортнее.

Цвета жемчуга «Maйopкa» варьируются от чистого бело-перламутрового к желтоватому, розовому, синему, зеленому и даже черному. Для окраски используется пигмент в виде мелкодисперсного порошка:
марганец — для розового или фиолетового (в зависимости от концентрации);
медь — для зеленого;
железо — для красного, и так далее.

Существует точка зрения, которую разделяет много мистиков: именно отсутствие влияния антропогенного фактора наделяет природные минералы, кристаллы и растения волшебными свойствами. На процесс их возникновения влияли только природные духи. Майорский жемчуг не подходит под это определение, так как его создание — заслуга человека. Поэтому сейчас большинство магов и астрологов считают, что по эзотерическим свойствам «мaйopикa» аналогична синтезированным минералам, то есть магически стерильна и инертна. В этом есть плюс: природный жемчуг — капризная и своенравная драгоценность,которую можно носить не всем людям. На украшения c жемчугом-«мaйopикoй» подходят всем.

Правила ухода за майорским жемчугом аналогичны уходу за другими минералами низкой твердости. Берегите украшение от ударов и царапин, хранить отдельно от других, особенно — от твердых камней. Держите колье, бусы или серьги в отдельной шкатулке c мягкими тканевыми стенками либо в замшевом мешочке. Чистите изделие c помощью мыльного раствора и мягкой ветоши. Любые, даже «щадящие», вроде зубного порошка, абразивы недопустимы, так же как и бытовая химия. Сушить нужно вдали от источников тепла и прямых солнечных лучей, лучше всего — в тени.
Я нашла для вас в сети Интернет только 3 из 7 ныне работающих производств, но реально по этой технологии работают несколько компаний, включая исторический, основанный Эдуардом Хошем бренд. Стоимость классического колье 45-49 см может варьироваться от 100 евро и выше, в зависимости от качества, цвета и прочих нюансов производства жемчужин.

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

HikariCP — самый быстрый пул соединений на java

Java недавно стукнуло 20 лет. Казалось бы, на сегодняшний день на java написано все. Любая идея, любой проект, любой инструмент на java? — это уже есть. Тем более когда речь идет о таких банальных вещах как пул соединений к базе данных, который используют миллионы разработчиков по всему миру. Но не тут то было! Встречайте — проект HikariCP — самый быстрый на сегодняшний день пул соединений на java.
HikariCP — еще один яркий пример того, что всегда стоить брать под сомнение эффективность некоторых решений, даже если их используют миллионы людей и живут они десятки лет. Хикари — прекрасный пример того, как микро оптимизации, которые по отдельности никогда не смогут дать вам больше 0.00001% прироста — в совокупности позволяют создать очень быстрый и эффективный инструмент.
Этот пост — вольный и частичный перевод статьи Down the Rabbit Hole от автора HikariCP перемешанный с потоком моего сознания.

Down the Rabbit Hole

Эта статья — рецепт нашего секретного соуса. Когда Вы начинаете просматривать разного рода бенчмарки, у Вас, как у нормального человека, должна возникнуть к ним здравая доля скептицизма. Когда Вы думаете о производительности и пуле соединений, трудно избежать коварной мысли о том, что пул — самая важная ее часть. На самом деле, это не совсем так. Количество вызовов getConnection() в сравнении с другими операциями типичного JDBC довольно мало. Огромное число улучшений производительности достигается за счет оптимизации враперов вокруг Connection, Statement, и тд.
Для того чтобы сделать HikariCP быстрым (каким он и является), нам пришлось копнуть до уровня байткода и ниже. Мы использовали все известные нам трюки чтобы JIT помог Вам. Мы изучали скомпилированный байткод для каждого метода и даже изменяли методы так, чтобы они попадали под лимит инлайнинга. Мы уменьшали количество уровней наследования, ограничивали доступ к некоторым переменным, чтобы уменьшить область их видимости и удаляли любые приведения типов.

Иногда, видя что метод превышает лимит инлайнинга, мы думали о том как изменить его таким образом, чтобы избавится от нескольких байт-инструкций. Например:
public SQLException checkException(SQLException sqle) { String sqlState = sqle.getSQLState(); if (sqlState == null) return sqle; if (sqlState.startsWith(«08»)) _forceClose = true; else if (SQL_ERRORS.contains(sqlState)) _forceClose = true; return sqle; }
Достаточно простой метод, который проверяет, есть ли ошибка потери соединения. А теперь байткод:
0: aload_1 1: invokevirtual #148 // Method java/sql/SQLException.getSQLState:()Ljava/lang/String; 4: astore_2 5: aload_2 6: ifnonnull 11 9: aload_1 10: areturn 11: aload_2 12: ldc #154 // String 08 14: invokevirtual #156 // Method java/lang/String.startsWith:(Ljava/lang/String;)Z 17: ifeq 28 20: aload_0 21: iconst_1 22: putfield #144 // Field _forceClose:Z 25: goto 45 28: getstatic #41 // Field SQL_ERRORS:Ljava/util/Set; 31: aload_2 32: invokeinterface #162, 2 // InterfaceMethod java/util/Set.contains:(Ljava/lang/Object;)Z 37: ifeq 45 40: aload_0 41: iconst_1 42: putfield #144 // Field _forceClose:Z 45: aload_1 46: return
Наверное ни для кого уже не секрет, что лимит инлайнинга в Hostpot JVM — 35 байткод инструкций. Поэтому мы уделили некоторое внимание этому методу, чтобы сократить его и изменили его следующим образом:
String sqlState = sqle.getSQLState(); if (sqlState != null && (sqlState.startsWith(«08») || SQL_ERRORS.contains(sqlState))) _forceClose = true; return sqle;
Получилось довольно близко к лимиту, но все еще 36 инструкций. Поэтому мы сделали так:
String sqlState = sqle.getSQLState(); _forceClose |= (sqlState != null && (sqlState.startsWith(«08») || SQL_ERRORS.contains(sqlState))); return sale;
Выглядит проще. Неправда ли? На самом деле, этот код хуже предыдущего — 45 инструкций.
Еще одна попытка:
String sqlState = sqle.getSQLState(); if (sqlState != null) _forceClose |= sqlState.startsWith(«08») | SQL_ERRORS.contains(sqlState); return sqle;
Обратите внимание на использование унарного ИЛИ (|). Это отличный пример жертвования теоретической производительностью (так как в теории || будет быстрее) ради реальной производительности (так как метод теперь будет заинлайнен). Байткод результата:
0: aload_1 1: invokevirtual #153 // Method java/sql/SQLException.getSQLState:()Ljava/lang/String; 4: astore_2 5: aload_2 6: ifnull 34 9: aload_0 10: dup 11: getfield #149 // Field forceClose:Z 14: aload_2 15: ldc #157 // String 08 17: invokevirtual #159 // Method java/lang/String.startsWith:(Ljava/lang/String;)Z 20: getstatic #37 // Field SQL_ERRORS:Ljava/util/Set; 23: aload_2 24: invokeinterface #165, 2 // InterfaceMethod java/util/Set.contains:(Ljava/lang/Object;)Z 29: ior 30: ior 31: putfield #149 // Field forceClose:Z 34: return
Как раз ниже лимита в 35 байткод инструкций. Это маленький метод и на самом деле даже не высоконагруженный, но идею Вы поняли. Небольшие методы не только позволяют JITу встраивать их в код, они так же означают меньше фактических машинных инструкций, что увеличивает количество кода, который поместится в L1 кэше процессора. Теперь умножьте все это на количество таких изменений в нашей библиотеке и Вы поймете почему HickaryCP действительно быстр.

Микро оптимизации

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

ArrayList

Одной из самых не тривиальных оптимизаций было удаление коллекции ArrayList<Statement> в классе ConnectionProxy, которая использовалась для отслеживания открытых объектов Statement. Когда Statement закрывается, он должен быть удален из этой коллекции. Также, в случае если закрывается соединение — нужно пройтись по коллекции и закрыть любой открытый Statement и уже после — очистить коллекцию. Как известно ArrayList осуществляет проверку диапазонов индекса на каждый вызов get(index). Но, так как мы можем гарантировать выбор правильного индекса — эта проверка излишня. Также, реализация метода remove(Object) осуществляет проход от начала до конца списка. В тоже время общепринятый паттерн в JDBC — или сразу закрывать Statements после использования или же в порядке обратном открытию (FILO). Для таких случаев, проход, который начинается с конца списка — будет быстрее. Поэтому мы заменили ArrayList<Statement> на FastStatementList в котором нету проверки диапазонов и удаление элементов из списка начинается с конца.

Медленный синглтон

Для того, чтобы сгенерировать прокси для объектов Connection, Statement, ResultSet HikariCP изначально использовал фабрику синглтонов. В случае, например, ConnectionProxy эта фабрика находилось в статическом поле PROXY_FACTORY. И в коде было несколько десятков мест, которые ссылались на это поле.
public final PreparedStatement prepareStatement(String sql, String columnNames) throws SQLException { return PROXY_FACTORY.getProxyPreparedStatement(this, delegate.prepareStatement(sql, columnNames)); }
В байткоде это выглядело так:
public final java.sql.PreparedStatement prepareStatement(java.lang.String, java.lang.String) throws java.sql.SQLException; flags: ACC_PRIVATE, ACC_FINAL Code: stack=5, locals=3, args_size=3 0: getstatic #59 // Field PROXY_FACTORY:Lcom/zaxxer/hikari/proxy/ProxyFactory; 3: aload_0 4: aload_0 5: getfield #3 // Field delegate:Ljava/sql/Connection; 8: aload_1 9: aload_2 10: invokeinterface #74, 3 // InterfaceMethod java/sql/Connection.prepareStatement:(Ljava/lang/String; columnNames) throws SQLException { return ProxyFactory.getProxyPreparedStatement(this, delegate.prepareStatement(sql, columnNames)); }
Где getProxyPreparedStatement() — статический метод класса ProxyFactory. А вот так выглядит байткод:
private final java.sql.PreparedStatement prepareStatement(java.lang.String, java.lang.String) throws java.sql.SQLException; flags: ACC_PRIVATE, ACC_FINAL Code: stack=4, locals=3, args_size=3 0: aload_0 1: aload_0 2: getfield #3 // Field delegate:Ljava/sql/Connection; 5: aload_1 6: aload_2 7: invokeinterface #72, 3 // InterfaceMethod java/sql/Connection.prepareStatement:(Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/PreparedStatement; 12: invokestatic #67 // Method com/zaxxer/hikari/proxy/ProxyFactory.getProxyPreparedStatement:(Lcom/zaxxer/hikari/proxy/ConnectionProxy;Ljava/sql/PreparedStatement;)Ljava/sql/PreparedStatement; 15: areturn

Здесь следует обратить внимание сразу на 3 момента. Вызова getstatic больше нету. invokevirtual был заменен на invokestatic, который в свою очередь лучше оптимизируется виртуальной машиной. И последний момент, который трудно заметить — размер стека уменьшился с 5-ти элементов до 4-х. Так как до оптимизации в случае с invokevirtual на стек должна так же прийти ссылка на сам объект ProxyFactory. Это значит и дополнительную pop инструкцию для получения этой ссылки из стека в момент вызова getProxyPreparedStatement(). В общем, если просуммировать, то мы избавились от доступа к статическому полю, убрали лишние операции push и pop на стеке и сделали вызов метода более пригодным для оптимизации JIT.
Конец.
Полный оригинал Down the Rabbit Hole.
UPDATE:
В комментариях часть статьи «Медленный синглтон» вызвала много обсуждений. apangin утверждает, что все эти микро оптимизации бессмысленны и не дают никакого прироста. В коментарии приводится простой бенчмарк одинаковой стоимости invokeVirtual и invokeStatic. А бенчмарк пула соединений одноклассников, который якобы в 4 раза быстрее HickaryCP. На что автор HickaryCP дает следующий ответ:
First I would like to comment on @odnoklassniki comment that their pool is 4x faster. I have added their pool to the JMH benchmark and committed the changes for anyone to run. Here is the result vs. HikariCP:
./benchmark.sh clean quick -p pool=one,hikari «.*Connection.*» Benchmark (pool) Mode Cnt Score Error Units ConnectionBench.cycleCnnection one thrpt 16 4991.293 ± 62.821 ops/ms ConnectionBench.cycleCnnection hikari thrpt 16 39660.123 ± 1314.967 ops/ms
This is showing HikariCP at 8x faster than one-datasource.
Keep in mind that not only has HikariCP changed since that wiki page was written, but the JMH test harness itself has changed. In order to recreate the results I got at that time, I checked out HikariCP source with that specific commit, and checked out the source just before that commit. I ran both using the benchmark harness available at that time:
Before static proxy factory methods:
Benchmark (pool) Mode Samples Mean Mean error Units ConnectionBench.testConnectionCycle hikari thrpt 16 9303.741 67.747 ops/ms
After static proxy factory methods:
Benchmark (pool) Mode Samples Mean Mean error Units ConnectionBench.testConnectionCycle hikari thrpt 16 9436.699 71.268 ops/ms

  • 10 целей
  • 10 шагов счастливой женщины
  • 18+
  • 2015
  • bbq
  • four seasons
  • hand made
  • handmade
  • kate_ch_ka
  • oljasan
  • vesta-hmt
  • vesta-hmt.ru
  • www.vesta-hmt.ru
  • Айвазовский
  • Алтай
  • Амур
  • Апельсинка
  • Арт-Нуво
  • Архангельск
  • Билибин
  • Вереск
  • Веста-изразцы
  • Владимир
  • Гошик
  • Графика
  • Дачный ответ
  • Деловар
  • Дом
  • Домодедово
  • Женщина
  • Испания
  • Италия
  • Картины и панно
  • Картины цветов
  • Катюха
  • Катюшка
  • Кафка
  • Клин
  • Клинская керамика
  • Клинская_керамика
  • Коровин
  • Люля
  • МАХЛ РАХ
  • МКП
  • Масленица
  • Москва
  • Музей ДПИ
  • Ольга Вереск
  • Олька Вереск
  • Она
  • Павич
  • Пасха
  • Первый телеканал
  • Питер
  • Поварская улица
  • Поленов
  • Португалия
  • Пушкиногорье
  • Ростов
  • Селигер
  • Смешанная техника
  • Смоленск
  • Суздаль
  • Счастье
  • Трошково
  • Фазенда
  • Фантазийные сюжеты
  • Хлебный переулок
  • Хочу знать
  • Ширвиндт
  • Ярмарка Мастеров
  • авторская керамика
  • ангел
  • архитектура
  • балкон
  • банная печь
  • баня
  • бар
  • бассейн
  • ббс
  • бизнес
  • бильярд
  • благодарю
  • блондинка
  • блондинка на машинке
  • блондинки
  • бытовое
  • ваза
  • вернисаж
  • веста-изразцы
  • внучковое
  • всякое
  • выпендриваюсь
  • выставка
  • выходные
  • вязание
  • гадания
  • гарик
  • герб
  • гештальт
  • глина
  • глиномания
  • год
  • гончарка
  • горы
  • гусь
  • девочковое
  • декупаж
  • день сюрра
  • дети
  • детки
  • детское
  • дизайн
  • дизайнер
  • дом
  • дом Перцовой
  • домашнее
  • досуг
  • др
  • дракон
  • еда
  • женские_штучки
  • женщина_в_бизнесе
  • жж
  • жизненное
  • жизнь
  • загадка
  • занятия
  • зарисовки
  • зарисовки из жизни
  • зима
  • зимняя акция
  • золото
  • зоо
  • из жизни
  • изразец
  • изразцовый фасад
  • изразцы
  • икона
  • иконостас
  • интерьер
  • инфицировано счастьем
  • ирисы
  • искусство
  • искусство майолики
  • история
  • кадры
  • камин
  • камины
  • картинки Ольги Вереск
  • катюхин
  • керамика
  • керамика oljasan
  • керамические радости
  • классика
  • клин
  • клинская керамика
  • клинский бутичок
  • книга
  • книги
  • корабль
  • кошки
  • круг
  • кружка
  • куклы
  • кулинария счастья
  • кухни
  • кухня
  • лаборатория счастья
  • лабутенки
  • ландшафт
  • лепнина
  • лирика
  • личное
  • лофт
  • лужники
  • любимая деревня
  • любимая машинка
  • любовь
  • люди
  • люстра
  • люстры
  • лягушка
  • магазин
  • майолика
  • мальчиковое
  • мамковое
  • мастер-класс
  • мастер-классы
  • мастерская впечатлений
  • махл рах
  • машинкО
  • мебель
  • мексика
  • мечта
  • мечты
  • мифы
  • модерн
  • мои стихи
  • молитва
  • монтаж
  • мотик
  • мото
  • музей
  • музыка
  • мысли вслух
  • мысли_вслух
  • наблюдалки
  • наука
  • нг
  • не_устаю_восхищаться
  • новогодние подарки
  • новости изнутри
  • номер дома
  • о смысле жизни
  • окно
  • она
  • оружие
  • отделка дома
  • открытка
  • отпуск
  • отпускное
  • отцы и дети
  • панно
  • партнеры
  • патриотизм
  • печи
  • печка
  • печник
  • печники
  • печь
  • пивная кружка
  • плакат
  • плитка
  • плитка для кухни
  • плитка для фасадов
  • под
  • подарки
  • подарок
  • подступенки
  • подумалось
  • пока меня нет
  • портал
  • портрет
  • посуда
  • походы
  • прабабушка
  • праздник
  • про Мужчин
  • про мужиков
  • прогулки
  • прогулки по Москве
  • продажи
  • производство
  • просмотр
  • пряничный домик
  • психология
  • путешествия
  • работа
  • рабочее
  • развод
  • размышления
  • реализуй_мечту
  • ремесло
  • ремонт блондинки
  • реставрация
  • реставрация в Москве
  • ресторан
  • рождество
  • рожество
  • рукоделие
  • русский язык
  • ручная работа
  • салон каминов
  • самокопание
  • самокопания
  • семейкА
  • семейка
  • семинар
  • сказка
  • скидка
  • скульптура
  • снег
  • собаковое
  • сопливое
  • справедливость
  • стакан
  • старина
  • статья
  • странности
  • строительство
  • сувенир
  • сувениры
  • счастье
  • так
  • телевидение
  • терракота
  • тест
  • технология керамики
  • третьяковка
  • улитка
  • успехи
  • фазенда
  • фартук
  • фасад
  • фасады
  • фаянс
  • фестиваль
  • фестиваль керамистов
  • фигня
  • философия
  • фламенко
  • фонарик счастья
  • фотки
  • фото
  • фотосессия
  • хирургия бизнеса
  • хирургия души
  • хирургия семьи
  • хочу знать
  • храм
  • художественное
  • художественный лицей
  • церковная керамика
  • церковь
  • цитата
  • чашка
  • чудеса
  • шамот
  • шкаф
  • школа
  • экскурсия
  • электрокамин
  • эскиз
  • я желаю вам счастья!
  • ярмарка

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх