Kotlin, компиляция в байткод и производительность (часть 2)


Это продолжение публикации. Первую часть можно посмотреть тут

Содержание:

Циклы
When
Делегаты
Object и companion object
lateinit свойства
coroutines
Выводы
Читать дальше →
Kotlin, компиляция в байткод и производительность (часть 2)
Source: habrahabr

Kotlin, компиляция в байткод и производительность (часть 1)


О Kotlin последнее время уже очень много сказано (особенно в совокупности с последними новостями c Google IO 17), но в то же время не очень много такой нужной информации, во что же компилируется Kotlin.

Давайте подробнее рассмотрим на примере компиляции в байткод JVM.


Это первая часть публикации. Вторую можно посмотреть тут


Процесс компиляции это довольно обширная тема и чтобы лучше раскрыть все ее нюансы я взял большую часть примеров компиляции из выступления Дмитрия Жемерова: Caught in the Act: Kotlin Bytecode Generation and Runtime Performance. Из этого же выступления взяты все бенчмарки. Помимо ознакомления с публикацией, настоятельно рекомендую вам еще и посмотреть его выступление. Некоторые вещи там рассказаны более подробно. Я же больше внимания акцентирую именно на компиляции языка.

Содержание:

Функции на уровне файла
Primary конструкторы
data классы
Свойства в теле класса
Not-null типы в публичных и приватных методах
Функции расширения (extension functions)
Тела методов в интерфейсах
Аргументы по умолчанию
Лямбды


Но прежде чем рассмотрим основные конструкции языка и то, в какой байткод они компилируются, нужно упомянуть о том, как непосредственно происходит сама компиляция языка:
Читать дальше →
Kotlin, компиляция в байткод и производительность (часть 1)
Source: habrahabr

Пост №3125849

Автор: ATAMAH5865

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3125849″ }, «headline»: «безумный макс :: безумный маркс — классовый воитель :: кроссовер :: Карл Маркс :: Смешные комиксы (веб-комиксы с юмором и их переводы)», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%9A%D0%BE%D0%BC%D0%B8%D0%BA%D1%81%D1%8B-%D0%B1%D0%B5%D0%B7%D1%83%D0%BC%D0%BD%D1%8B%D0%B9-%D0%BC%D0%B0%D0%BA%D1%81-%D0%B1%D0%B5%D0%B7%D1%83%D0%BC%D0%BD%D1%8B%D0%B9-%D0%BC%D0%B0%D1%80%D0%BA%D1%81—%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D1%8B%D0%B9-%D0%B2%D0%BE%D0%B8%D1%82%D0%B5%D0%BB%D1%8C-%D0%BA%D1%80%D0%BE%D1%81%D1%81%D0%BE%D0%B2%D0%B5%D1%80-3878376.jpeg», «height»: 1500, «width»: 1030 }, «datePublished»: «2017-06-02T13:08:53+03:00», «dateModified»: «2017-06-02T13:08:53+03:00», «author»: { «@type»: «Person», «name»: «ATAMAH5865» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3125849
Source: Joyreactor

Пост №3125847

Автор: FatyFat

ссылка на гифкуРазвернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3125847″ }, «headline»: «BadComedian :: gif :: картон», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/BadComedian-gif-%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D0%BD-3878374.gif», «height»: 270, «width»: 480 }, «datePublished»: «2017-06-02T13:08:47+03:00», «dateModified»: «2017-06-02T13:08:47+03:00», «author»: { «@type»: «Person», «name»: «FatyFat» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3125847
Source: Joyreactor

Nintendo Switch пережила падение с 300-метровой высоты

Портативные консоли от Nintendo всегда
славились своей прочностью. Японская компания прекрасно осознаёт, что риск
уронить такой девайс достаточно высок, а потому консоли изначально
разрабатываются с учётом […]
Nintendo Switch пережила падение с 300-метровой высоты
Source: 4pda

Обзор AGM A8: не просто защищённый смартфон

Компания AGM, вот уже восемь лет занимающаяся разработкой и совершенствованием защищённых смартфонов, представила новую модель всепогодного и противоударного гаджета — AGM A8. Казалось бы, подобного добра […]
Обзор AGM A8: не просто защищённый смартфон
Source: 4pda

Свой скриптовый движок для игр средствами С++ и Lua (часть — 1)

Предисловие


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

Ну что ж, тема довольно обширная, поэтому я начинаю серию уроков по написанию своего 2д игрового движка, и поверьте он будет не хуже того же Love2d, именно такого стиля и будет наш движок.
Читать дальше →
Свой скриптовый движок для игр средствами С++ и Lua (часть — 1)
Source: habrahabr

Цитата #445148

zizmo:
На заре фирмы, начальство решило облагородить помещение.
Результатом благородства стала гипсокартонная перегородка, отделившая торговый зал от мастеров-ремонтников.
Красота! Торговый зал чистый, красивый, стекло-бело-хромированый, и мужланы-ремонтёры не портят атмосфэры, а тихо бухтят за перегородкой.
Заходит клиент, интересуется кассами, что-как, обслуживание, гарантия, ремонт.
Начальник торгового отдела, 40++, весь в галстуке с пиджаком и красивой сединой на висках уверенным голосом:
— Конечно! Конечно все есть! И ТО, и гарантия, и ремонт!.. Мы же солидная организация!
За перегородкой раздается грохот падения чего-то тяжелого и сложного, и дико раздосадованный вопль ремонтёра:
— Дажежтвоюмать!!! А я тебе говорил? Говорииил! Ты ее хоть обоссы! ЭТА КАССА — НЕ БУДЕТ РАБОТАТЬ!!!
И, как вишенка на торте, ржание второго ремонтёра, похожее на лошадку из «ЧТО-ГДЕ-КОГДА».
Цитата #445148
Source: bash

Пост №3125796

Автор: Циркуль

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3125796″ }, «headline»: «художник путешествует :: под катом еще», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D1%85%D1%83%D0%B4%D0%BE%D0%B6%D0%BD%D0%B8%D0%BA-%D0%BF%D1%83%D1%82%D0%B5%D1%88%D0%B5%D1%81%D1%82%D0%B2%D1%83%D0%B5%D1%82-%D0%BF%D0%BE%D0%B4-%D0%BA%D0%B0%D1%82%D0%BE%D0%BC-%D0%B5%D1%89%D0%B5-3878266.jpeg», «height»: 807, «width»: 807 }, «datePublished»: «2017-06-02T12:11:03+03:00», «dateModified»: «2017-06-02T12:11:03+03:00», «author»: { «@type»: «Person», «name»: «Циркуль» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3125796
Source: Joyreactor

Пост №3125794

Автор: sashkauskas

Школьники несут пятёрки домойРазвернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3125794″ }, «headline»: «пиво :: приколы про школьников (приколы про школу и учителей, картинки, комиксы и видео) :: бухло», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D1%88%D0%BA%D0%BE%D0%BB%D0%BE%D1%82%D0%B0-%D0%BF%D0%B8%D0%B2%D0%BE-%D0%B1%D1%83%D1%85%D0%BB%D0%BE-3878275.jpeg», «height»: 1097, «width»: 1600 }, «datePublished»: «2017-06-02T12:10:25+03:00», «dateModified»: «2017-06-02T12:10:25+03:00», «author»: { «@type»: «Person», «name»: «sashkauskas» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «Школьники несут пятёрки домой» }
Комментировать 
Пост №3125794
Source: Joyreactor