The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Первый выпуск RoboVM, компилятора байткода Java в машинный код, opennews (??), 24-Янв-13, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


39. "Первый выпуск RoboVM, компилятора байткода Java в машинный к..."  –1 +/
Сообщение от ананим (?), 25-Янв-13, 01:17 
>Интересно, таблица виртуальных методов в C++ поддерживается в рантайме?

ха, и оно ещё критикует С++. с такими то знаниями. почитай хоть для начала то http://en.wikipedia.org/wiki/Virtual_method_table
зыж
2Tav
>> виртуальный вызов в Java может быть быстрее, чем в C++, и возможно это только за счет компиляции во время выполнения.

во-первых это брехня, т.к. vtable в С++ строится на этапе компиляции, конкретный адрес проставляется уже на этапе выполнения. http://www.intuit.ru/department/pl/plintro/12/2.html
и это никак не может быть медленнее, когда vtable строится житом, а потом ещё и подставляется.
во-вторых, (для дальнейшего развития) для уменьшения зависимости от дорогостоящих вызовов из vtable придумали различные методики, чтобы отказаться от vtable и подставлять конкретный адрес на этапе линковки. пример (чтоб было понятно и вантузятнику) — ATL, где классы объявляются с declspec(novtable) http://msdn.microsoft.com/ru-ru/library/w4baz6ss.aspx
И ЕСЛИ ВЫ ПОДУМАЕТЕ (не много ли я прошу от жабиста?), то поймёте почему выбор позднего связывания абсолютно избыточен в рантайме.
просто быдлокодить безусловно легче использования шаблонов.
ну а ставить подобные «достижения» в заслугу — это просто ханжество и лицимерие. быдлокодте себе на здоровье, но без фанатизма (хотя это может быть просто недостаток системных знаний, тогда пока(!!!) сори).

Ответить | Правка | К родителю #16 | Наверх | Cообщить модератору

42. "Первый выпуск RoboVM, компилятора байткода Java в машинный к..."  +/
Сообщение от ананим (?), 25-Янв-13, 01:29 
у минусующего кроме эмоций сказать было нечего?
понимаю.
только это не закроет брешь в ваших знаниях.
Ответить | Правка | Наверх | Cообщить модератору

87. "Первый выпуск RoboVM, компилятора байткода Java в машинный к..."  –1 +/
Сообщение от linux must _RIP_ (?), 25-Янв-13, 16:39 
а они у тебя есть? или только понты, оскорбления и преходы на личности, и не желание слушать других ?
Ответить | Правка | Наверх | Cообщить модератору

48. "Первый выпуск RoboVM, компилятора байткода Java в машинный к..."  +1 +/
Сообщение от Tav (ok), 25-Янв-13, 02:15 
Нервный стиль вашего комментария и переход на личности (позволю себе тоже) создает впечатление, что вы ощущаете со стороны обсуждаемой технологии угрозу обесценивания накопленных вами знаний и опыта.

> во-первых это брехня, т.к. vtable в С++ строится на этапе компиляции, конкретный адрес проставляется уже на этапе выполнения.

Речь же шла о возможности автоматически встроить (inline) вызываемый виртуальный метод, и, как следствие, еще и выполнить более глубокие оптимизации, пересекающие границы изначальных процедур.

>  подставлять конкретный адрес на этапе линковки.

Для этого на этапе линковки этот адрес должен быть известен. Смысл же полиморфизма типов и позднего связывания (основы ООП) в том, что конкретная реализация вызываемого метода зависит от типа объекта-получателя и (в общем случае) известна только во время выполнения.

> просто быдлокодить безусловно легче использования шаблонов.

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

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

60. "Первый выпуск RoboVM, компилятора байткода Java в машинный к..."  –2 +/
Сообщение от iZEN (ok), 25-Янв-13, 07:37 
>[оверквотинг удален]
> во-первых это брехня, т.к. vtable в С++ строится на этапе компиляции, конкретный
> адрес проставляется уже на этапе выполнения. http://www.intuit.ru/department/pl/plintro/12/2.html
> и это никак не может быть медленнее, когда vtable строится житом, а
> потом ещё и подставляется.
> во-вторых, (для дальнейшего развития) для уменьшения зависимости от дорогостоящих вызовов
> из vtable придумали различные методики, чтобы отказаться от vtable и подставлять
> конкретный адрес на этапе линковки. пример (чтоб было понятно и вантузятнику)
> — ATL, где классы объявляются с declspec(novtable) http://msdn.microsoft.com/ru-ru/library/w4baz6ss.aspx
> И ЕСЛИ ВЫ ПОДУМАЕТЕ (не много ли я прошу от жабиста?), то
> поймёте почему выбор позднего связывания абсолютно избыточен в рантайме.

Ну вот и ответ: "От таблицы виртуальных методов _и_позднего_связывания_кода_ в программе на C++ ПРИНЯТО_ОТКАЗЫВАТЬСЯ". Тогда о чём вообще речь? "В C++ на самом деле в работе ненастоящий полиморфизм, иначе вас ждут жестокие тормозааааа".

> просто быдлокодить безусловно легче использования шаблонов.
> ну а ставить подобные «достижения» в заслугу — это просто ханжество и
> лицимерие.

А вот это уже обсирание ОСНОВ ООП, а не только языков ООП-программирования.

> быдлокодте себе на здоровье, но без фанатизма (хотя это может
> быть просто недостаток системных знаний, тогда пока(!!!) сори).

Ну а вы, так и быть, пишите на своём недо- ООП-языке C++. (Чем это отличается от программирования на C, только вот, неясно.)

Ответить | Правка | К родителю #39 | Наверх | Cообщить модератору

72. "Первый выпуск RoboVM, компилятора байткода Java в машинный к..."  +2 +/
Сообщение от ананим (?), 25-Янв-13, 10:45 
>Ну вот и ответ: "От таблицы виртуальных методов _и_позднего_связывания_кода_ в программе на C++ ПРИНЯТО_ОТКАЗЫВАТЬСЯ".

ты дурак? или в принципе плохо-обучаем?
vtable создаётся ля любого класса, содержащего хоть один виртуальный метод.
азы. см. тут http://www.intuit.ru/department/pl/plintro/12/2.html
>На этапе компиляции строится таблица виртуальных методов, а конкретный адрес проставляется уже на этапе выполнения.
>Тогда о чём вообще речь?

речь о том, что при помощи шаблонов и множественного наследования можно получить ВСЕ преимущества позднего связывания на этапе линковки, при этом значительно уменьшив код и увеличив производительность до уровня голого С.
зыж
>> ну а ставить подобные «достижения» в заслугу — это просто ханжество и лицимерие.
>А вот это уже обсирание ОСНОВ ООП, а не только языков ООП-программирования.

это обсирание невеж, которые не зная С++ (а ты уже признался что не знаешь выше в #59) каким-то боком претендуют на его сравнивание с чем либо.
ты невежа, айзен. при чём это не оскорбление, это голый факт.

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру