@jvmchat

Страница 2386 из 2890
guga
10.04.2018
17:50:51
Luger
10.04.2018
17:50:52
Alex
10.04.2018
17:51:52
ты забыл про билдскрипты для грейдла.
Ваша собака умеет делать больно иным способом!

Google
Luger
10.04.2018
17:51:59
есть же kts
ну он там мало чем отличается, по большому счету.

да и я бы не стал переписывать все билдскрипты на kt ради kt.

Pavel ?
10.04.2018
17:52:36
ну он там мало чем отличается, по большому счету.
так и не надо чтобы отличался) но уже не груви)

да и я бы не стал переписывать все билдскрипты на kt ради kt.
я бы вообще ничего не стал переписывать) но новое писать вполне)

guga
10.04.2018
17:53:35
ты забыл про билдскрипты для грейдла.
ну, учитывая что сейчас есть блю оушен

Митко Соловец?
10.04.2018
17:54:31
Про груви-то, про груви давайте!
На груви некоторые люди пишут скрипты

Например, я

Artjom
10.04.2018
17:54:51
Еще спок есть

guga
10.04.2018
17:55:06
Еще спок есть
вот это да, но я его только в петпроекты втянуть мог

Alex
10.04.2018
17:55:20
guga
10.04.2018
17:55:22
а так есть кукмбер

Artjom
10.04.2018
17:55:32
А я в продакшен смог

Pavel ?
10.04.2018
17:55:35
а для спринга контекст описывать

Google
Pavel ?
10.04.2018
17:55:40
на грувях

но помойму и там уже побывал котлин

Pavel ?
10.04.2018
17:58:35
не видел
еще как есть, в 5ом, контекст на kotlin dsl

Mr
10.04.2018
17:58:43
hi

Why string strings are immutable

Igor
10.04.2018
18:01:12
Туда же. Правильно я понимаю, что lazySet — это не-volatile-чтение?
покопался в сорцах, на хотспоте судя по всему везде идет volatile, то есть никаких отличий нет

``` UNSAFE_ENTRY(void, Unsafe_SetOrderedLong(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jlong x)) UnsafeWrapper("Unsafe_SetOrderedLong"); #if defined(SPARC) || defined(X86) // Sparc and X86 have atomic jlong (8 bytes) instructions SET_FIELD_VOLATILE(obj, offset, jlong, x); #else // Keep old code for platforms which may not have atomic long (8 bytes) instructions { if (VM_Version::supports_cx8()) { SET_FIELD_VOLATILE(obj, offset, jlong, x); } else { Handle p (THREAD, JNIHandles::resolve(obj)); jlong* addr = (jlong*)(index_oop_from_field_offset_long(p(), offset)); ObjectLocker ol(p, THREAD); *addr = x; } } #endif UNSAFE_END ```

Чтобы не быть голосовым, выше подтверждение

И еще туда же: http://dev.cheremin.info/2011/10/atomicxxxlazyset.html

Sergei
10.04.2018
18:47:31
ну, @bsideup, думаю не согласится
Могу точно сказать что хуже проекту не стало =)

Ivan
10.04.2018
18:52:50
это как в пословице про припарку?

Sergei
10.04.2018
18:56:12
не, это как в мире который доверяет Apache Foundation (куда можно в любой момент денег занести) гораздо больше чем Pivotal. Такой мир ещё Enterprise Software называется =) Повалили как на горячие пирожки =)

тут одно время OCI че то притихли, я аж прям начал думать на тёмную сторону их переманили (ну, там, кококотлин например), ан нет, оказывается в тайне свой http://micronaut.io пилили. Идея compile time фреймворка давно уже в воздухе витает, вот походу у них получилось. А зная compile time фичи Groovy (включая ту, за которую меня в проект взяли) - это может быть очень быстро и легковесно. Я на всякий случай напомню правило "чем более динамичен язык тем больше вещей делается в compile time", как бы на первый взгляд это не звучало противоречиво

В Groovy можно делать всякие дикие штуки типа compile time JSON views. Например вот это я наваял на коленке (в прямом смысле слова, с ноутбуком на коленях) пока слушал Graeme по поводу нового Grails год назад на Greach conf: https://github.com/bsideup/macro-methods-workshop/blob/8119bace0775fce74c2a0f51ac42f2666cf8baaf/src/test/groovy/com/example/MacroJSONTest.groovy#L27 здесь "macroJSON" после компиляции заменится на конкатенацию строк. Фактически самый быстрый JSON генератор для JVM =)

в Java можно делать Dagger-ы всякие, но упираешься в ограничения annotation processing-а джавы. В Groovy compile time фичей ну просто на порядки больше, представьте сколько всего можно сделать при желании?

не смотря на то, что Groovy - самый "взрослый" альтернативный JVM язык, у него ещё многое впереди и некоторые его возможности начали по-настоящему раскрывать только недавно. Micronaut - лишь малый пример того, что можно сделать "не напрягаясь"

Quantum Harmonizer
10.04.2018
19:14:34
И еще туда же: http://dev.cheremin.info/2011/10/atomicxxxlazyset.html
Вот это интересно. Спасибо, теперь бы разобраться в этом)

Sergei
10.04.2018
19:18:07
Где можно бенчмарки посмотреть?
спроси у Шипилёва бенчмарки string concatenation на JVM

Google
guga
10.04.2018
19:18:07
Где можно бенчмарки посмотреть?
А ты любитель побенчмаркать

Mikhail
10.04.2018
19:19:15
А ты любитель побенчмаркать
А то, особенно если это касается json или вебсервера

Sergei
10.04.2018
19:20:01
Где можно бенчмарки посмотреть?
там реально на выходе будет код вида: var fooString = ... var myInteger = ... String result = "{\"foo\":\"" + escape(fooString) + "\", \"bar\":" + myInteger + "}"

Mikhail
10.04.2018
19:20:03
спроси у Шипилёва бенчмарки string concatenation на JVM
Так json можно генерить без конкатенации строк

Sergei
10.04.2018
19:20:36
можно и без них, любой самый быстрый способ в JVM вернуть строку из нескольких строк

Sergei
10.04.2018
19:22:19
Ну так это не так быстро как могло бы быть
я говорю о том, что любой, самый крутой runtime json генератор, проиграет, т.к. он будет байткод собирать в рантайме (даже если он генерирует байткод как оптимизацию), в то время как Groovy этот байткод в compile time подставит

тут уже выигрышь будет только на стадии инициализации, понятное дело

но поинт был именно в compile time подходе

Sergei
10.04.2018
19:27:38
девушку тебе надо......

Mikhail
10.04.2018
19:29:17
У меня есть

Sergei
10.04.2018
19:29:32
Приду домой - буду бенчмаркать)
я надеюсь ты не пойдёшь код по той ссылке бенчмаркать, там всё же PoC (вот в Grails по-моему они уже сделали нормальный), так что советую за материалом на benchhub пойти вместо этого )

Mikhail
10.04.2018
19:29:51
А ещё у меня есть свой стринг-билдер, который быстрее дефолтного

Sergei
10.04.2018
19:31:17
вот значит его можно заинлайнить на стадии compile time и превратить в чистый байткод, сэкономив пару method call-ов :)

а значит - быстрей :troll:

sherzod
10.04.2018
19:31:45
а что исходники, наверное аллоцирует 4Г памяти сразу

Quantum Harmonizer
10.04.2018
19:32:21
btw, дефолтный код для str1 + str2 + str3 будет new SB().append(str1)(...).toString(), а можно было бы new SB(str1.length() + ...)(...).

Mikhail
10.04.2018
19:32:32
можно исходники?)
https://github.com/wizzardo/tools/blob/master/modules/tools-misc/src/main/java/com/wizzardo/tools/misc/ExceptionDrivenStringBuilder.java

Google
Митко Соловец?
10.04.2018
19:32:44
опять Миша пиарит свои велосипеды

Mikhail
10.04.2018
19:32:53
Оно быстрее, если кешировать билдер

Quantum Harmonizer
10.04.2018
19:33:51
опять Миша пиарит свои велосипеды
Велосипеди Миши офигительны.

Mikhail
10.04.2018
19:34:56
о, прикольно. А чего не CharSequence?
Сорри, не понял вопроса

Quantum Harmonizer
10.04.2018
19:35:15
Сорри, не понял вопроса
implements CharSequence было бы неплохо

Mikhail
10.04.2018
19:35:50
Честно, не помню какой у него апи, но в принципе можно добавить

Я тут кстати почти оформил бенчмарки для https://www.techempower.com/benchmarks/ много времени ушло на оптимизацию пайплайнинга

Vladimir
10.04.2018
19:47:02
Можно ли java-приложение опубликовать в Apple App Store? Поиск в интернете показал, что в 2014 году это было возможно. Как сейчас обстоят дела?

Korolyov
10.04.2018
20:02:41
Привет! Более опытные товарищи, подскажите пожалуйста, пытаюсь профилировать долгое выполнение метода. Запустил профилирование на 15 секунд, сделал запрос, который выполнялся 13 секунд, получил вот такой профиль. На нём три зоны, средняя и самая маленькая собственно интересующий метод, про две других зоны только догадки. Кто то может подсказать, что они символизируют? Возможно, что то не показывается в профиле, что?



Vlad
10.04.2018
20:11:58
Бд есть?

Korolyov
10.04.2018
20:12:35
угу

запрос в базу там внутри

Vlad
10.04.2018
20:13:01
Если есть кривая работа с бд/ медленный запрос

Это я вангую

Jdbc?

Google
Korolyov
10.04.2018
20:13:26
да-да

Vlad
10.04.2018
20:13:46
Проставь fetch size

План запроса посмотри

Korolyov
10.04.2018
20:14:22
запрос в базе руками выполняется мгновенно

даже если чередовать запросы программные и руками ( как будто бы не кеш базы)

Vlad
10.04.2018
20:15:11
Значит fetch size поможет

Мб пул соединений закончился

Korolyov
10.04.2018
20:15:25
Если есть кривая работа с бд/ медленный запрос
а почему семплов так мало туда попало?

Vlad
10.04.2018
20:15:34
Хз)

Мб вообще не база

Korolyov
10.04.2018
20:15:56
во во

Vlad
10.04.2018
20:16:03
Я бы начал с базы

Korolyov
10.04.2018
20:16:36
остальные методы не тормозят, тормозит только этот определённый - как будто бы не коннекшны

Vlad
10.04.2018
20:17:37
У тебя на этой картинке точно нужный тред?

Ivan
10.04.2018
20:17:39
это постоянно воспроизводится или под нагрузкой только?

Ivan
10.04.2018
20:17:54
продебаж

Страница 2386 из 2890