LINUX.ORG.RU

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


0

0

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

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

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

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

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

anonymous

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

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

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

Pi ★★★★★
()

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
()

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

asgard
()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pi ★★★★★
()

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

k0wax
()

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

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

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

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

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

P.S.:

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

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

manokur ★★
()

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

lexius ★★
()

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

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

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

Dr_ZLO
()

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

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

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

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

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

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

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

HappyCoder
()

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

kilolife ★★★★★
()

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

страшно...

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

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

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

Ay49Mihas ★★★★
()

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

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

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

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

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

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

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

anonymous
()

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

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

anonymous
()

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

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

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

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

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

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

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

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

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

anonymous
()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

может помочь

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

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

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

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

respect

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

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

binr ★★
()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://kano.net/javabench/

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

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

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

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

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

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