|
|
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Поискал, здесь ещё такое не обсуждали: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Как вам? Думаю полезная штука, для тех кто хочет JVM и её спецификацию подробнее изучить. Но выглядит слегка экстравагантно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 07:33 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Это из примеров прилагающихся к Krakatau, ассемблера/дизассемблера/декомпилятора для JVM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 07:36 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
You welcome! Будь первым. Я если честно не знаю где и как его можно применить. В обычном ассемблере ключевая мотивация - это использование особых наборов инструкций которые оперируют с 128/256 bit. А здесь - непонятно. Или нужен пример asm который ярко покажет преимущества перед Javac. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 11:07 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
maytonYou welcome! Будь первым. Я если честно не знаю где и как его можно применить. В обычном ассемблере ключевая мотивация - это использование особых наборов инструкций которые оперируют с 128/256 bit. А здесь - непонятно. Или нужен пример asm который ярко покажет преимущества перед Javac. Да на кой он нужен? Только для детального изучения мануала по виртуальной машине, и может при создании своего компилятора для этой платформы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 12:05 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
XDiaBLoДа на кой он нужен? Только для детального изучения мануала по виртуальной машине, и может при создании своего компилятора для этой платформы. Булево выражение 19228815 IMHO я бы мог эффективнее свернуть в стековой машине. Я думаю об этом на досуге. Но до реализации не дошёл. Я ленив как кот. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 12:10 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
XDiaBLoКак вам?чем-то напоминает JNI (: XDiaBLoНо выглядит слегка экстравагантно. System.out.println("Hello World!") в 3-х байткод-строках, а в JNI - чуть больше (а если еще с проверками на NULL... то ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 12:45 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Если трабл-шутить в направлении оптимизаций. Тоесть типа понять где компиллятор увидел неявный StringBuilder - то полезно дизассемблировать и смотреть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 12:47 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
XDiaBLoДумаю полезная штукатам есть goto !!! P.S. Может поэтому зарезервировали ключевое слово, чтобы не конфликтовало на уровне байткода ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 12:49 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. Эта синтаксическая горчица полностью убивает все желание на таком играться-кодировать. Name mangling вещь конечно необходимая для компилятора/интерпритатора/среды. Но видеть такое в исходном коде - да ну нах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 12:51 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
maytonЕсли трабл-шутить в направлении оптимизаций. Тоесть типа понять где компиллятор увидел неявный StringBuilder - то полезно дизассемблировать и смотреть. С точки зрения оптимизации, скорее нужно знать, где он "не увидел" неявный StringBuilder ))). Но для того, что бы такое исправить, смотреть скомпилированный код даром не нужно - нужно просто явно использовать StringBuilder. IMHO Т.к. байт-код может вообще НЕ выполняться, а обрабатывается JIT'от. То смотреть на байт код в направлении оптимизации - глупое занятие. Лучше уж смотреть на профайлер и логи JIT'а, какие метода чаще всего выполняются, кто заинлайнился/кто нет. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 12:56 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Насчёт полезности ничего не скажу, просто давно интересовало наличие такой игрушки для JVM, так как в студенческие годы забавлялся с ассемблером. А тут наткнулся на это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 13:00 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Согласен. Чортов Гослинг перебощил с именами пакетов. Мог бы системные включить в глобальные. Если честно я не встречал бизнес-кодеров которые-бы по взрослому использовали java-asm. Если верить лекциям Елизарова то он грил дескыть бывалыча-дескыть бывало хаживал в асм за инструментацией и всё такое. Лично меня бы устроил вариант встраивания. Типа Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 13:04 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevНо для того, что бы такое исправить, смотреть скомпилированный код даром не нужно - нужно просто явно использовать StringBuilder. IMHO Посмотри на досуге как Intellij генерирует toString() в дефолтном варианте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 13:07 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
mayton.... Лично меня бы устроил вариант встраивания. Типа Код: java 1. 2. 3. 4. 5. 6. 7. 8. ЗАЧЕМ ? Встраиваемый машинный ASM в C/Pascel'е/Delphi - был понятен. На нем можно было сделать вещи, которые в ЯП высокого уровня банально отсутствовали и/или делались через одно место. Но и то сейчас модно inline assmebler даже из C компиляторов выкидывать ((( Не вижу ни одной задаче, которую можно было бы эффективно сделать Java byte code и нельзя было бы аналогично описать на чистой Java. Фактически, Java byte code один в один соответствует языку Java (+даром не нужные служебные конструкции), т.ч. все, что можно сделать на byte code можно сделать и на Java. Только синтаксис сложнее / более замороческий. Т.ч. ihmo это интересно только НЕДО-мазохистам. Т.к. нормальный мазохист: 1) взял бы Forth и получал бы на нем удовольствие от стековой архитектуры ))) 2) Ну или пошел бы в магазин и купил бы себе собственный стек , так сказать для личного использования ))). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 13:19 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, ты чего злой такой? Пятница-ж :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 13:25 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
maytonты чего злой такой? третью неделю с Mozilla мучаюсь, все сделал - но счастья нет (результирующей код работает на порядки медленнее, чем было раньше). я не злой ))) Просто у меня стека нет, розового и гламурного, в форме сердечка ))) я бы на работе на стенку повесил ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 13:29 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsevя не злой ))) Просто у меня стека нет, розового и гламурного, в форме сердечка ))) я бы на работе на стенку повесил ))) Завязывай с тяжелыми наркотиками Мозилами. Приходи к бэк-энд. Будешь днём кодить а по утрам спокойно читать логи с чашкой кофе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 13:37 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
OFFTOPIC maytonЗавязывай с тяжелыми наркотиками Мозилами. Приходи к бэк-энд. Будешь днём кодить а по утрам спокойно читать логи с чашкой кофе. А и так бэк энд пишу. Просто один из основных сайтов, которые нужно парсить, формат поменял. Все что накодил, перестало работать. А там 1.5 Mb java script кода. Пришлось mozilla прикрутить, что бы хоть как-то данные вытаскивать. Только если раньше у меня парсер в > 100 потоков работал и на один запрос по <50 ms приходилось, то теперь один поток и 3-5 сек. на запрос. Проблема критическая, если не решим, инвестор предлагает все бросить и расходиться ))) "Доброжелатели " предлагают http://phantomjs.org/ использовать, но мне кажется, толку от него будет не больше, чем от Selenium (для моей задачи совершенно не подходит) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 14:02 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
" Helo, word! " - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 15:50 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
maytonБулево выражение 19228815 IMHO я бы мог эффективнее свернуть в стековой машине. А смысл? Его ж потом все равно JIT покромсает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2016, 20:25 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
chabapokА смысл? Его ж потом все равно JIT покромсает. Во что? Давайте исходить из того что мы не знаем целевой машины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 13:34 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
maytonchabapokА смысл? Его ж потом все равно JIT покромсает. Во что? Давайте исходить из того что мы не знаем целевой машины. тем более нехрен заниматься преждевременной оптимизацией Array Bounds Check Elimination - хороший пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2016, 17:59 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
ИзопропилArray Bounds Check Elimination - хороший пример А меня этот вопрос очень сильно интересует. Часто получается код, где два и более (до 5-8) массивов одинаковой размерности и нужно пройти по всем им. Было бы крайне интересно понять, на каких массивах он срабатывает, на каких нет ((( и можно ли как-то JIT "подсказать", что array bounds check делать не нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 12:03 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
ИзопропилArray Bounds Check Elimination - хороший пример Вы можете привести ссылки на алгоритм или описание ABCE (Array Bounds Check Elimination) ? Я нагугливаю слишком разные результаты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 12:22 |
|
||
|
Java assembler
|
|||
|---|---|---|---|
|
#18+
JIT'ы они тоже разные. Находится PDF от Intel'а с одним алгоритмом, находится PDF от Sun с другими алгоритмами.... Судя по всему, у меня в коде должен происходить "Loop-Invariant Checks" приводящий к "check is partially redundant". Т.е., во версии Sun'a - все хорошо ))) / http://www.ssw.uni-linz.ac.at/Research/Papers/Wuerthinger07/Wuerthinger07.pdf / Если, конечно, описание соответствует текущим алгоритмам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2016, 12:32 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39249704&tid=2123995]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
86ms |
get tp. blocked users: |
2ms |
| others: | 250ms |
| total: | 439ms |

| 0 / 0 |
