![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
||||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я где то видел подобный тест, для теста была выбранна игра жизнь, и проводился замер времени затраченного на N итераций. И Java там себя показала тоже очень достойно. Предлагаю провести такое тестирование самостоятельно. Кто хочет покчаствовать пишите.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
redrick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 547 Регистрация: 7.1.2004 Где: Москва Репутация: 3 Всего: 5 |
спасибо большое - впервые увидел подобные тесты, до этого слышал только что Java обгоняет C++ на Sun Sparc, что вроде как не так впечатляет. Сплош и рядом сионисты кричат, что дескать виртуальная машина - это гроб в плане производительности
-------------------- Имею Мнение Хрен Оспоришь |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
JIT / HotSpot переводит bytecode в нативныи, так что подобная скорость неудивительна
![]() Это сообщение отредактировал(а) Domestic Cat - 18.6.2004, 23:56 -------------------- |
|||
|
||||
Domestic Cat |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Две программы:
Я использовал си компилятор
и Java
Вот результаты нескольких запусков, C обозначает gcc -o test test.c ./test C1 - gcc -O -o test test.c ./test C3 - gcc -O3 -o test test.c ./test Java - javac -O Test.java java Test (Программа всегда выдает "Program execution time is x milliseconds", я привожу только число) N - число циклов с программе, всего привожу по три результата. Результаты для javc -O Test.java и javac Test.java практически не отличаются.
Это сообщение отредактировал(а) Domestic Cat - 20.6.2004, 00:23 -------------------- |
||||||||||||||
|
|||||||||||||||
Domestic Cat |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Повторил тест, только усреднил время по 20 запускам и добавил
JavaS обозначает javac Test.java java -server Test Цифры - среднее время выполнения в ms (чем меньше тем лучше)
![]() ![]() ![]() Это сообщение отредактировал(а) Domestic Cat - 21.6.2004, 16:51 -------------------- |
||||||
|
|||||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Наконец нашел время заняться этим делом
![]() Прогнал тест Domestic Cat и вот что получил: Использовался компилятор Microsof Visual C++ 6.0, Borland C++ Builder 6.0 с предустановками Release и Optimisation: perfomance. Для Java использовалась JDK 1.4.2_01, копилировалась с ключами -O и -g:none. AMD Athlon XP 2000, RAM 768Mb, Windows XP Pro SP1
Intel Celeron 1300, RAM 256Mb, Windows 2000 Pro SP4
Добавлено @ 21:21 Через пару деньков доделаю програмку жизнь и выложу результаты. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В коде Domestic Cat есть небольшая ошибка, факториал 100 не поместится в 4-х байтовое целое, исправил ее и заодно скомпилил под Delphi получились очень интерестные результаты:
это усредненные результаты после 10 запусков. Четно говоря столь слильного преимущества Java я не ожидал. Добавлено @ 22:42 Забыл указать: Машина: AMD Athlon XP 2000, RAM 768Mb, Windows XP Pro SP1 Компиляторы: Borland Delphi 5.5 и плюс те же что и ранее. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Результаты впечатляют. По моему у серверной Явы коронка: быстрые вызовы функций(тоже где то в тесте было). Факториал вычисляется рекурсивно, отсюда и столь впечатляющий результат... наверное...
![]() -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
В связи с очередными дускусиями Java v.s. C++ решил поднять темку.
На этот раз думаю надо взять програмку посерьезней. Я предлагаю все ту же жизнь, а заодно добавить сюда еще одного новичка: C#. Предполагается псевдо-бесконечное поле, реализуемое с помощью хеш-таблиц. На нем размещается парочка глайдерных ружей и кто быстрее выполнит заданное количество итераций. У меня есть готовый код для Java и C#, для C++ надо чтобы кто-нить взялся его написать, т.к. я с ним не знаком. Программа порождает много объектов, можно будет посмотреть где сборщик мусора эффективней и что выгодней сборщик мусора или ручное выделение памяти. Присоединённый файл ( Кол-во скачиваний: 77 ) ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
НЕ понял, ты с шарпом не знаком или С++? Если шарп - то я возьмусь.
Добавлено @ 02:32 Все, вопрос снят, нужен С++. -------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Лекции по С++, я прогуливал
![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
На это дело надо С++ шников брать, иначе обвинят
![]() -------------------- |
|||
|
||||
chipset |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 164 |
А в чём собссна дело? ![]() ![]() Что, где, когда писать? Добавлено @ 06:36 Увидел Ж) Это сообщение отредактировал(а) chipset - 19.3.2005, 06:36 --------------------
|
||||
|
|||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Ну, у меня C# и Java наравне - при компиляции jikes -g:none -O , флаге -server и подборе -Xmn.
-------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
У меня C# быстрее на 5%. Компилятор javac -g:none, флаг -server использовал а с -Xmn, не пробовал играться, надо будет попробовать.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
По моим субъективным ощущениям jikes дает более быстрый код, как-нибудь проверю.
-------------------- |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 164 |
Народ, обьясните как такое может "логически", чтобы интерпретатор работал быстрее ассемблерного кода?
--------------------
|
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Дык не ассемблерного, а С++шного, - две большие разницы
![]() http://www.javaworld.com/javaworld/jw-02-1...02-jperf_p.html -------------------- |
|||
|
||||
chipset |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: нет Всего: 164 |
Там у них в тестах:
Simple Loop 46K(С++) vs 3.9K(Java) Они наверное в Debug компилили, я делал ActiveX 2 кб ![]() Это сообщение отредактировал(а) chipset - 3.4.2005, 07:29 --------------------
|
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
То ж не просто цикл, там ряд мат операций, и т п, в любом случае С++ шный код будет больше.
-------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
После недавней дискусси с Се ля ви, решил поднять некоторые тесты которые мы гоняли на работе и прогнать их еще раз.
Сам код представляет собой итерацию по 2-м массивам, вычисление разности и запись результата в третий массив (нам это было необходимо для обработки видеоизображения). На скорость тестировались:
Sun: -Xms50M -Xmx200M -server BEA: -Xms50M -Xmx200M -jrockit Были получены следующие результаты:
Для Sun JVM один раз было полученно время ~20 сек, но так как оно сильно выделяется на фоне остальных запусков и повторить эксперимент не получилось, в расчет я его не брал. Для C++, тоже замечена странная особенность, первый запуск теста выполняется быстрее последующих на ~1.3 сек, в чем проблема я так и не понял, но результат оставил. Это сообщение отредактировал(а) LSD - 7.9.2005, 10:05 Присоединённый файл ( Кол-во скачиваний: 22 ) ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
aquaserpent |
|
||||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Исходя из примера в MSDN функция clock() возвращает время в миллисекундах:
Тогда совершенно не понятно, зачем это время умножать на 10 в пятом посте в примере?..
Это сообщение отредактировал(а) aquaserpent - 7.9.2005, 16:52 |
||||
|
|||||
bars_uz |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 26.3.2005 Где: Tashkent Репутация: нет Всего: нет |
Ya neponemayau ,, cheta vizde ideot spor na temu Java vs C++... Bratani ya odnu vesh ponyal, chto oba yzika otlichnie..
oba yzika lutshe pod kakoeta zadach... no ya dumayu vseotaki Java na odin shag vperedi... |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
bars_uz во первых у меня просьба не писать транслитом, тяжело читать, если есть проблемы с русской раскладкой используй чекбокс "транслит".
Во вторых подобные вопросы не всегда связанны с "религиозными войнами". Например я гонял последний тест, для того чтобы выяснить насколько пригодна Java для применения в нашем проекте. Ну и наконец, должен же быть у нас заготовлен "наш ответ Чемберлену" ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
aquaserpent |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Не знаю как в остальных тестах, а в первом примере просто неправильно замеряется время в сишном примере. Его нужно просто поделить на 10 (точнее не умножать на 10). И все становится на свои места...
Это сообщение отредактировал(а) aquaserpent - 7.9.2005, 22:52 |
|||
|
||||
Mayk |
|
||||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
Вы не правы. Котъ писал,
Поэтому MSDN тут не при чём. Вообще по Стандарту CLOCKS_PER_SEC = 1000000. А ни 1000, как сделано у мс. Пасикс не указ мелкомягким, а последние не указ пасиксу. Не знаю про cps в апплах, не юзал. Судя по *10, он им тоже не указ. Кстати, мне почему-то кажется, что Доместик 4 секунды от 0.4 отличил бы. Ну я бы, к примеру, отличил. Проведем еще раз тест. Результаты для 1000000 итераций(без всяких оптимизаций, чтоб за цикл никто ничего не выкинул) Java: 1984, 2000, 2000, 1985 ms Борла: 1500, 1500, 1500, 1531(*10 убрано) ms VS2003: Дебаг: 11016ms((*10 убрано) 11 СЕКУНД НАФИГ. 11 секунд явно длятся больше секунды. Я уж думал, повисла). Релиз: 0ms(!!!). Фтопку. Фигня какая-то. Ну и где опережение в десять раз, чтоб всё встало на свои места? Я пока вижу(Visual'но - черное окно в течение 10 секунд) только ухудшение в десять раз в вязанке. В ней делить надо на 10, чтоб она не выбивалась. Давайте проведем масштабное сравнение компилеров, а? Ну пжалуста. ![]() ![]() зы. В следующий раз, прежде чем кричать "*10 - это не правильно" либо проверьте сами, либо подумайте, совпадает насколько ваш clock() совпадает с clock()'ом проверяющего:
Это сообщение отредактировал(а) Mayk - 9.9.2005, 07:58 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||||
|
|||||||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
Mayk, очень прошу, ненадо жаргона, я в твоем посте нить теряю
Чтобы это значило?
-------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
aquaserpent |
|
||||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Mayk, при чем здесь мелкомягкие? Неужели Вы считаете, что одна и та же СИШНАЯ (а не мелкомягковская) функция будет возвращать разные значения под разными компиляторами?
![]() ![]() А MSDN, в общем-то, является очень даже авторитетным справочником. И прежде чем "кричать" (как Вы заявляете) я ображаюсь к документации. Теперь подтверждени (модифицированный пример).
Засекаем время секундомером. Java - 128 cек. CPP - 85 сек (плюс/минус секунда погоды не делает). Теперь то, ЧТО ВЫДАЕТ ПРОГРАММА. Java - 128032. CPP - 845150. Ничего не смущает??? Так что MSDN в очередной раз оказался на высоте. А доку читать надо. ![]() А мерять время в Debug или умножать реальное время на 10 ![]() |
||||
|
|||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
На какой оси засекалось?
Ага, прям так щас. С каких это пор МСДН имеет хоть какое-то отношение к Макинтошу? Кстати, доки действительно надо читать. На маздае 1000, на дарвине (мак ос х, который я и пользовал) - 100. 1/CLOCS_PER_SEC = количество секунд за один тик. Чтоб перевести в миллисекунды, домножаем числитель и знаменатель на 10. Знаменатель выбрасываем (в Java коде все итак в мс) и получаем то что надо. Так что читайте мануалы и не верьте в кроссплатформенность си. -------------------- |
||||
|
|||||
aquaserpent |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Я замерял под Win2000 Prof.
Согласитесь, что результат говорит сам за себя. Дело не в том, на сколько программа на Java работает медленне, чем на С. Дело в том, что по вашим тестам она (программа на Java) работает БЫСТРЕЕ. А это неправильно. Элементарное правило треугольника: AB+BC <= AC. Это сообщение отредактировал(а) aquaserpent - 9.9.2005, 13:45 |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Не согласен. Ты вообще ничего не указал, ни ключей запуска, ни версию JVM, ни конфигурацию машины, ни компилятора. Да и противоречие с теми тестами что я гонял разительное, вообщем [i]не верю[b]. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
aquaserpent |
|
||||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
Ну, верить или не верить, это дело личное. Не верите - проверьте. Я компилировал VS6.0 (Release, естесственно). Никаких дополнительных настроек не ставил, т.е. все по умолчанию. Java - jdk1.5.0_01. Компилировал с теми же параметрами, что и в самом первом примере. Машина - PIV-2400, 512Mb. Хотя это все и не имеет значения. Это сообщение отредактировал(а) aquaserpent - 9.9.2005, 13:55 |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Без дополнительных сведений не проверишь ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Mayk |
|
||||||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: нет Всего: 134 |
VS2003. - запускаем новый сишный проект под vs2003. Дебаг: 11016ms - время выполнение(11016ms) выведенное на экран в режиме Debug(а не Release) и запущенное через Start а не через Start without debugging. Если сделать Start without debugging, то время измениться не значительно. Что-то около плюс-минус 100 мс. 11 СЕКУНД НАФИГ. 11 секунд жизни Mayk'а потрачены зря ![]() 11 секунд явно длятся больше секунды - это не ошибка вывода на экран, прошло действительно 11 секунд (*10 убрано) - в коде (t2-t1)*10 убрано умножение на 10, чтобы результат соответствовал действительности. Я уж думал, повисла - мат по поводу тормознутости кода. Релиз: - в конфигурации Release. 0ms - время, выведенное на экран. (!!!) - удивился Фтопку. - еще один мат, по поводу оптимизации кода(шибко умная) Фигня какая-то - так нельзя тестировать и сравнивать. Очевидно, factorial() был выкинут из цикла. Надеюсь понятно объяснил ![]()
Смущает то, что код для мака был запущен на винде.
Авторитеты авторитетам врознь-
Согласен. Это сообщение отредактировал(а) Mayk - 9.9.2005, 14:02 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||||||
|
|||||||||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
![]() -------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
aquaserpent |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 15.8.2005 Репутация: нет Всего: нет |
А что? Секундомер (обычные часики) при запуске на маке по-другому работает и Java-программа начинает работать быстрее сишной?
![]() А тестить на скорость дебаг-версию... Это ж надо так себя не уважать... |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Да не, мужики, ну не верю, что "виртуальная" java быстрее "неуправляемого" С++ работала
![]() Хоть тестите,хоть не тестите. -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Да сколько раз можно рассказывать, что JIT на лету генерит нативный код для метода. И когда ты вызываешь этот метод снова, то он уже фактически в двоичном коде. На конференции разработчики говорили, что они сделали так, что даже научились переключаться при работе метода с байт-кода на нативный. Т.е. раньше JIT работал только при выходе из метода. А первый раз сидишь под байт-кодом. Так вот теперь JAVA будет переключаться даже без выхода из метода. И код оптимизирован может быть под процессор. Т.е. под конкретную можель. А exe уже не оптимизируешь. Какой код есть, такой будет на любой машине. Добавлено @ 18:02 Понятно, что время на JIT теряется. На первое время. Но после него получаем фактически двоичный код. Нет уже никакого байт-кода. Забудь. А если учитывать, что такого рода приложения крутятся круглосуточно, то понятно, что большая часть кода уже нативная. На конференции вообще говорили про разработку Real Time Java. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это уже прям религия какая-то получается ![]() Верую ибо С++... -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
По тестам получалось, что Java быстрее си после неоптимизированной компиляции, и медленнее оптимизированной компиляции. Да это и на глаз было видно при большом количестве итераций. О чем тут спорить непонятно.
Сейчас все виртуальные машины используют JIT. Потому верить тут нечему - это тот же си. А там все зависит от того, насколько компилер умный. -------------------- |
||||
|
|||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Ты вчера был, да? Я не смог. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Се ля ви |
|
||||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 8 Всего: 127 |
LSD, ну ты б ещё с JVM 1.0 95-го года сравнил! ![]() Ну если уж пятёрку sun`овскую берёшь - бери и соответственно пятёрку BEA JRockit! Естественно, что с выходом новых версий кучу всего оптимизируют и сравнивать разные версии, IMHO, просто некорректно. Если у тебя нет - можешь выложить исходник этого теста, я у себя прогоню-посмотрю. P.S. Вообще же серверную JVM и клиентскую не очень хорошо сравнивать ещё и по вот какой причине - к серверной машине гораздо выше требования надёжности и долговечности. Например, sun`овская считается клиентской и не рассчитана на то, что треды живут очень долго. Если тред крутится уже целый месяц, он может взять и умереть. Если запускаешь программы и работаешь в них, то это не критично, а вот когда у тебя крутится на корпоративном сервере какая-нибудь зверская система автоматизации типа 24/7 - это очень даже критично! Это сообщение отредактировал(а) Се ля ви - 24.9.2005, 18:20 -------------------- |
||||
|
|||||
LSD |
|
||||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А это что по твоему??? Это JRockit 5.0 взято отсюда, последний релиз.
В том посте есть аттачмент, угадай что там ![]()
Считается кем? И вообще откуда такая информация насчет тредов?
Вообщем это конечно да, но гонять тесты непрерывно хотя бы месяц, нет возможности ни у меня, ни у тебя. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||||
|
|||||||||
Се ля ви |
|
||||||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 8 Всего: 127 |
Сорри, чего-то я туплю, мне покзалось, что у тебя четвёрка была... ![]() ![]()
Это мне препод из "Ланита" рассказывал, когда я ему соответствующий вопрос задал. С его слов информация.
Ну вобщем, да... -------------------- |
||||||
|
|||||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
было бы интересно еще с gcj сравнить.
-------------------- Бонифаций. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Займись, а я может повторю твой тест ![]() И кстати почему только GCJ? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Бонифаций |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
потому что gcc и gcj это два frontend для одного backend. Так что по результатам проще было бы оценить влияние именно языка. -------------------- Бонифаций. |
||||
|
|||||
Guest |
|
||||
Unregistered |
ну вот. Попробовал. В качестве теста взял решето Эратосфена.
Код для жабы:
Для С
Результаты - количество итераций за 10 секунд. По простому, чем больше число, тем круче: Для явы получаем при gcj --main=Sieve Sieve.java 3968 итераций в секунду. С оптимизацией, то есть gcj --main=Sieve -O2 Sieve.java, - 8937 итераций в секунду. Для gcc sieve.c (без оптимизации) 4870 ит/сек С оптимизацией (gcc -O2 ) - 10503 ит/сек Для сравнения на обычной яве - примерно 7026 ит/сек (java -Xms50M -Xmx200M --server, транслировалось с -g:none, java -version 1.5.0_04 от Sun ) |
||||
|
|||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
Это был я в предыдущем сообщении (под именем Guest почему-то получилось)
-------------------- Бонифаций. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Интерестно, а под чем запускал и машина какая?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Интересно, а если сортировку сделать и сравнить?
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
машина пентиум 4, 2.4GHz 512M, linux slackware 10. -------------------- Бонифаций. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Даже если так - то все рвано разница составляет порядка 10%. А это вообщем-то вполне допустимый разброс. И вполне приличная скорость. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Давай. Напиши сишную часть. Бонифаций Все в тесте хорошо, кроме одного момента, ты на каждой итерации вызываешь функцию полученя времени. Корректно ли это? Ведь в Java эта функция требует преобразования из системного времени во внутренний формат Java и неизвестно сколько это занимает времени. Попробуй просто сделать фиксированное количество итераций, подбери их чтобы время было порядка 15-30 секунд. И сравнивать уже время выполнения. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
LSD
Ок..Какую(сортировку) будем использовать? Только я не пойму условия-от меня текстовый код, что ли? Тогда на каком С++ компиляторе будем тестить? Добавлено @ 16:52 Быстрая сортировка..
выполняет соpтиpовку части массива, огpаниченной индексами L (слева) и R (спpава); для соpтиpовки всего массива необходимо сделать вызов QuickSort(A, 1, n); глубина pекуpсии <= log n Это сообщение отредактировал(а) Coocky - 29.9.2005, 17:03 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
LSD |
|
||||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Без разницы, мы ведь не алгоритмы сравниваем. Главное чтобы код был простым (его ведь еще на Java надо перевести).
Да. (посмотри примеры выше, как там народ делал)
Да на всех GCC, GCJ, VC++, Intel C++ Compiller, у кого что есть -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||||
|
|||||||
Бонифаций |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
Если делать выводы, то я бы сказал, что
-------------------- Бонифаций. |
||||
|
|||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Вот, сравните( у меня JAVA нет), осторожно-много памяти
![]() Настройки по умолчанию.. VC 2003 Присоединённый файл ( Кол-во скачиваний: 14 ) ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
У кого нет VC, вот исполняемый файл.
Программа сортирует массив из 39999996 случайных элементов в диапазоне 999 до 32766*1000-1 На WinXP ОЗУ256, Celeron 1200MHz-сортировка с настройками компилятора по умолчанию 20.7400 секунд
Это сообщение отредактировал(а) Coocky - 30.9.2005, 13:00 Присоединённый файл ( Кол-во скачиваний: 8 ) ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
я бы советовал использовать одинаковые массивы для обоих версий дело в том, что у быстрой сортировки есть не очень приятное свойство: ее вычислительная сложность зависит от "удачного" выбора разделяющего элемента если все время не будет везти (крайний случай), ее сложность пропорциональна N^2... -------------------- qqq |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Согласен и знал об этом, но как же заполнить? ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
случайно ![]() а потом записать в файл перед запуском функции сортировки обе программы читают массив в память измерение времени начинать после чтения (а то получится, что измеряются две скорости - чтение с диска и алгоритмическая, а мешать разные измерения вместе - не очень хорошо...) если же не хочется добавлять сюда операции с диском, можно поступить иначе: реализуем генератор случайных чисел, инициализируем его одним и тем же числом запускаем кучу раз - получаем одну и ту же последовательность... генератор можно взять простейший - типа x=(x*a+b)%m (у нас же не криптография, в конце концов) конечно, можно было бы использовать встроенные генераторы, но я бы не советовал: неизвестно, какой из них работает быстрее даже если известно, то возможно, что он работает быстрее не из-за языка, а из-за пониженных требований к качеству случайных последовательностей (кто его знает, вдруг в Java встроен качественный генератор случайных чисел и это даст неоправданное преимущество для C++?) -------------------- qqq |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Лучше файл
![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Ну ладно, пусть сами исправят.. У меня все равно JAva нет, мне пофиг генератор...Не с чем сравнивать
![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
параметры для генератора можно посмотреть в этой теме:
http://forum.vingrad.ru/index.php?showtopic=7465&view=all -------------------- qqq |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ты Сишную часть исправь и перекомпили, а то у меня VS нет. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Ну кто нить сравнивал? Че молчите?
Или до сих пор прога на Java работает? ![]() Добавлено @ 14:22 LSD А че исправить-то генератор случайных чисел, или в файл записать "родной генератор"? -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Сделай заполнение массива из файла. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Давай полное имя файла....который нужно считать..(я ж должен в коде его "открыть") -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
LSD
Ну у меня все готово! имя файла давай! -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
data.bin А еще лучше пусть как параметр командной строки передается. Только давай форматы согласуем, сортируем мы знаковые 4-х байтовые целые. В каком формате ты их будешь писать в файл (litle-endian или big-endian)? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Значит я сделал вводимый путь, считывает файл ввиде бинарного из 39999996 значений 4 _х байтовых чисел
-------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Порядок байт какой?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Вот файл. Положи файл радом с прогой и задай относительный путь.
Думаю считывать будет долго. Следуй инструкциям на экране ![]() Для тех, кто шарит в С++
Добавлено @ 16:37
Не понял.. Считываю в массив, начиная с индекса 0 по 39999995, считываю построчно, вроде ![]() Присоединённый файл ( Кол-во скачиваний: 5 ) ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
порядок, как будто - старший-младший
-------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
это конечно, не мое дело, но все же, почему не просто
fread(pa,sizeof(long),size,stream) ? и если мы читаем в цикле все по очереди случайные значения, почему int numwritten=fread( &pa[i], sizeof( long ), size, stream ); а не int numwritten=fread( &pa[i], sizeof( long ), 1, stream ); ? и еще не лучше ли назвать numread а не numwritten? И еще бы какой-нибудь код чтобы сверять его с size, а то он как-то присваивается и нигде не используется. а вот еще - почему не просто long pa[size] в стеке, а где-то в куче его выделяем, а потом удаляем? Хотя это конечно неважно -------------------- Бонифаций. |
|||
|
||||
Metal_Heart |
|
|||
а почему бы и нет? ![]() ![]() Профиль Группа: Участник Сообщений: 728 Регистрация: 31.3.2005 Где: Москва Репутация: 4 Всего: 12 |
то, что каксаемо работы с файлом - совершенно не важно, так как не в этом суть
-------------------- не стыдно учиться, а стыдно не учиться |
|||
|
||||
Coocky |
|
||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
У меня больше long pa[99999] вылетает прога в дебаг! ![]() Добавлено @ 16:59
Это случайная переменная. Она там ненужна. Это когда тестил-для дебагера использовал Ребята, кто считает где ошибка-подправтеи выложите снова! Я давно в консоли не писал.Извините...Сишники ![]() ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
||||
|
|||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Программу Coocky на Java я перевел:
А вот генератор тестовых данных:
Теперь о тестах. Первый раунд Java выиграла нокаутом на первой секунде матча ![]() Coocky ты чего там намудрил с загрузкой из файла? Запускаю программу и она у меня на этапе загрузки данных Please wait! Open your file!!! висит 5 минут, загрузка ядра по диспетчеру задач 100%? З.Ы. Java загружает данные за 0,9690 секунды ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
||||
|
|||||
Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: нет Всего: 62 |
Интересно, а какой у тебя размер файла, в котором записано 39999996 элементов по 4 байта? ![]() -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья ![]() |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
примерно 156 мегабайт
-------------------- Бонифаций. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Если верить Windows: размер 159 999 984 bytes, на диске 160 002 048 bytes ![]() Это время конечно не после первого запуска, данные сидят в кеше (столько данных, за такое время, диск не в состоянии прочитать). Но попробую сделать это после перезагрузки. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
я пробовал. Вот два запуска. первый после перемонтирования раздела (т.е. без кэша), второй соответсвенно уже с кешем
bash-2.05b$ /opt/java/bin/java -Xmx200m Test DT We are here: Load array 4.197 seconds Sort array 13.562 seconds bash-2.05b$ /opt/java/bin/java -Xmx200m Test DT We are here: Load array 0.646 seconds Sort array 13.976 seconds А вот что показала сишная программа (слегка модифицированная чтобы загрузка нормально работала) ./testcc DT New memory...Please wait.. Please wait! Open your file!!! Ok! I've eaten it!!!!!11 Sort array 9.43 seconds -------------------- Бонифаций. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Бонифаций
Попробуй запустить JVM как серверную (-server). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
bash-2.05b$ /opt/java/bin/java -Xmx200m -server Test DT
We are here: Load array 4.559 seconds Sort array 12.015 seconds bash-2.05b$ /opt/java/bin/java -Xmx200m -server Test DT We are here: Load array 0.657 seconds Sort array 12.277 seconds -------------------- Бонифаций. |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
Я переделал С++ программу так, как мне кажется правильным. (приаттачено) Скажу сразу, я юниксовый житель и писал (и пробовал) под юниксы. Windows ветку я написал " исходя из здравого смысла и общей эрудиции", но не пробовал. У кого есть желание - welcome. Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() -------------------- Бонифаций. |
|||
|
||||
Дельф |
|
|||
Unregistered |
http://weblogs.java.net/blog/opinali/archi...s_hotspo_1.html
Давайте по этому поводу прогоним тесты по новой. Выложите кто-нибудь .classы на www.ultrashare.net |
|||
|
||||
mndkr |
|
|||
Unregistered |
Уважаемые защитники Java, вы же понимаете, что претензии к Java-приложениям заключаются не столько в скорости вычислений, сколько в работе графического интерфейса пользователя. Работа Java-приложений с rich GUI на маломощных машинах ощутимо медленнее, чем работа приложений, откомпилированных в native код под конкретную ОС. (Эта пресловутая JIT-compilation тут не сильно, видимо, помогает). Тормозной интерфейс сильно портит впечатление от Java-программ. На ваших Р4 это, может быть, и незаметно, а в будущем эта проблема в связи с ростом производительности процессоров вообще исчезнет, но сейчас далеко не у каждого стоит проц с частотой в 3 ГГц.
|
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Тогда приводи конкретные данные - на какой машине что и как тормозит. Потому что с P2 Java программы с гуем довольно трудно отличить от нативных. -------------------- |
|||
|
||||
Zandr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 433 Регистрация: 16.7.2004 Где: Новосибирск Репутация: 9 Всего: 13 |
Domestic Cat, согласен
|
|||
|
||||
хочу работать с Java |
|
|||
Unregistered |
Господа, хотелось бы услышать мнения о работе в Java с плавающей точкой. На рсдн, в тестах, приводятся просто потрясающие результаты Java по этому направлению - Java ставят в один ряд с VB. Неужели всё так плохо?
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ха! А что ты хотел от этого оплота Майкрософта ![]() Накидай пару тестиков и сравни, вопрос только с чем? С C++, C#, VB.NET или что еще? Java код написать не проблема. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
jer1 |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 24.1.2005 Где: Харьков Украина Репутация: 4 Всего: 5 |
взял программу Коть и запустил у себя
Вот программы которые я использовал:
компьютер Celeron 1.2 256M os: XP Professional, Linux Slackware ядро 2.4.26 jdk: java version "1.5.0_04" Java 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05) Java HotSpot Client VM (build 1.5.0_04-b05, mixed mode, sharing) результаты в миллисекундах (три запуска): delphi 5: 1141; 1140; 1156 java XP: 1187; 1203; 1187 java linux: 1201; 1189; 1203 java linux server: 685; 696; 705 c (gcc -o test2 CSpeedTest.c ): 19000000; 19000000; 19100000 c(gcc -O3 -o test CSpeedTest.c): 10800000; 11000000; 10800000 gcj (gcj -c -g -O JavaSpeedTest.java; gcj --main=JavaSpeedTest -o GCJSpeedTest JavaSpeedTest.o ): 2815; 2826; 2828 --------------------
:w!q |
||||||
|
|||||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
Другими словами С получился в тысячи раз медленнее?
![]() -------------------- Бонифаций. |
|||
|
||||
erka |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 13.7.2005 Репутация: нет Всего: 1 |
как по мне, clock() не миллисекунды выводит
Смотрим например сюда - http://www.phim.unibe.ch/comp_doc/c_manual/C/MAN/clock.htm The value returned is the CPU time used so far as a clock_t; to get the number of seconds used, divide by CLOCKS_PER_SEC. |
|||
|
||||
beartamer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 20.3.2006 Репутация: нет Всего: 1 |
Здравствуйте
Я только начал знакомиться с Java и у меня сразу возник вопрос относительно производительности типичных приложений (допустим Swing), связанный с расходом памяти. Как я понимаю, для каждого процесса создается экземпляр виртуальной машины и память вместе с процессом-приложением и всеми используемыми библиотеками занимает и jvm. Даже 10 совершенно одинаковых GUI приложений занимают в памяти примерно столько, сколько одно приложение * 10, словно никакого совместного использования библиотек и быть не может. Это нормально? Может быть я что-то делаю не так? Простейший Sample Swing App из поставки с NetBeans 5.0, будучи запущен в 10 экземплярах, занимает всю мою свободную память на рабочей станции... Трудно себе представить что на рабочей станции будет работать более 5 даже простейших приложений Java - каждое займет по 15-25 мб. Как-то это отталкивает, что ли.. Скажите как справиться? Срочно требуется идеологическая поддержка ![]() P.S. я тут первый раз заглянул, надеюсь никаких традиций древних постом не нарушу Это сообщение отредактировал(а) beartamer - 20.3.2006, 16:19 |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Да, это нормально. Ведь запуском java ... порождается новый процесс, и так для каждого приложения. Если не ошибаюсь, есть возможность запустить несколько десктопных приложений и под одной виртуальной машиной, но как это сделать - не знаю. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 4 Всего: 16 |
Lamer George, Написать свой запускатор, который будет жить в явамашине и дёргать main-методы?
![]() -------------------- |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
А Бог его знает, почему бы и нет. ![]() Кстати, вот только что наткнулся в мануале Анта на опцию fork таска java. Она как раз отвечает за запуск приложения в рамках той же JVM, что и Ant, или во внешней. По умолчанию - в одной. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
beartamer |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 20.3.2006 Репутация: нет Всего: 1 |
Так всё таки насколько это просто и естественно - запустить пару-тройку приложений разделяющих виртуальную машину и библиотеки классов? А то получается что писать простые пользовательские приложения на Java просто смысла нет - памяти не напасешься...
![]() |
|||
|
||||
kkorsakoff |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.10.2005 Где: Санкт-Петербург Репутация: 3 Всего: 14 |
Блин был какой-то продукт. Не могу вспомнить название. Суть в том, что он стартовал при запуске системы. При запуске java-приложения не создается новая виртуальная машина, а оно запускается внутри той единственной. Получаем большой выигрыш в скорости загрузки. Постараюсь вспомнить.
|
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
В общем-то, так и есть, если нет необходимости в кросс-платформенности. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: нет Всего: 3 |
Я в этом треде вычитал такую мысль, что sun'овская ява считается клиентской (потому что не достаточно сбоеустойчивая). Позвольте, господа, а чья же ява считается серверной тогда?
По поводу производительности джаги и си - тут мелькала уже разумная мысль, что в больших проектах критичным становится объем занимаемой памяти. Достаточно ли хорошо и быстро работает автоматический сборщик мусора? К тому же джага больно жадная до памяти по мелочи. Вроде (хотя надо бы, конечно, проверить) аналоги сишных строк, контейнеров и т.д, на яве занимают больше памяти (хотя бы потому что у них иерархия аж от Object'a у всех). Затем, при работе со всевозможными очень удобными классами в яве бывают накладные расходы по количеству операций (например объекты класса String во многих местах неявно копируются). Графический интерфейс в яве очевидно медленнее, чем написанный на "нативном языке" (не надо меня убеждать в обратном, я уж насиделся в IntlliJ IDEA на втором пне). В общем, я хочу сказать, что реальные работающие приложения не числа фибоначи считают. И интереснее посмотреть на результаты более приближенных к жизни тестов. ЗЫ: Я против явы ничего против не имею. Ява - это такой "программистский рай", без отслеживания кусков не нужной более памяти и с огромной кучей готового и удобного (Особенно мне понравилось, как здорово в ней воплотили многие паттерны проектирования в графическом интерфейсе). Это сообщение отредактировал(а) SaDFromSpb - 2.6.2006, 18:32 -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Что касается тех проектов, в которых участвовал я - Java-приложения вообще не становились узким местом системы. Как правило, нагрузка ложилась на базу (немалая часть логики находится в ней), и на сеть. А скорость выполнения ява-кода в оптимизации не нуждалась. Впрочем, я уверен, что существуют проекты, для которых именно этот пункт становится камнем преткновения.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Ну во первых такую мысль культивируют ребята из BEA, противопоставля ей свою JRockit. По чистой производительности в вычислительных тестах, она проиграла Sun-овской JVM, а гонять стресс тесты длительностью в недели у меня нет возможности. Во вторых есть действительно специфичные JVM, например Aurora от Oracle, там специфика в тесной интеграции с сервером. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
powerOn |
|
||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Хм... стало жутко интересно, и я накатал тестик, смысл которого скорость создания объекта + вызов метода.
Код С++ писал под Windows, с использованием MS Visual Studio 6.0 (поскольку другой не имею). На идеальность тест не претендует, поправьте меня если что нет так. С++:
Java:
С++: MSVS 6.0 (в настройках оптимизация поставлена на скорость) Java: 1.5.0_07-b03 (client/server) Время выполнения (миллисекунды): C++ (release) ~ 1297 Java (client) ~ 422 Java (server) ~ 203 ОС Windows XP Professional sp2 Комп: AMD Athlon 64 X2 4200+ (2.2 гГц) RAM 2 GB Так что можно сделать выводы, что Java местами даже побыстрее C++ будет ![]() |
||||
|
|||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
MoonCat, то что при частом создании маленьких объектов GC рулит по сравнению с кучей, было известно давно
![]() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 9 Всего: 39 |
Слабо вериться. Скорее всего java при компиляции высчитывает значение которое получиться (почему-то мне кажется, что именно так).
и просто его выводит, или каким-то подобным макаром. Предлагаю сделать значение 11 случайным и посмотреть, что получиться, в сравнении с с++. |
|||
|
||||
powerOn |
|
||||||||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Да я, вообще, еще тот любилеть Америки открывать. ![]()
Хорошо..., правим код: Java
C++:
Время выполнения (миллисекунды): C++ (release) ~ 1453 Java (client) ~ 937 Java (server) ~ 531 Может я в коде где ошибся? Но Java все равно быстрее... |
||||||||
|
|||||||||
JUncle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
Есть разумный компромисс - Eclipse SWT. Нативные графические библиотеки. Собственно, GUI Eclipse на нем сделан. В Java 6.0 Mustang обещали увеличить производительность GUI до уровня нативных приложений без всяких копромиссов в стиле SWT. Ну раз против не имеете, и такие разумные доводы за приводите, что же жалуемся? Это как в пилотировании самолета - размен скорости на высоту (C - > Java) либо наоборот. Ничего из ничего не получается. И ничто никуда не пропадает. Вряд ли ошиблись. Все дело в технологии HotSpot. "Узкие места" компилируются в машинный код и оптимизируются по адаптивному алгоритму, включая оптимизацию под конкретно ВАШУ архитектуру процессора (note: если он известен на момент выхода JDK). (А под какие процессоры может оптимизировать VS 6.0? - ритор. вопрос). Так что ничего удивительного тут нет. Кстати, попробуйте еще на VS 7.0 прогнать. Это сообщение отредактировал(а) JUncle - 17.7.2006, 20:22 --------------------
class JUncle extends Man // singleton{/*...*/} |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
HotSpot, JIT и прочие радости управляемых сред здесь не при чем. Единственное узкое место в C++ коде здесь — это создание и удаление объекта. В Java это буквально пара инструкций, в C++ — проход по chunck'ам кучи. В этом легко убедиться, заменив calculate в варианте на Java на статический метод, а в C++ — на свободную функцию. В этом случае VC 7.1 примерно равен Java, а Intel C++ 9.0 обгоняет процентов на 15–20. Добавлено @ 23:57
Странно, чего это межконтинентальные лайнеры забираются в стратосферу, а кукурзники летают в пределах 3–4 тыс. м ![]() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
JUncle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
Не хочу оффтопить, но это утверждение верно при пилотировании одного конкретного самолета. ![]() Это размен кинетической энергии на потенциальную и наоборот. На этом весь пилотаж и основан, в принципе. --------------------
class JUncle extends Man // singleton{/*...*/} |
|||
|
||||
$tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: нет Всего: 22 |
Прогнал тест powerOn (без ГСЧ) на Sun Java 1.5.0_06-b05, VC++ 8.0 и .NET 2.0:
Результаты: Java client ~ 800 Java server ~ 471 .NET (release) ~ 735 VC++ (release) ~ 3555 AMD Duron 1300 MHz, 512 Mb DDRAM, WinXP SP2. У плюсов результат действительно такой - приложение работает ощутимо дольше, чем на остальных платформах. Такой вопрос - почему существуют отдельно клиент и сервер для джавы? Или возможности серверной версии недостаточны для настольных приложений? Почему Sun не сделала универсальную версию на основе серверной? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Там разное поведение: для серверной ставится задача максимальной производительности, а для клиентской быстрый старт и минимизация потребления памяти. Например серверная JVM не отдает полученую память вообще, а клиентская отдаст когда в куче будет большой процент свободной памяти. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
unkis |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
а говорят что java 6 будет только серверной?
Правда ли это? -------------------- www.unkis.com |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Нет.
![]() |
|||
|
||||
unkis |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
Спасибо теперь все ясно.
![]() Извиняюсь за оффтоп. но питаюсь запустить в серверном режиме мою программу а мне тут вот такую ошибку.
Проверил действительно такой папки с файлом там нет. Хотя установил JDK 1.6 RC. Что же тогда устанавливать надо чтобы оно заработало в серверном режиме? -------------------- www.unkis.com |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Ты запуск делаешь на JRE-шной JVM. Запускай именно на JDK-шной java.exe. |
|||
|
||||
cerf_machine |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 12.2.2007 Где: тебя носило? Репутация: нет Всего: 1 |
А в чем заключается принцип игры жизнь, про которую был разговор в начале?
|
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
cerf_machine, посмотри пример: http://life.june.com.ua/
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
cerf_machine |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 12.2.2007 Где: тебя носило? Репутация: нет Всего: 1 |
О, забавно.
Меня совсем недавно друг просил это сделать. Он вычитал из какой-то фантастической книги. Я делал на c++, используя WinAPI, но приоритетная роль была отведена именно узору, который проявлялся в жизненном цикле организмов - пикселей серого цвета на черном фоне. Если интересно, могу показать. Это сообщение отредактировал(а) cerf_machine - 16.2.2007, 16:58 |
|||
|
||||
VOS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: нет Всего: 8 |
Прикольно все написано, только непонятно откуда такие цифры.
Тест с факториалами пробовал на довольно тормозном в мире C++ компиляторе Borland CBuilder
У меня получилось 1,079 сек Если всего лишь объявить вместо unsigned int factorial(unsigned int a) unsigned int __fastcall factorial(unsigned int a) получилось уже 0,857 сек Тест по созданию большого числа небольших объектов однозначно нечестный для С++. Потому что в С++ вы замеряете не только создание, но и удаление объектов (там есть delete a). А это минимум в 2 раза увеличивает время. |
|||
|
||||
devmstr |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 28.4.2004 Где: Ukraine Репутация: нет Всего: 11 |
А что Вы считаете что JVM объекты вообще не удаляет? У неё что безграничное пространство для действий без ограничений? -------------------- Think different ©Steve Jobs ![]() |
|||
|
||||
VOS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: нет Всего: 8 |
Я подозреваю, что объекты будут когда-нибудь удалены. Ключевой момент когда. Но очень сомневаюсь, что это происходит в момент замера теста. Я буду Вам благодарен, если Вы расскажите мне в какой момент происходит реальное удаление объектов в Java и как я могу это контролировать. Замечу также, что показанный здесь способ создания объектов является самым медленным в С++. Обычно, когда Вам нужны часто создаваемые/уничтожаемые небольшие объекты их создают с помощью конструкции
А a(i); a.calculate(...); В этом случае скорость вырастет на порядки, т.к. чтобы создать/уничтожить объект достаточно передвинуть указатель по стеку и все. Понимаете, даже если поверить, что JIT компилятор неимоверно крут в Java или там в .Net, есть еще некоторые особенности этих языков. Например массивы. И Java и там C# при каждом обращении к какому-нибудь элементу по любому будут проверять на допустимые границы и т.д. Я ни в коем случае не говорю, что это плохо в общем смысле. Но это не добавляет производительности в частности. Но именно из-за общего смысла, для мобил я пишу на Java ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Благодарности мы не дождёмся - это процесс непредсказуемый ![]() -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
Зато можно с увереностью отодвинуть процесс удаления
![]() можно изменить тест так: в C++ только создавать объекты в Java создавать объекты и использовать их потом (чтобы сборщик мусора не удалил их сразу) и замерить только время создания в обеих программах... Добавлено @ 12:05 а вот время удаления, скорее всего и не получится сравнить из-за этой самой непредсказуемости (хотя яслышал, что можно принудительно вызывать сборщик, но ведь он может начать собирать и другие какие-то вещи) Это сообщение отредактировал(а) maxim1000 - 10.3.2007, 12:06 -------------------- qqq |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Можно попробовать, но без гарантий, что он действительно вызовется. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
VOS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: нет Всего: 8 |
Еще несколько слов по поводу тестов. Мне кажется сам подход, который пытаются здесь применить - неверен. Вы сначала пишете тест на Java, а потом просто копируете его как код C++.
Не выполнив даже элементарные "косметические" действия как в примере с __fastcall Это в корне неверный подход. Хотите получить реальные тесты по производительности, пригласите специалиста в C++. Поставьте ему задачу и пусть он ее сделает любыми доступными ему средствами в C++, а Вы выполните ее любыми доступными средствами в Java. Естественно исходники должны быть открыты и доступны всем участникам. Возможно даже Вы сможете заинтересовать смежный форум по С++ и получится даже некое межфорумное соревнование ![]() Итогом могут получиться уже заслуживающие внимания результаты, которые пригодятся в реальной жизни при выборе средства разработки для той или иной задачи. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Уже приглашали: Coocky и Chipset-а, до конца так и не довели. Если есть охота займись. А вообще есть раздел "Наши тесты" там и тема соответсвующая есть. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
$tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: нет Всего: 22 |
Вы уже, наверное, видели мою тему в тестах о бенчмарке OpenGL на Java и C++. Сейчас уже есть один человек, который согласился написать код на C++. Правда он копирует мой весьма неоптимизированный (в плане графики, да и обхода дерева мешей) код на Java. Если кто-то хочет присоединиться - пожалуйста. Правда лично мне кажется, что производительность реальных графических приложений будет примерно одинакова - графика сейчас больше видеокартой обсчитывается, а не процессором.
Да и еще, есть такие игры как ИЛ2-Штурмовик, Chrome, Xtreme Rally (неплохой автосимулятор кстати, даже на небыстром компе летал), Закон и порядок. В них логика (все кроме графики) делалась на яве, а графический движок на C++. И ничего, геймеры не заметили в принципе. ;) |
|||
|
||||
SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: нет Всего: 3 |
Вот удивил, так удивил!... Это достоверная инфа? VOS, +1. Действительно, многие сравнения не честны. В серверной джаве наверняка политика менеджера памяти сильно отличается от С++сных реализаций. Там, например, память вполне может выделяться большими блоками, которые по-тихоньку заполняются, к тому же удаляется это все дело фиг знает кода. В си, во-первых у тебя есть выбор, какую память выделять, во-вторых есть замечательная возможность с легкостью создать собственный менеджер памяти (или просто взять альтернативный, например, из библиотеки <locki> ), который будет несоизмеримо эффективнее по сравнению со стандартной операцией new для маленьких объектов. Так же есть возможность явно рекомендовать компилятору хранить определенную переменную в регистре и т.д. и т.п. (хотя это уже тонкий напильник....) В яве всех этих возможностей нет, скажем так, по определению. Так что, абсолютно уверен, что при небольшом желании на сях можно обогнать серверную джаву в любой задаче, если руки растут откуда надо. Это сообщение отредактировал(а) SaDFromSpb - 19.3.2007, 07:51 -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: нет Всего: 3 |
Ну может быть, еще компилятор для с++ половчее поискать прийдется для этого
![]() -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А при определенных усилиях на асме можно обогнать любой Си ![]() Вот только в больших проектах возможности вылизывать каждую строчку кода - нет. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Бонифаций |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 827 Регистрация: 15.9.2005 Где: Brisbane Репутация: 1 Всего: 40 |
Я не согласен с таким определением честности. Если ява действует разумнее при распределении памяти, это ее достоинство. Так что если мы пишем один и тот-же алгоритм на C++/java и java обгоняет - то в этом тесте она победила. независимо от того, кто как управляет своими ресурсами. -------------------- Бонифаций. |
|||
|
||||
SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: нет Всего: 3 |
Как тут уже сказали, проблема в том, что во многих примерах код явы просто скопировали на с++ и изменили, чтоб скомпилиось. Именно это не честно, потому что если бы человек изначально "думал" на си++, он бы реализовал решение по другому. Эту мысль высказал VOS, а я с ней согласился и добавил свою догадку об одной из причин обгона джавой сей в случае этих примеров.
Чем ты профессиональнее в конкретном языке, тем ты лучше пользуешся его естестественными возможностями. Поэтому у профессионалов опереденная "вылизанность" получается автоматически. -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Особенно использование сторонних менеджеров памяти ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
$tatic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 28.1.2005 Репутация: нет Всего: 22 |
Это достоверная инфа, правда игру Закон и порядок я к сожалению "не щупал". Но Chrome и Xtreme Rally сделаны одной фирмой на одном и том же движке. А Chrome выиграл даже конкурс от Sun Microsystems. Это сообщение отредактировал(а) $tatic - 19.3.2007, 20:05 |
|||
|
||||
JUncle |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
А особенно при использовании agile методологий, где предпочтительнее прозрачный код чем мифическое ускорение на три наносекунды ![]() --------------------
class JUncle extends Man // singleton{/*...*/} |
|||
|
||||
SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: нет Всего: 3 |
Если прийдешь к осознанию, что это нужно, то это дело пяти минут (если, конечно, не самому писать).
Прозрачность никуда не денется, если использовать язык естественным образом. Тут у нас религиозная война не начинается, случаем? ![]() -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
VOS |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: нет Всего: 8 |
В связи с тем, что дискуссия продолжилась, я все же решил переписать тест на создание большого кол-ва небольших объектов.
Времени особо раздумывать нет, поэтому вариант вряд ли самый быстрый. Итак первоначальный тест:
Первый тест - 6781 мс Второй - 421 мс Комп - P4 2,4 Ггц 512 МБ На нем запущен CBuilder, NOD, MS SQL, Oracle, Firebird и т.д. (лень выгружать было) Это сообщение отредактировал(а) batigoal - 20.3.2007, 11:41 |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Это сферический конь в вакуме. Смысл имеют только относительные результаты. Что же касается кода, то второй пример ни разу не эквивалентен первому. Т.к. во втором случае мы не можем освобождать память по мере необходимости, и если из 10 000 000 объектов нам нужен будет только один, то мы будем держать всю память занятой. P.S. Не верю я что на машине с 512 Мб памяти и такой толпой запущенных программ: можно комфортно работать. Те же MS SQL и Oracle, памяти жрут немерянно. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
VOS |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: нет Всего: 8 |
Изволите за ЦСКА болеть? Согласен конечно. Но относительные результаты думаю очевидны.
Я не претендую на это. Всего лишь показал как решить конкретную задачу - быстро создать в куче много небольших объектов. Реализация механизма, о котором я упомянул во втором примере, позволит и удалять отдельные объекты, но его реализовывать только ради теста у меня нет времени.
Это если их активно юзать. Если только хранимки править, то не особо напрягает. А вот когда еще среда разработки для Java запускается, вот тогда не сладко ![]() |
||||||
|
|||||||
alexsolo |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 5.4.2007 Репутация: нет Всего: нет |
Вот шикарный тест из LZMA SDK и Java и C# и оптимизтрованный C++ и Delphi: Исходники и бинарники (1.6 MB) Данные прогона на моих компах ![]()
|
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
alexsolo,
1. Откуда исходники и под какой лицензией они распространяются? 2. Кто писал код? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 1 Всего: 173 |
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
_Nikolas_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 6.2.2007 Репутация: нет Всего: нет |
Не вижу ничего удивительного что жава работает с обычными числами по скорости как С/С++.
По моему основные тормаза по сравнению с С/С++ жаве добавляет ядреное ООП. Всетки большинство реальных приложений на жаве работают заметно медленее их аналогов на С++ и едят больше памяти. |
|||
|
||||
Се ля ви |
|
||||||||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 8 Всего: 127 |
В продолжение спора о BEA JRockit. Я продолжаю утверждать, что эта JVM лучше подходит для production-mode J2EE - приложений, даже если они крутятся не на WebLogic`е.
Вот, буквально на днях они выпустили JRockit для Java SE 6. В качестве примера я взял на своём рабочем компе (P4, 2.8 GHz, 1GB RAM, WinXP sp2) и протестировал старт сервера JBoss 4.0.5 под последними 5-ми и 6-ми версиями на данный момент. Ничего не настраивал, просто скачал и развернул архив. Результаты такие: JRockit 6:
JRockit 5
Sun JDK 5:
А Sun JDK 6 почему-то вообще с ошибкой свалилась:
Сейчас, разберусь с 6-й JDK - ещё напишу... -------------------- |
||||||||
|
|||||||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Как лицензируется JRockit?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Се ля ви |
|
||||||||||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 8 Всего: 127 |
Дома тоже эта ошибка наблюдалась. Переставил - вроде пошло. Но машина другая (P4 3GHz, 2Gb RAM), так что - всё по-новой:
Sun JDK 6:
Sun JDK 5:
BEA JRockit 6:
BEA JRockit 5:
Тоесть у пятёрочки JRockit при избытке памяти производительность даже возросла... Ссылка для скачки на сайте BEA сопровождается текстом:
Завтра покопаюсь боле пристально в лицензионном соглашении, может быть и найду что-то интересное... Я думаю, дело в том, что к JRockit идут дополнительные инструменты для диагностики memory leak`ов и тюнинга - вот их использование уже вроде бы платно, хотя их тоже можно и скачивать и юзать - но уже в права на них я не вникал... -------------------- |
||||||||||
|
|||||||||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 8 Всего: 127 |
Вот по поводу Tools`овин информация:
-------------------- |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Не считая одной малости: по словам ведущего системного инженера BEA Systems (Мачей Грушка), JRockit стоит использовать только при наличии глубоких знаний о её внутреннем устройстве и способах её настройки. Я могу прокомментировать: эта jmv может на совершенно ровном месте упасть не пискнув или намертво зависнуть, причём частота таких падений/зависаний удручает. Короче, господа, есть только одна jvm и делают её в sun ;) Это сообщение отредактировал(а) w1nd - 22.4.2007, 21:24 -------------------- ![]() ![]() |
|||
|
||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 8 Всего: 127 |
В следующий раз, когда он приедет в Москву, я его расспрошу об этом по-подробней.
Ну, бывало несколько раз такое дело... Сервак на прошлой работе падал в среднем раз в 2-3 месяца без записей в логах и прочих следов и совершенно независимо от нагрузки. Но это не так уж часто... А ты уверен, что Sun`овская не упадёт, активно работая в режиме 24/7 через 2-3 месяца без перерыва? IBM`овская есть ещё, к примеру... -------------------- |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
На моей памяти не падала. Не поминай всуе, а то ышшо явится ![]() ![]() -------------------- ![]() ![]() |
|||
|
||||
alexsolo |
|
||||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 5.4.2007 Репутация: нет Всего: нет |
Возвращаясь к бенчмаркам. Сегодня тестируется следующий код:
Результаты забегов:
Исходники + бинарники: http://www.mycoolfotos.com/lzma/repeat_goto.zip (371 KB) |
||||
|
|||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Не понял, к чему это? то должны показать эти результаты? То, что мобильный проц медленнее? И так понятно. То, что одноядерный АМД 2ГГц медленне двуядерного интела 3ГГц? Просветите уж, для выявления чего сделан тест. И причём тут медленность жабы. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
А что вообще за алгоритм, то? И почему такая странная инициализация массива?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
NotGonnaGetUs |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 25.2.2005 Где: Москва Репутация: 4 Всего: 12 |
Источником этих тестов служит обсуждение на sql.ru.
Один и тот же алгоритм генерации перестановок копировался один в один с языка на язык и замерялось время работы. Из этих замеров видно, что java сильно проигрывает другим языкам, когда нужно проводить неочевидные манипуляции с элементами массивов. Увидив это, я предложил другой алгоритм решения той же самой задачи и протестировал его на java/c#. Оказлось, что теперь java в полтора раза быстрее с#. Это довольно занимательный факт. Ну и, к слову говоря, модифицированный алгоритм выполянется на java в несколько раз быстрее, чем исходный алгоритм на с++ собранный компилятором от интелл. |
|||
|
||||
VOS |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 145 Регистрация: 31.1.2007 Репутация: нет Всего: 8 |
Полагаю, что в конечном счете код, сгенерированный JIT-компилятором будет более быстрым, чем код сгенерированный классическим компилятором. В классике код генерируется один раз и, соответственно, остается постоянным.
JIT-компилятор же может в зависимости от внешних условий генерировать "изменяемый" код, а значит теоретически и более быстрый. Думаю особенно заметно это может быть в приложениях, которые должны работать в режиме 24X7 с надежностью не менее 99,99% (не более нескольких часов в год простоя). Там будет возможность собрать статистику вызовов и т.д., чтобы сгенерировать более оптимальный код для часто вызываемых функций, заменить их на inline, параметры не через стек, а в регистах , перегенерить так, чтобы часто отрабатываемый код целиком помещался во внутренний кеш конкретного проца, корректировать механизм выделения памяти и т.д. Аналогию можно провести с хранимыми процедурами. Работают быстро, потому что хранимка вроде как "скомпилирована". По большому счету это значит, что уже построен и сохранен план запроса. Соответственно выбраны индексы и т.д. Но это не всегда здорово, т.к. например на момент создания хранимки таблица A, участвующая в запросе содержала всего 15 записей, и план запроса оптимизатором строился исходя из этого. После месяца работы таблицу A раздуло и все, сохраненный план может быть уже далеко не оптимален. Я это к тому, чтобы не удивлялись поклонники Delphi, а потом и С++ " как это интерпретируемый Java обогнал по скорости компилируемый Delphi/C++/...". Это вполне возможно для некоторых классов задач. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
В теории это звучит заманчиво, но реализуют ли сейчас интерпретаторы такую функциональность?
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Подолью огонька в диалог.
Стоит ли использовать технологию, которую потом приходится обвешивать всяческого рода native библиотеками (мягко намекая на GUI Swing и SWT), тогда уж действительно слогон "compile once - run everywhere" становится не актуальным, более того начинает проигрывать девизу "write once - compile everywhere", хотя справедливости ради замечу, что в 1.5 версии отрисовка GUI становится сносной, а в 1.6 даже шустрой. |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Честно говоря, не осилил. Что вы хотели сказать? -------------------- ![]() ![]() |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Platon, не надо нас переманивать с Java на другие платформы.
![]() GUI даже на 1.4 можно было нарисовать так, чтобы он особенно не тормозил. Просто, большинство программистов знало, как что-то реализовать в принципе, но не знало, как именно это лучше сделать, чтобы не добавлять лишних тормозов. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
w1nd, другими словами хочу сказать, что проще программировать на C++ с помощью Qt, иметь абсолютно родное приложение, при этом написать код один раз и скомпилировать его посредством разных компиляторов.
nornad, в поисках истины прибегаю и к критике. Не могу сказать, что переманиваю, скорее сказать, прошу, чтоб успокоили и переубедили.
На это могу сказать так, что даже если ты плохо программируешь, в родном приложении тормозов можно не заметить, но на Java у тебя постоянная необходимость в том, чтобы весь код был максимально оптимизирован. Это изречение безусловно двояко, можно сказать, что код и так должен быть оптимизированным, НО и можно сказать, что GUI приложения завоевали себе неважную славу. ЗЫ: Используя метод от противного. Если принять за истину, что GUI-приложения на Java работают быстро, то нет необходимости в разработке родных GUI-библиотек, что противоречит действительности. => GUI-приложения медленные. ЧТД |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
А ты в курсе, сколько стоит Qt? ![]() Малость абстрактно и притянуто за уши, но я скорее согласен, чем нет. ![]() -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
В курсе, но там есть некоммерческие релизы + мы же в России живем ))) Можно узнать в каком месте притянуто? |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Как-то глядел у них на сайте и не видел некоммерческого. Хотя, мог и проглядеть. А подстрекать к нарушению прав на интеллектуальную собственность не стоит. ![]() Работать же приходится нередко и с зарубежными партнёрами. Ну и ещё. Если твоя программа написана с использованием украденного Qt (или чего другого), то на рынок США, например, соваться с нею проблематично - если будет установлен факт нарушения прав, это грозит кучей неприятностей и штрафов. Конечно, если пишешь под себя (блин, классная фраза получилась - можно не только ходить под себя, но и писАть ![]() Можно. Ты сознательно не учёл многие факторы. А эти факторы в определённых условиях могут повлиять на итог. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
w1nd |
|
|||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Platon, если бы на C++ было бы проще программировать, то не было бы ни java, ни .net, ни delphi. Если бы Qt предоставляла бы больше возможностей, чем java runtime, то они не делали бы jambi. Неверно с обоих сторон. Во-первых, многие нативные приложения потормознее будут, во-вторых, на java достаточно не совершать грубых ошибок. Точнее, одной грубой ошибки - исполнения кода в гуёвом потоке. А необходимости в альтернативных гуях действительно нет. Попробуйте провести тесты - вы удивитесь ;) [hr] В любом случае, будущее не за компилируемым кодом. Это сообщение отредактировал(а) w1nd - 28.10.2007, 19:49 -------------------- ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
w1nd, действительно на C++ сложнее программировать, поэтому вечеринки устраиваю в форуме Java ^_^ но, думаю, если бы java производил родное приложение, то все бы занимались этим...
И без этого тормозов хватает, исключая пожалуй 1.6, интересно 1.7. совсем выйдет на скорость родных приложений? Добавлено через 9 минут и 51 секунду
Вспомним понятие "теория игр", где оба игрока играют максимально оптимально. |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Факт коверкается. jambi сделан как раз для того, чтобы была возможность писать по возможности более родные приложения, так же как и SWT. Ах, да, у Java же есть такой прекрасный механизм, как сборка мусора, и перед этим стоит преклонить колено ^_^ Это сообщение отредактировал(а) Platon - 28.10.2007, 22:16 |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Понятия "быстро" и "медленно" весьма относительны.
![]() Ну вот, допустим, выполняется отрисовка на С++ за 0,001 секунды, а на Java за 0,003. И работает Java (допустим) в 3 раза медленнее.... Ну и что? Пользователю то оно без разницы, он все равно этого не заметит... Этой скорости достаточно (при определенной "прямости рук" программиста), что бы реализовать отзывчивый пользовательский интерфейс. Плюс еще развитие железа идет полным ходом, что серьезно сглажвает разницу. Что касается игрушек, так тут конечно дело за OpenGL и т.п. P.S.: Раньше-то (а может и сейчас) частенько на ассемблере куски кода писали, считали, что код после С++ компиляции медленно работал... тоже наверное воевали, что мол С++ сакс, а Asm рулез... ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Несложно подсчитать, что программисту C++ можно быть в 3 раза криворукей чем Java программисту ^_^ Ну, тут тоже надо разделять понятия "необходимый" и "достаточный" В общем, ждем семерки с ее improved code, а там можно и поговорить далее. |
|||
|
||||
nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Ну, если программисту пофигу, что за Г он выдаёт - да, можно. Только вот хорошие программисты обычно стараются писать хороший код. ![]()
Раньше бывали случаи, когда было просто необходимо делать вставки на асме. Компилятор С/С++ вставлял кучу лишних действий, что сильно замедляло код. Плюс, мощности машин были ниже. Сейчас компиляторы стали поумнее, а мощности выросли. Поэтому сейчас вставки на асме делают намного реже. Потому как необходимости нет. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Не люблю я экстенсивный способ развития
![]() Тогда поставим вопрос так: почему Java не может включить в стандартную поставку одну из родных библиотек? |
|||
|
||||
powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
||||
|
||||
w1nd |
|
||||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
Использование jvm приносит бенефиции, недостижимые для родных приложений.
Да ну? А не для того, чтобы приобрести новых пользователей? Приложения QT ничуть не роднее приложений на java для любой из систем. -------------------- ![]() ![]() |
||||
|
|||||
Platon |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Подкину дров:
Javolution
Какого черта это имеет место быть?!
Совсем недавно, значит вещь актуальная. Если бы java не была такой нерасторопной, никаких real time specifications выдумывать не нужно было бы, я так думаю. Сразу приношу извинения, если в чем-то ошибаюсь, я провожу расследование по этому вопросу, в том числе поделился с местным населением. Это сообщение отредактировал(а) Platon - 12.1.2008, 12:35 |
||||
|
|||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Platon, real-time системы - это не более быстрые системы, это более предсказуемые системы. Возможно, речь идёт именно об этом?
Хотя Сановцы уже сделали свою реализацию Java Real-Time, так что не знаю. Добавлено через 6 минут Да, похоже так и есть. Плюс ещё какие-то оптимизации. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Источник. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
Ну, это, конечно, не единственное отличие RTJ от обычной Явы, но главное.
Это сообщение отредактировал(а) batigoal - 12.1.2008, 18:07 -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Я говорил, про то что подразумевается под понятием ситемы реального времени.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Еще меня расстраивает размеры программы в памяти! Простая программка-чат с возможностью предачи файлов и сообщений, занимает 50 М, тогда как полноценная программка, к примеру QIP занимает всего 5(!)М. Согласитесь, программисту, пишущему на Object Pascal (qip написан на нем) спокойно можно быть минимум в 10 раз криворучей, чем Java программисту!
Возьмем к примеру браузер Opera : средний размер программы в памяти 20-30М, при этом ясно куда уходят метры, большой функционал. При этом программа выполнена на Qt, высокоуровневом фреймворке на C++, тем не менее результат много лучше, чем простая программка на Java. Вопрос: Сколько таких Java программ можно одновременно запустить на своем PC? ясно дело что в 10 раз меньше. Очень печально. |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Platon
Тенденция -- аппаратные ресурсы дешевеют, сложность софта растет. Java предлагает большие возможности для создания архитектурно-стройных решений за счет меньшей эффективности использования аппаратных ресурсов. Точно такое же сравнение как ты привел для Java vs Object Pascal можно сделать для пары Object Pascal vs Asm. Как только сложность превосходит некий порог употреблять Asm становится нерационально и выгоднее начинать жертвовать ресурсы переходя на новый уровень абстракции. Если речь идет о мессанджере типа QIP, то порог еще не преодолен и Java действительно невыгодна в соотношении (усилия на разработку)/(расход аппаратных ресурсов), потому как усилия приблизительно равны, а расход ресурсов нет. Но когда сложность софта велика и достигает промышленного уровня -- необходим переход на следующий уровень абстракции, чтобы мозги программистов могли охватить систему и при этом не перегореть ![]() Так что не так все и печально. В названых факторах не упомянута финансовая составляющая, а ведь она тоже участвует в этом уравнении, причем на первом месте. Стоимость разработки понижается при использовании высокоуровневых средств, и понижается значительно быстрее, чем растут аппаратные запросы софта. Это сообщение отредактировал(а) Maksym - 17.2.2008, 13:35 |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Вот, это мне больше всего не нравится. Т.е. Java + десктоп маст дай? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
50 экземпляров qip бывает нужно крайне редко ![]() -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
LSD, я же не о именно кипах говорю, а, вообще, о полноценном обмундировании ПК Java ПО.
Я соглашусь что 6-я версия сделала многое для десктопа, надеюсь что 7-я версия откроет нам новые горизонты! |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 14 Всего: 62 |
Platon
Ну так 4 гига памяти на десктопе уже становятся нормой. Java сейчас лишь немного опережает события |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Не знаю у кого как, а у меня на ноуте 1 гиг, на ПК было 256м, с недавних пор 768м.
|
|||
|
||||
Bozo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
![]()
![]() ![]() ![]() |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
-1
Вовсе даже не смешно. Здесь не место для насмешек, а место для рассеивания сомнений. |
|||
|
||||
Bozo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Platon, сомнений в чем? Скажи, ты думаешь, в Гугл работают идиоты? И именно поэтому они выбрали Java, хотя правильнее и выгоднее было бы писать ПО под мобильник на Object Pascal? А может быть Object Pascal чья-то собственность и все, кто пишет на нем программы, должны кому-то %? Вот этого я не знаю, вполне возможно чьи-то хитрозагребущие руки хотят копейку с каждой строки кода, написанного на Object Pascal, и тогда никаких сомнений не будет, на нем смело можно ставить крест.
|
|||
|
||||
Kangaroo |
|
|||
![]() AA - Aussie Animal ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2042 Регистрация: 7.10.2006 Где: US Репутация: 21 Всего: 104 |
Bozo,
свои мысли надо выкладывать спокойно и аргументировано, а не сатиристическо-невнятным-неформатированным набором букф. По сабжу Maksym хорошо написал, где-то так я себе ситуацию и представлял ) -------------------- Lost.... |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Хм... а что есть десктоп? Машина/железо или среда окружения? Если второе, то в качестве примера можно рассмотреть явно десктопное приложение IntelliJ IDEA. Я пока не видел другого настолько же удобного редактора. Особенно это касается C++/Object Pascal. Навороченных - уйма. Удобных - не видел. Эклипс мне не нравится - мне он неудобен. Но у него тоже есть немало поклонников именно в плане удобства. Но давай вспомним, что и он писан на Java. И что же нам остаётся? Остаётся признать, что эти предложения достаточно сложны, чтобы перейти упомянутый порог. Теоретически написать их можно на любом языке (ну, со своей спецификой, конечно). Но почему-то IDEA и Eclipse уже существуют несколько лет, а подобного для того же С++ до сих пор не появилось. Visual C++?.. Не... она на порядок-два отстаёт по добству. ![]() а) 4 Гб на телефонах (или чём-то, что будет выполнять их функции) будет и явно ещё при нашей жизни б) все программы гугль на джаве под андроид писать не будет точно. Андроид - линукс, а значит часть программ будет на С. Потому что так оно лучше/проще/удобнее/надёжнее. Большинство - да, на джаве. Потому что сторонним разработчикам-одиночкам это удобнее. Но пока что джава-приложения на телефонах приживаются плохо. В первую очередь из-за того, что разные производители делают свои реализации свинга под телефоны, из-за чего становится неудобно делать приложение, которое работает везде - оно либо убогое, либо тянет кучу лишнего кода. И я бы попросил высказываться попроще, без резких наездов. Платон мне друг, но истина дороже. Его я знаю более или менее, а вы, уважаемый, здесь только появились. В общем, не стоит начинать знакомство с резкости. Kangaroo - одобрямс. ![]() -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Platon |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Могу связать это лишь с тем, что код C++ тянется с давних времен, уровень ОО мышления был не так остр как сейчас, и на железки смотрели по-другому, и видимо разработчикам лень менять ядро программы. Приведу доругой пример софта Компании-разработчика IDEA: JetBrains Omea Pro 2.2. Выполнена на ЯВУ(предположительно C++) вещь радует своей гибкостью - работать удобно и быстро. Бесспорно на стороне Java программиста явное удобство синтаксиса и правил языка, которые ускоряют разработку продукта. Сам же не забываю, что Java - язык не привязанный к конкретному типу компилятора и благо, для Java есть даже native компиляторы. сомнений эффективности технологии.
Гениальный шовинистический аргумент. |
||||
|
|||||
Bozo |
|
|||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
Она на C#. В нее они вложили опыт, накопленный с Resharper и IDEA. На остальное отвечать - нарываться на замечания и бан. ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Крайнеспорный аргумент. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 16 Всего: 31 |
Аргумент - да, спорный. Но часть программ на сях точно там будет. Большей частью тех, где сложность не слишком высока (хотя, откуда сегодня на сотке очень сложные программы?).
-------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Bozo |
|
||||
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 5.4.2006 Репутация: нет Всего: нет |
|
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Android еще не вышел, и пока нет гарантий что выйдет. Google свою ОС тоже хотел сделать, хотел-хотел - да передумал.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 24 Всего: 151 |
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |