LINUX.ORG.RU

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


0

0

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

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

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

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

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

anonymous

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

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

>все возможное и даже чуть больше чтобы то, что вы задумали, выполнилось наиболее быстро.

надо только 4Г рамов

Pi ★★★★★ ()

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

The garbage collector in contemporary JVMs doesn't touch most garbage at all. In the most common collection scenario, the JVM figures out what objects are live and deals with them exclusively -- and most objects die young. So by the time they get to garbage collection, most objects that have been allocated since the last garbage collection are already dead. The garbage collector avoids a lot of work it would have to do if it were doing it one piece at a time.

>надо только 4Г рамов

Тебе купить? Или мама денег даст? Слава Б-гу, времена когда "всем будет достаточно 640кб памяти" прошли.

anonymous ()

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

ненавижу, когда пытаются делать какое-то по "мегаумным". если программа по мнению разработчиков должна быть умнее конечного пользователя, то будут те же косяки, что и виндой.

asgard ()

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

Интересно, а он как объяснил такое использование памяти? 45 лет оптимизировали, да недооптимизировали?

enby ★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

> Тебе купить? Или мама денег даст? Слава Б-гу, времена когда "всем будет достаточно 640кб памяти" прошли.

Ну тогда предлагаю к диску с программой на яве прилагать модуль памяти... 640кб ушли, а 256-512мб пока нет

enby ★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от asgard

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

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

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

> если программа делает что-то хуже, чем человек, то от такой программы нет никакой пользы

Архиправильно.
Никакая виртуальная машина не соберет мусор быстрее дворника.

Window_Snyder ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

>если программа делает что-то хуже, чем человек, то от такой программы нет никакой пользы

Вот из-за таких как ты всё ещё существует винда, вижуал васик и драйвера от ати

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

какой смысл от оптимизирующего компилятора, если любой птушник-обезьяна-быдлокодер (каких на планете 99%) оптимизирует код лучше?

какое счастье, что красноглазые фанатики на этот мир не оказывают влияния

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

самое интересное, что мы-таки возвращаемся в те времена, т.к. когда аппликуха сжирает почти всё рамо, комп становится почти однозадачным.

Pi ★★★★★ ()

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

про работу с памятью в принципе верно, но время реальной пользы от жабаоптимизаций прийдёт лет через 5-10, тогда жаба будет чем-то вроде асма ^_^

k0wax ()

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

Конечно, в наш век высоких технологий стыдно не иметь много гигабайт памяти, многоядерного процессора и жесткого диска невероятной вместительности. Потому что технологии высокие.

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

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

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

Иными словами я скорее против джавы, чем за.

P.S.:

>...Если бы я мог послать волшебной палочкой сообщение всем разработчикам на Java, я бы сказал им:

..перестяньте заниматься херней!

manokur ★★ ()

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

Вобщем, кто не знает java или программирует на С, тот ее обсирает. Так же это делают неудачники по жизни, кот. ее не освоили. Ничего не имею против с/с++, но java - очень хорошая штука.

lexius ★★ ()

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

>Java-компилятор знает об оптимизации больше, чем 99,99% обычных программистов

То есть, еcли переписать 100% программ на яве, то 99.99% будут работать быстрее?

Ждем новоый компилятор, может java-программы перестанут, наконец, тормозить.

Dr_ZLO ()

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

понравилась фраза "Разработчики очень любят оптимизировать код, и не зря. Это весело и увлекательно.". товарищ отжигает.

isden ★★★★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от lexius

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

> Вобщем, кто не знает java или программирует на С, тот ее обсирает. Так же это делают неудачники по жизни, кот. ее не освоили. Ничего не имею против с/с++, но java - очень хорошая штука.

Если ты не имеешь ни чего против c/c++ то ты их не знаешь... На Java программировать не интересно. Она слишком навязчива и скучна. А C/C++ на много веселее и интереснее ,-)

insa ()
Ответ на: Re: Доверьтесь виртуальной машине от lexius

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

>Вобщем, кто не знает java или программирует на С, тот ее обсирает. Так же это делают неудачники по жизни, кот. ее не освоили. Ничего не имею против с/с++, но java - очень хорошая штука.

А "написал один раз - запустил где угодно" действительно работает или прихрамывает?

HappyCoder ()

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

Нет, ява программы не тормозят. Они исполняются очень быстро, просто летают. Проблема при этом только одна, на моем буке с 192mb оперативки они раз в 10 минут примерзают намертво минуты на две, а потом летают опять. Наверное это работает хваленая сборка мусора. Никто не знает как ее отключить?

kilolife ★★★★★ ()

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

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

страшно...

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от manokur

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

>А между тем есть десяток-другой причин, по которым пишущих "толстые" программы субъектов следует ставить к стенке и немножко стрелять боевыми патронами.

Хе-хе, рубишь правду-матку :) Сам сейчас разгребаю результат деятельности "программиста", который проблемы с производительсностью своей системы решал запросом на новое серверное железо.

Ay49Mihas ★★★★ ()

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

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

когда она опять затормозит, надо расслабиться и попытаться получить удовольствие, да? :)

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

>Доверьтесь виртуальной машине Таков смысл одного из разделов интервью с популяризатором технологий Sun Брайаном Гетцом.

Он врет. Его бредни напоминают: "виндовс лучшая ос в мире". Джава - это плохая технология. Жабу нужно стороной обходить, как пользователю, так и программисту.

P.S.Все жабоподелки тормозные и кривые, постоянно повисают, вылетают, жрут немерено ресурсов - вот это правда. Жабоапплеты на вебстраницах - вообще *****************************.

P.P.S. Комп нормальный с 2 гигами рама и атлоном на 2.4 ГГЦ.

anonymous ()

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

>я бы сказал им: доверьтесь виртуальной машине

лучше бы добавили беззнаковых типов, а потом занимались болтологией.

anonymous ()

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

Всем известно (от явакодеров) что java код может работать быстрее с/c++ кода, но никто в жизни не видел ни одного быстрого приложения на java. парадокс... :))

angel_il ★★★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от HappyCoder

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

Угу. Как минимум Linux - Windows. У меня в универе курсачи просят сдавать на Windows. Я пишу в Linux Java-приложения и даже не проверяю на Windows несу в универ и сдаю :).

tkpai ()
Ответ на: Re: Доверьтесь виртуальной машине от angel_il

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

Слышал такой прикол из-за GUI :). Одно дело оптимизировать в JVM поиск элемента в массиве, а другое Swing, которые рисуется отдельно от GUI ОС.

tkpai ()
Ответ на: Re: Доверьтесь виртуальной машине от angel_il

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

>Всем известно (от явакодеров) что java код может работать быстрее с/c++ кода, но никто в жизни не видел ни одного быстрого приложения на java. парадокс... :))

Ну это, наверное, жаба проецирует вычисления в астральный план, по средствам космических лучей.

P.S. В жабоподелках даже интерфейс тормозит.

anonymous ()

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

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

А то получается, что у меня проц занят на 10% стабильно, зато грёбанные интерфейсы часто просто клинять, а младшему брату надо довольно долго объяснять как пользоваться компом, хотя если бы программеры немного подумали над не техническими вещами, то я с радостью бы отдал 30% своего проца, если бы не мучался с постоянным обновлении программ из-за очередного buffer overflow (которых в java нет в принципе) или имел бы возможность и под Windows и под Linux пускать одно и те же программы (проблема редкого специального софта в Linux была бы решена).

tkpai ()
Ответ на: Re: Доверьтесь виртуальной машине от HappyCoder

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

>А "написал один раз - запустил где угодно" действительно работает или прихрамывает?

Работает. Конечно, есть исключения. Например в винде есть ограничение на количество одновременных сетевых соединений... Вот такого рода ограничения.

lexius ★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

>P.S.Все жабоподелки тормозные и кривые, постоянно повисают, вылетают, жрут немерено ресурсов - вот это правда. Жабоапплеты на вебстраницах - вообще

Пиши еще, фантаст, а лучше - закапай глазки и застрелись.

lexius ★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от tkpai

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

>А то получается, что у меня проц занят на 10% стабильно, зато грёбанные интерфейсы часто просто клинять, а младшему брату надо довольно долго объяснять как пользоваться компом, хотя если бы программеры немного подумали над не техническими вещами, то я с радостью бы отдал 30% своего проца, если бы не мучался с постоянным обновлении программ из-за очередного buffer overflow (которых в java нет в принципе) или имел бы возможность и под Windows и под Linux пускать одно и те же программы (проблема редкого специального софта в Linux была бы решена).

Для таких есть виндовс свиста. Лучшая ос в мире.

buffer overflow - Ни разу, в том софте на лин, которым пользуюсь, не встречал. Жабоподелки ес-но даже попробовать дома не ставлю.

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от tkpai

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

Клепать простые и понятные интерфейсы - дело вовсе не программистов, а дизайнеров и психологов. Дело программистов как раз думать о том, как "выиграть 10% времени выполнения оптимизирую поиск".

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от lexius

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

>Пиши еще, фантаст, а лучше - закапай глазки и застрелись.

Главное, чтобы жабобыдлокодеры больше ничего не писали.

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от lexius

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

> Вобщем, кто не знает java или программирует на С, тот ее обсирает.

+1 однозначно

> Ничего не имею против с/с++, но java - очень хорошая штука.

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

real_maverick ★★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

Дело совсем не в том, что тормозит, а что нет. Со времени появления операционных систем, их развитие идет по пути все большей виртуализации: ОС предоставляет приложениям виртуальные ресурсы (напр. виртуальная память). Java и подобные технологии - следующий шаг в этом направлении. Можно ведь и сейчас писать программы в машинных кодах и так, чтобы непосредственно с железом работали, без ОС. Но много ли вы так напишите?

Fice ★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от kilolife

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

> с 192mb оперативки они раз в 10 минут примерзают намертво минуты на две, а потом летают опять. Наверное это работает хваленая сборка мусора. Никто не знает как ее отключить?

-Xnoclassgc - задизаблит классовый gc -Xincgc - сделает gc инкрементальным

может помочь

real_maverick ★★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от HappyCoder

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

> А "написал один раз - запустил где угодно" действительно работает или прихрамывает?

Прекрасно работает, если не использовать native-библиотеки, не идущие с JRE.

eveel ★★ ()
Ответ на: Re: Доверьтесь виртуальной машине от tkpai

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

respect

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

Вывод 2all ненавистникам жабы: Проблема не в жабе, а в дровах на видюху. А памяти ни когда много не было и не будет, и вообще таких времён не настанет. Посмотрите на ядро ЛИнукса - оноже раздувается как мыльный пузырь. Мне кажется опенсолярка и миникс значительно перспективней, т.к. их должно быть проще подгонять под конкретную конфигурацию железа. А с Линухом и вендой не получиться. Так что жаба это хорошо.

binr ★★ ()

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

Бла-бла-бла и немного секса....

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от manokur

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

Поделитесь своими программными разработками, или хотя бы ссылками на них? А то аж интересно стало, то ли действительно опытный разработчик, но с заносами как порой у Торвальдса, то ли архи-моська.

Корпорациям нужен не хороший софт, а софт "здесь и сейчас", Java, .NET и PHP вполне подходят для его производства. Количество приложений запускаемых на среднестатистическом корпоротивном компьютере растёт гораздо медленнее чем железо на котором оно запускается. Повышеные требования к безопасности, опять же. А вот десктоп - это уже "другой мир", куча программ в фоне, музыка, игрушки, картинки, свистелки - тут то как раз другой подход бы надо, поэкономичнее.

А что, есть наглядндные подтверждения когда Java приложение действительно работает быстрее написаного на C? Пока не сталкивался с такими "чудесами".

iNode ()
Ответ на: Re: Доверьтесь виртуальной машине от eveel

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

>Прекрасно работает, если не использовать native-библиотеки, не идущие с JRE.

Ага а еще если везде все текстовые данные хранить только в utf-8 и нигде и никогда не пытаться ручками обрабатывать пути (\ - в винде, / -сами знаете где и :: -в маках)

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

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от binr

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

>Проблема не в жабе, а в дровах на видюху.

Я подозреваю что у жабокодеров существует специальный словарь отмазок, откуда они рандомно выбирают отмазку наиболее подходящую под цвет глаз оппонента :)

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

> Тебе купить? Или мама денег даст? Слава Б-гу, времена когда "всем будет достаточно 640кб памяти" прошли.

Посмотри себе в карман. Мобильники и иже с ними до сих пор довольно критичны в плане оперативной памяти. Тот же Symbian довольно придирчиво изучает предлагаемые ему приложения на предмет количества используемой памяти. Остальные от Symbian'а в этом плане не отстают.

Хорошо, конечно, писать код под десятигигагерцовые пятиядерные пни с террабайтами оперативки, только это реально не продвигает ни Computer Science, ни индустрию (разве что в плане UI).

anonymous ()
Ответ на: Re: Доверьтесь виртуальной машине от binr

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

> В Линуксе тормозит больше чем в винде

Вроде в linux JVM хуже, Sun большинство ресурсов по оптимизации направляет на Windows-версию...

tkpai ()
Ответ на: Re: Доверьтесь виртуальной машине от iNode

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

http://kano.net/javabench/

Но тут всё зависит от того, как тестировать. Java перед запуском байт-кода оптимизирует его под _конкретный_ процессор, так что дальнейшая работа получается быстрее, чем нежели C\C++ откомпиленные под 486. Плюс некоторые вещи в JVM оптимизированы хорошо (списки и т. д.), так что быдлокодеры вручную на C\C++ могут такого не добиться.

Но это не касается GUI, JNI. Кроме того, если программер знает как работать и если софт откомпилен правильно (привет юзерам Gentoo и etc), то конечно C\C++ быстрее.

tkpai ()
Ответ на: Re: Доверьтесь виртуальной машине от anonymous

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

>buffer overflow - Ни разу, в том софте на лин, которым пользуюсь, не встречал.

Segmentation fault в программах под Linux - обычное дело.

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