LINUX.ORG.RU

Доверьтесь виртуальной машине


0

0

Таков смысл одного из разделов интервью с популяризатором технологий Sun Брайаном Гетцом. В нем он поясняет этот тезис. "Разработчики очень любят оптимизировать код, и не зря. Это весело и увлекательно. Но гораздо важнее знать, когда стоит заниматься оптимизацией, а когда – нет. К сожалению, в основном разработчикам редко помогает интуиция в выборе участков приложения, требующих ускорения выполнения.

...Код на Java вполне может выполняться быстрее кода на C. ... Ирония в том, что C-программисты гордятся своей возможностью управлять указателями на самом низком уровне, и считают это своим самым мощным инструментом, и эта же самая возможность мешает C-компиляторам производить наиболее эффективно оптимизированный код. Отнимая эту возможность у программиста, вы предоставляете море возможностей для оптимизации компилятору, и будьте уверены, Java-компилятор знает об оптимизации больше, чем 99,99% обычных программистов.

Поскольку программисты уже 45 лет занимаются созданием сборщиков мусора, сегодняшние сборщики мусора гораздо более изощренные, чем принято думать

...Если бы я мог послать волшебной палочкой сообщение всем разработчикам на Java, я бы сказал им: доверьтесь виртуальной машине. Она умнее, чем вы думаете. Перестаньте пытаться обставить и обогнать ее. Пишите в коде то, что вы хотите, чтобы она сделала и она сделает все возможное и даже чуть больше чтобы то, что вы задумали, выполнилось наиболее быстро."

>>> Подробности

anonymous

Проверено: Pi ()

Ответ на: комментарий от tkpai

>Sun большинство ресурсов по _оптимизации_ направляет на Windows-версию...

А как же сабж? Или их это не касается? :)

anonymous
()
Ответ на: комментарий от Displacer

>> В общем, вот вопрос - существуют ли широко распространенные компактные (или входящие в STL) библиотеки, реализующие "умные" указатели?

> Есть очень сильное подозрение, что войдут в очередной стандарт С++.

А сейчас что использовать? В каких библиотеках прототипируется этот будущий стандарт?

tailgunner ★★★★★
()
Ответ на: комментарий от gapik

> Тут кто то про j2me заикнулся. Вопрос: Что, действительно, сейчас можно проще на C++ написать прогу под 95% телефонов (Мы говорим про телефоны, а не про компьютеры с функциями телефона) ?

Можно. Прошивку.

generatorglukoff ★★
()
Ответ на: комментарий от tkpai

Мсье клонит к тому, что быдлокодеры на С++ хуже работают, чем гуру на java? Не стоило тратить время на объяснение тривиальных вещей. Тормознутости Java это не отменяет.

anonymous
()
Ответ на: комментарий от tailgunner

> STL - это aut_ptr, который, как бы это помягче, не блещет возможностями.
auto_ptr это отличный умный указатель с семантикой владения и во многих случаях очень удобен.

> тащить весь Boost ради классов указателей - это, ИМХО, расточиельно
Не обязательно. Тем более что такое "тащить весь boost" ? Места на жёстком диске для исходников буста не хватает?

> В общем, вот вопрос - существуют ли широко распространенные компактные (или входящие в STL) библиотеки, реализующие "умные" указатели?
Буст это в общем то стандарт де факто, практически такой же как STL. В нём этих умных указателей штук пять, насколько я помню. Кстати есть специальная утилита, которая вытаскивает из буста некоторую часть, поэтому если нужны только умные указатели, скорее всего буста будет совсем не много.

А вообще умные указатели нужны не очень часто, т.к. объекты, которыми непонятно кто владеет, это странное явление.

anonymous
()

Давненько хорошего флейма не было...

anonymous
()

Признаюсь, на работе у меня стоит Windows. Так вот, там стоит много свободного софто типа Gaim, OOф2, Mozilla. Так вот как вы думаете, как быстро они загружаются? Я к тому, что они не в родной среде находятся. Ява в этом отношении на всех платформах не в своей среде (кроме Java OS)? Я уверяю, и GTK, и Mozill-овский движок и QT - все запускаются и отрисовываются не быстрее Swing! (Ведь вы все сравниваете GUI приложения...) И что вы хотите доказать? про j2me я вопрос задал. про j2ee даже спрашивать ничего не буду.

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

PS: Дома Linux only (Slackware), на работе Windows XP.

gapik
()
Ответ на: комментарий от gapik

При чём тут мозилла? Ты наверное думаешь, что мозилла в венде юзает gtk? Луже не газифицируй. Кстати всё под вендой нормально работает, тот же stardict не хуже чем под линуксом.

(правда венда от этого лучше не становится)

anonymous
()
Ответ на: комментарий от generatorglukoff

>Можно. Прошивку

Я тут хотел прошивку обновить на своем телефоне, так вот почемуто я нашел не одно прошивку для телефона SonyEriccson, а целый зоопарк для K750 - одни, для K790 - другие, для K800 третьи, для моего K610 - другии . И это для марки телефона SE, а я спрашивал про 95% всех телефонов.

gapik
()
Ответ на: комментарий от tailgunner

> А сейчас что использовать? В каких библиотеках прототипируется этот будущий стандарт?

tailgunner, на удивление анонимус выше уже всё ответил по сути, даже нечего добавить. Разве что может кроме того, что некоторые части из boost-а как раз и планируются, насколько мне известно, к включению в стандарт.

Displacer ★★
()
Ответ на: комментарий от anonymous

>сейчас самый писк моды на лоре -это не читать даже оригинального сообщения а читать сразу ответы :)

Ничего подобного. ТруЪ - прочитать тему и сразу постить. Кстати, много постов можно создавать, не читая темы. Пост "Венде точно капец" можно постить модераторами сразу после подтверждения новости.

anonymous
()
Ответ на: комментарий от stalkerg

>А вообще надо LOR переписать на python.

Чем Лисп уже не угодил?

anonymous
()
Ответ на: комментарий от anonymous

> Пост "Венде точно капец" можно постить модераторами сразу после подтверждения новости.

Ага, тут бы этот пост был бы офигенно в тему :)

Displacer ★★
()
Ответ на: комментарий от anonymous

>Ты наверное думаешь, что мозилла в венде юзает gtk?

Я же вроде русским языком написал "Mozill-овский движок", или Mozilla уже перешла на native-WinAPI?

>тот же stardict не хуже чем под линуксом

Не знаю, под видной не запускал, но если мне не отшибает память, то у startdict из GUI - три окна от силы, а вся остальная работа идет через подсистему ввода/вывода к файлам словарей. Что тут сравнивать. Программы с одним окошком с дним TextField-ом и одним TextArea работают не медленнее. (извините за термины Java)

Слив засчитан.

gapik
()
Ответ на: комментарий от anonymous

>лисп сдох в конце восьмидесятых :(

Провокатор! :D

anonymous
()
Ответ на: комментарий от tkpai

почему QT, который далеко не нативно отрисовывает контролы работает-таки быстрее?

eXOR ★★★★★
()

Народ, а как снизить потребление памяти в азуреусе? Из жабовых приложений юзаю только его, сейчас 99 раздач и нет закачек, используется ~170mb оперативки, а иногда и до 300мб доходило!! (!!!!!)

Danmer ★★
()
Ответ на: комментарий от anonymous

>> тащить весь Boost ради классов указателей - это, ИМХО, расточиельно

>Не обязательно. Тем более что такое "тащить весь boost" ?

Скажем так - я пекусь об объеме исходников, необходимых для сборки проекта. Чем меньше - тем лучше.

> есть специальная утилита, которая вытаскивает из буста некоторую часть

Очень интересно. Как она называется и/или где ее найти?

tailgunner ★★★★★
()
Ответ на: комментарий от Displacer

>> Пост "Венде точно капец" можно постить модераторами сразу после подтверждения новости.

>Ага, тут бы этот пост был бы офигенно в тему :)

Этот пост в тему везде. Ибо о благородной цели нужно постоянно напоминать.

anonymous
()
Ответ на: комментарий от gapik

>>Можно. Прошивку

>Я тут хотел прошивку обновить на своем телефоне, так вот почемуто я нашел не одно прошивку для телефона SonyEriccson, а целый зоопарк для K750 - одни, для K790 - другие, для K800 третьи, для моего K610 - другии . И это для марки телефона SE, а я спрашивал про 95% всех телефонов.

Хочешь сказать, что прошивка в мобиле не на сях написана? ;)

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

generatorglukoff ★★
()

Вообще, единственное, что на текущий момент я бы отнёс к преимуществам Java - то, что для неё проще писать IDE с рефакторингом. И то, это проблема конкретных IDE, а не языка. И уж точно не имеет никакого отношения к виртуальным машинам :)

Displacer ★★
()
Ответ на: комментарий от tailgunner

> есть специальная утилита, которая вытаскивает из буста некоторую часть

> Очень интересно. Как она называется и/или где ее найти?

Да смысл :) Всё равно в случае gentoo придётся boost выкачивать юзерам ;) А тебе самому не без разницы ли :)

Displacer ★★
()
Ответ на: комментарий от h8

А должна начинать немедленно глючить, как только ее грязью польют :)

eXOR ★★★★★
()
Ответ на: комментарий от generatorglukoff

> телефон с VM - это вполне понятно-нормальное явление, связанное с необходимостью переносимости прог, ибо видов чипов в мобилах больше чем дох%я

аха, и сколько из них ARM'ы? 80%? 90%? 8)

tailgunner ★★★★★
()

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

MiracleMan ★★★★★
()
Ответ на: комментарий от Danmer

>Народ, а как снизить потребление памяти в азуреусе?

А зачем тебе это? Не хватает памяти - так докупи( денег нет - заработай) Комп с памятью меньше 4х гигов - это не комп. Таков общепринятый стандарт микрософт. Каждый член общества обязан ему следовать, иначе он пират и вор.

Жаба лучшая в мире технология!

anonymous
()
Ответ на: комментарий от tailgunner

>> телефон с VM - это вполне понятно-нормальное явление, связанное с необходимостью переносимости прог, ибо видов чипов в мобилах больше чем дох%я

>аха, и сколько из них ARM'ы? 80%? 90%? 8)

не. в оригинале фраза должна звучать так: "и сколько из них ARM7,ARM8,ARM9???!"

generatorglukoff ★★
()
Ответ на: комментарий от generatorglukoff

> не. в оригинале фраза должна звучать так: "и сколько из них ARM7,ARM8,ARM9???!"

А что, у них существенная разница в наборе команд (из используемых компилятором Си++, я не имею в виду ядро ОС)?

tailgunner ★★★★★
()

Гааааспада! Я предлагаю всем Вам, а точнее тем кто льет свои помои на Jav'у, для начала взглянуть на адресную строку браузера и грепнуть ее на наличие ".jsp". Вы знает что это такое? Это Java. Поэтому предлагаю им (поливальщикам) удалить ЛОР из закладок и не появляться здесь из-за кары, несомой Гослингом Джеймсом. Он, как и Патрик, карает неверующих.

magellan
()
Ответ на: комментарий от tailgunner

>Гуй несколько секунд? Ну попроси маме купить новый компьютер, жизнь станет веселее.

Уже же была конфа, но для жабистов: 2 гига рама и Атлон на 2.4 ГГЦ.

А у вас, думаю дефект в днк, - новым железом такое не поправишь.

anonymous
()
Ответ на: комментарий от tailgunner

> А что, у них существенная разница в наборе команд (из используемых компилятором Си++, я не имею в виду ядро ОС)?

Насчет набора команд - неуверен, но насчет аппаратуры (вывод/вывод на мобилу) очень различается. К тому же единой ОС для мобил (дешевых мобил =) ) не существует.

generatorglukoff ★★
()
Ответ на: комментарий от anonymous

> Отморозки вроде тебя,которые не зная ни си/с++ ни джавы пытаются что то обсирать

Зайка, иди выспись, обсирал здесь ты. Остальное без комментариев.

> После n-нного количества лет разработки как на c++ так и на джаве+j2ee я все больше убеждаюсь что все "Struts|Hibernate|JSF|дополнить_по_вкусу" нужны либо психам - системным архитекторам либо совсем зеленым детям -и те и другие на самом деле не понимают до конца что такое j2ee но пользуются (заставляют пользоваться) потому что это модно.

Это не ответ тем не менее. Слив засчитан.

Bohtvaroh ★★★★
()
Ответ на: комментарий от magellan

> не появляться здесь из-за кары, несомой Гослингом Джеймсом. Он, как и Патрик, карает неверующих.

Гослинг властен только над теми, чей моск зохавала Java :)

tailgunner ★★★★★
()
Ответ на: комментарий от generatorglukoff

>Поэтому предлагаю им (поливальщикам) удалить ЛОР из закладок и не появляться здесь из-за кары, несомой Гослингом Джеймсом.

Будем травить жабу, пока не сгинет c opensource.ru

anonymous
()
Ответ на: комментарий от tailgunner

Вполне возможно. Но я и в Кернигана с Ритчи верю. Синтаксис же учения Страуструпа у меня пока что вызвает легкие недомогания.

magellan
()
Ответ на: комментарий от anonymous

>Уже же была конфа, но для жабистов: 2 гига рама и Атлон на 2.4 ГГЦ. >А у вас, думаю дефект в днк, - новым железом такое не поправишь.

У меня на похожем железе никаких тормозов на большинстве java приложений не наблюдается. Медленный старт, нормальная по скорости работа.

Так что дефект ДНК у тебя, ибо у меня никаких проблем нет.

lexius ★★
()
Ответ на: комментарий от magellan

> я и в Кернигана с Ритчи верю. Синтаксис же учения Страуструпа у меня пока что вызвает легкие недомогания.

"Пока что"? Значит, есть куда расти! :)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

> "Пока что"? Значит, есть куда расти! :)

Тем не менее так называемое "системное программирование" на плюсах и вовсе невозможно, не надо всё смешивать.

P.S.: Всем спокойной ночи.

Bohtvaroh ★★★★
()

Индийские друзья доказали что нет такого компилятора который бы они не смогли своей глупостью поставить в тупик. Зачастую оптимизация заключается в вырезании 150 строк indian crap'а и написании 3 строк реализующих нужную функциональность.

eXOR ★★★★★
()
Ответ на: комментарий от lexius

>нормальная по скорости работа.

Раааааазззуууууумееееееееееетсяяяяяяя ноооооррррмаааааааальнааааайааааааааа.

P.S. По меркам жабокодера.

anonymous
()
Ответ на: комментарий от Bohtvaroh

> так называемое "системное программирование" на плюсах и вовсе невозможно

какой живучий миф :( Сколько раз уж опровергали - а он всё еще с нами.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

>так называемое "системное программирование" на плюсах и вовсе невозможно

Неправда. Вот на жабе вообще программирование вообще не возможно - это факт ( только быдлокодерство).

anonymous
()
Ответ на: комментарий от anonymous

Может даже можете указать на собственный проект, как эталон небыдлокодерства? Интересно было бы посмотреть. ;-)

Bohtvaroh ★★★★
()
Ответ на: комментарий от Bohtvaroh

> Тем не менее так называемое "системное программирование" на плюсах и вовсе невозможно

Сиспрограммирование и на сях не прозрачно. Поэтому все быро учим pure assembler! =)

generatorglukoff ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.