LINUX.ORG.RU

Техническая статья Sun «Делаем Java быстрее чем С, используя LRWP»

 , , , , ,


0

0

Начав с технического решения на основе веб-сервера Xitami, имеющего некоторые проблемы с Соларисом (Running a copy in each zone improved performance by more than 100% but still was not the solution to the scalability problem with Xitami), группа инженеров, используя Java и технологию LRWP, добилась производительности на 78% большей, чем у системы на основе Xitami. Xitami назван в статье одним из top10 веб-серверов (one of the top 10 web servers). По отчету Netcraft ( http://survey.netcraft.com/Reports/20... ), на момент написания статьи Xitami имел долю в 0.006% от доли веб-сервера Apache, если считать по количеству сайтов.

>>> Making Java Technology Faster Than C with LRWP

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

>> В вебе не силен. По моему такая фиговина чтобы сделать интерфейс как в gmail называется Аякс.

>И к яве она отношения не имеет. За исключением того, что одна из реализация аякса (конкретно -- гуглевая) сделана как компилятор с явы в хтмл + ява-скрипт.

А это к чему? Не уловил мысль.

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

> C - замечательный язык. А теперь показывайте аналог плеерам Apollo/foobar2000 под unix/линукс.

Томми, ну не страдаю я по плеерам, и вряд ли буду его писать.

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

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

>предпочитают медленный и опасный С или С++

Java это платформа. C, C++ просто языки. Просто описание/спецификация "на бумаге". Без компиляторов и графических тулкитов C/C++ - ничто. И это ещё не всё. Компиляторы и тулкиты должны быть кроссплатформенными, доступными и приемлемыми для программиста. Заявлять что программы пишутся на C++ - это соврать. Они пишутся под тулкиты/библиотеки. Это мог быть и C и D и что угодно.

Java это не просто программы на некоем не нравящемся многим языке. Это платформа с языком программирования под неё.

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

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

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

> А это к чему? Не уловил мысль.

Аякс -- это не одна из морд к БД на яве. Аякс -- это стиль морд к БД, одна из которых случайно оказалось компилируемой из явы, а не ХМЛ например.

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

>Но несерверные программы общего назначения на Жаве я не люблю за аляповатость, тормоза и комбайновость.

Это в смысле много умеют и "не так" выглядят? И все?

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

>В этом плане они "VS в подмётки не годятся".

Єто потому что VS думать не оч чм - оно не умеет.

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

>> А это к чему? Не уловил мысль.

>Аякс -- это не одна из морд к БД на яве. Аякс -- это стиль морд к БД, одна из которых случайно оказалось компилируемой из явы, а не ХМЛ например.

Не используем гуглевский аякс для морды к БД потому что оно случайно написано на Яве? Все равно не уловил мысль.

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

> Java это не просто программы на некоем не нравящемся многим языке. Это платформа с языком программирования под неё.

Санки действительно пытались действовать в правильном направлении, причесывая сишные библиотеки под единый стандарт (т.е. создавая платформу в твоем понимании). Но ничего у них не вышло, и не могло выйти, по следующим причинам:

- нет перегрузки операторов
- нет именованных параметров функций
- нет полного использования юникода (т.е. свои символы юникода как операторы)
- ... добавь сам

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

>Для меня это факт.

ТАк объясните этот факт.

Лично я его обясняю тем что люди которые раньше писали в MSVC/Delphi пересели на MSVC.NET/Delphi.NET.

Это не значит что Джава хуже - на ней не пишут. К стати достаточный список хотелось бы услышать.

>Потом подумайте почему.

По причине различности культур и временному сдвигу. Джава появилась раньше дотнета и в суровые времена медленных компов на ней не писали приложение. .NET воявился когда процессоры были пошустрее а одна контора сказала своему приходу - а теперь все быстренько на дотнет. И борланд вякнул - ну и мы то же. В итоге имеете тучу поделок которые раньше бы слабали на делфи слабаными на дотнете.

Достаточно критично?

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

>Завтра Вы упретесь, что-бы вам показали аналог ИЕ в Линуксе...

неть. под линукс есть вменяемые браузеры: опера, корнверор. даже ff можно использовать если не брать во внимание его тормознутость (ff3 не пробовал, ибо "This application requires GTK+ 2.10 or newer" под всеми доступными мне linux-ами).

да и требовать аналог поделия от MS? ...

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

> Не используем гуглевский аякс для морды к БД потому что оно случайно написано на Яве? Все равно не уловил мысль.

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

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

>Но в десктопных приложениях, которые я юзаю, тормоз где-то раз в 10-20 относительно С.

Вот интересно - откуда такие утверждения? Ты брал абсолютно одинаковые приложения и сравнивал?

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

>нет перегрузки операторов

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

>нет именованных параметров функций

Тяжелое наследие плюсов и паскалей

>нет полного использования юникода

Ява появилась раньше уникода. Но на настоящий момент по поддержке уникода в стрингах ява близка к эталону.

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

> Я лично пользусь ежедневно достаточным количеством приложений на mono/.net

Расскажите какие. Неужели Paint.NET можно на Linux запустить?? Я совсем плохо знаком с тем, как обстоят дела dotNET с кроссплатформенностью. Расскажите, пожалуйста.

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

>> нет перегрузки операторов

> Неудачная академичная идея.

В смысле, отсуствие перегрузки операторов - это неудачная академическая идея, да? А то перегрузить операторы можно в куче языков, начиная от Клу до Хаскеля.

> Ява появилась раньше уникода.

%)

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

> Справедливости ради стоит заметить что отсутствие перезагрузки операторов это скорее плюс :)

Уж такой большой плюс.... как ты напишешь на яве Matrix A=B*C+D ?

Мы пишем my_array[1]="my string" но при этом почему my_map.put("my_string")

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

>Вы так и не сказали мне зачем вам JEdit в быту. Уж не в Tex ли резюме верстаете?

виндопользователи редактируют тексты/конфиги в блокноте (даже коды скриптов). мне запрещено в JEdit делать тоже самое? он кроссплатформенный, я им пользовался даже под windows. про более профессиональное применения JEdit писать не буду.

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

>>нет именованных параметров функций

>Тяжелое наследие плюсов и паскалей

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

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

> А то перегрузить операторы можно в куче языков, начиная от Клу до Хаскеля.

Как-то у мекня не поворачивается язык назвать перегрузкой операторов то что в хаскеле.

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

>>нет перегрузки операторов

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

Почему-то Абсурд невзлюбил перегрузку операторов. То, как он пытается обосновать свою точку зрения, гроша ломанного не стоит. А вот почему на самом деле ему перегрузка не нравится -- я не знаю :-(

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

Неудачная идея потому, что в языках с инфиксной записью это приводит к неоднозначности. Например мы знаем, что от перемены мест слагаемых сумма не изменяется, но вот писать шаблон который плюсует типы(с определенным для них оператором +) в произвольном порядке не стоит, так как очевидно, что конкатенация строк не является коммутативной операцией. Короче я наверное неправельно выразился: по моему мнению перезагрузка операторов в языках с Цподобным синтаксисом - неудачная идея.

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

>> А то перегрузить операторы можно в куче языков, начиная от Клу до Хаскеля.

> Как-то у мекня не поворачивается язык назвать перегрузкой операторов то что в хаскеле.

Почему?

Впрочем, даже если вычеркнуть Хаскел, останется куча других %)

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

>> Но в десктопных приложениях, которые я юзаю, тормоз где-то раз в 10-20 относительно С. > Вот интересно - откуда такие утверждения? Ты брал абсолютно одинаковые приложения и сравнивал?

OOo Base 2.4 и Microsoft Access 7 -- это два хотя и не одинаковых, но весьма сопоставимых приложения.

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

>> Неудачная академичная идея.

>В смысле, отсуствие перегрузки операторов - это неудачная академическая идея, да? А то перегрузить операторы можно в куче языков, начиная от Клу до Хаскеля.

Абсолютно не понимаю зачем может возникнуть такая странная идея: перегрузить оператор. Возможно, для обфускации.

>> Ява появилась раньше уникода.

>%)

О Яве я услышал в конце 90-х вроде бы. Уникод винда начала поддерживать нормально годам к 2000-м. Некоторые говорят что до сих пор там есть хаки с однобайтной кодировкой. В Линуксе до сих пор есть шлаководы - маразматики с koi8. На знание строгой фактологии не претендую. Да и как ты бы вводил уникодные символы в сорцы - через Alt+u какой-нибудь?

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

>Почему?

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

(+) a b

x `elem` l

А "перегрузка операторов" это для меня ассоциировано с С++-way - отличный синтаксис и туча своих ограничений.

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

> приводит к неоднозначности. Например мы знаем, что от перемены мест слагаемых сумма не изменяется, но вот писать шаблон который плюсует типы(с определенным для них оператором +) в произвольном порядке не стоит, так как очевидно, что конкатенация строк не является коммутативной операцией

Дебилам вообще не стоит писать шаблоны. Кстати, я считаю, что хороший язык должен иметь возможность включать опции "запретить шаблоны", "запретить порождение классов", "запретить выполнимый код".

Кстати -- последний вариант это не юмор. Что же тогда останется -- останется только структура, как в ХМЛ.

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

>OOo Base 2.4 и Microsoft Access 7 -- это два хотя и не одинаковых, но весьма сопоставимых приложения.

Сравнивать такие монстры вообще бесполезно. Ну давай сравним calc и excel - что-то мне подсказывает что эксель побыстрее будет без всяких жаб.

ТЫ сравни два простых приложения типа калькулятора и найди отличия. А радикально отличающиеся по потрохам монстры даже еслди они типа делают одно и тоже сравнивать бессмыссленно.

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

> А "перегрузка операторов" это для меня ассоциировано с С++-way - отличный синтаксис и туча своих ограничений.

Не флейма ради, а интересно -- какие же ограничения не нравятся?

(замену приоритета в зависимости от типа операндов не предлагай)

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

> Ну когда оператором может быть любая бойдеть а ее определение не отличается от определения любой функции (+описание приоритета) - и они все определены в стандаритной либе, а не в парсере - для меня это уже ничем не отличается от функций.

Ну оно и в Си++ является функцией (только приоритет нельзя задать и набор фиксирован).

> "перегрузка операторов" это для меня ассоциировано с С++-way - отличный синтаксис и туча своих ограничений.

Синтаксис использования пользовательских операторов ничем не отличается от встроенных, ограничения... ну они есть, да, но на использование не влияют.

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

>>OOo Base 2.4 и Microsoft Access 7 -- это два хотя и не одинаковых, но весьма сопоставимых приложения. >Сравнивать такие монстры вообще бесполезно.

Ты может не программил в акссеесе, а я скажу -- функциональность общая на 90%, и Base немного отстает в мелочах.

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

> Абсолютно не понимаю зачем может возникнуть такая странная идея: перегрузить оператор.

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

> О Яве я услышал в конце 90-х вроде бы. Уникод винда начала поддерживать нормально годам к 2000-м.

Это не повод утверждать, что Ява старше уникода :D Unicode - это год 1990, Ява - 1995.

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

>Да и как ты бы вводил уникодные символы в сорцы - через Alt+u какой-нибудь?

Это не существенно.

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

>Не флейма ради, а интересно -- какие же ограничения не нравятся?

Ты шутишь наверное? Это фича в виде ни то ни се - только подмножество стандартных операторов. Не особенно она полезная без возможности определять своихи или делать что хочу.

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

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

На определение. +++ === ** ы?

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

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

По твоему есть что-то общее между перемножением матриц 4х4 заполненных float с помощью 3DNow/SSE2 и пережножение матриц произвольного размера с нефиксированной мантиссой? По моему тут нет ничего общего.

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

> Неудачная идея потому, что в языках с инфиксной записью это приводит к неоднозначности. Например мы знаем, что от перемены мест слагаемых сумма не изменяется, но вот писать шаблон который плюсует типы(с определенным для них оператором +) в произвольном порядке не стоит, так как очевидно, что конкатенация строк не является коммутативной операцией. Короче я наверное неправельно выразился: по моему мнению перезагрузка операторов в языках с Цподобным синтаксисом - неудачная идея.

Хороший язык должен уметь сообщать компилятору, какие операторы коммутативны и ассоциативны.

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

>Ты может не программил в акссеесе, а я скажу -- функциональность общая на 90%, и Base немного отстает в мелочах.

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

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

> По твоему есть что-то общее между перемножением матриц 4х4 заполненных float с помощью 3DNow/SSE2 и пережножение матриц произвольного размера с нефиксированной мантиссой?

Ога. И то, и другое - это перемножение матриц.

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

> По твоему есть что-то общее между перемножением матриц 4х4 заполненных float с помощью 3DNow/SSE2 и пережножение матриц произвольного размера с нефиксированной мантиссой? По моему тут нет ничего общего.

С точки зрения пользователя библиотеки -- это одно и то же. С точки зрения разработчки -- разное конечно, но на то есть специализация шаблонов.

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

>Ну нету, ага. Случился у Бьярна приступ Java-болезни.

Ну потому и говорю что оператор оверлоадинг - это скорее концепция С++ подобного языка чем хаскеля.

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

>Это не повод утверждать, что Ява старше уникода :D Unicode - это год 1990, Ява - 1995.

Однако на настоящий момент Ява поддерживает уникод лучше Сей. Конверсия массив байтов->массив чаров может происходить только через класс-декодер.

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

>> Ты может не программил в акссеесе, а я скажу -- функциональность общая на 90%, и Base немного отстает в мелочах.

> Программы подобного масштаба подвержены влиянию человеческого фактора и общей архитектуре. Даже в пределах одного языка - если сравнить идею и жбилдер старый - последний невероятный тормоз. ТАк что программы такого класса сильно зависят от радиуса кривизны рук.

Если у санок слизывание дизайна с микрософта в пропорции 1:1 в идеологически весьма простой проге приводит к тормозам в 10-20 раз, что ты мне предлагаешь думать о яве?

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

> Ну потому и говорю что оператор оверлоадинг - это скорее концепция С++ подобного языка чем хаскеля.

А я бы сказал, что перегрузка операторов в Си++ - это точное подмножество оной в Хаскеле %) И если Абсурду не нравится перегрузка операторов в Си++, представь, что он скажет про Хаскель :D

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

> слизывание дизайна с микрософта в пропорции 1:1 в идеологически весьма простой проге приводит к тормозам в 10-20 раз, что ты мне предлагаешь думать о яве?

Кто тебе сказал, что OOBase на Яве? AFAIK, на Си++ оно.

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

>Не флейма ради, а интересно -- какие же ограничения не нравятся?

> Ты шутишь наверное? Это фича в виде ни то ни се - только подмножество стандартных операторов. Не особенно она полезная без возможности определять своихи или делать что хочу.

Если я пишу "не флейма ради" -- значит так оно и есть. Мне интересно мнение без особо глубокого обоснования.

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

>> По твоему есть что-то общее между перемножением матриц 4х4 заполненных float с помощью 3DNow/SSE2 и пережножение матриц произвольного размера с нефиксированной мантиссой? По моему тут нет ничего общего.

>С точки зрения пользователя библиотеки -- это одно и то же. С точки зрения разработчки -- разное конечно, но на то есть специализация шаблонов.

Нет, с точки зрения пользователя библиотеки это тоже абсолютно разные вещи не имеющие абсолютно ничего общего. Либо мы пишем квак/анрил, либо инженерное приложение. Если мы тут будем делать абстракцию мы получим решение одинаково плохое и для того и для другого.

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

>> На определение. +++ === ** ы?

> Ну нету, ага. Случился у Бьярна приступ Java-болезни.

Не согласен. Это произошло из-за его стремления быть синтаксически совместимым с С. Хотя достаточно было быть семантически совместимым и предоставить транслятор из С в новый язык.

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