Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2011, 14:29   #41
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Моё субъективное мнение, основанное на Qt версии 3, что C++ с этой самой Qt будет примерно так же прожорливо и неповоротливо, как и Java. Особой разницы в производительности в прикладной программе, как я думаю, не будет. Лично мне Java ближе к телу, чем C++ (костыль) тем более с Qt (костыль над костылём).
Монахов(Курс подготовлен при поддержке Sun Microsystems
Правила использования материалов опубликованы на www.sun.ru 6):
Цитата:
Приложения Java обладают не только хорошей переносимостью, но и высокой
скоростью работы. Однако даже при наличии JIT-компиляции они всё-таки могут
выполняться медленнее, чем программы, написанные на C или C++. Это связано с тем, что
JIT-компиляция создаёт не такой оптимальный код как многопроходный компилятор C/C++,
который может тратить очень большое время и много ресурсов на отыскивание конструкций
программы, которые можно оптимизировать. А JIT-компиляция происходит “на лету”, в
условиях жёсткой ограниченности времени и ресурсов. Для решения этой проблемы были
разработаны компиляторы программ Java в код конкретных программно-аппаратных
платформ (native code – “родной” код). Например, свободно распространяемый фондом GNU
компилятор gjc. Правда, заметные успехи Sun в усовершенствовании Java-машины
позволили практически достичь, а в ряде случаев даже обогнать по быстродействию
программы, написанные на других языках. В частности, приложения Java, активно
занимающиеся выделением-высвобождением памяти, работают быстрее своих аналогов,
написанных на C/C++, благодаря специальному механизму программных слотов памяти
(slot
– “паз, отверстие для вставления чего-либо”).
Когда напишу свои тестовые приложения на Qt и Java - выложу результаты тестов.
ЗЫ: Интересно, просто самому проверить
[Добавлено:]Монахов:
Цитата:
Java - универсальный язык прикладного программирования, JavaScript –
узкоспециализированный язык программирования HTML-документов, C++ -
универсальный язык системного программирования. Java - компилируемый,
платформонезависимый, объектно-ориентированный язык с C-образным синтаксисом.
Код:
    public static void main(String[] args)
    {
        long iBegin,
             iEnd,
             iCurrent;
        double a, b, c, d , e;
        iBegin = System.currentTimeMillis();
        System.out.println(iBegin);
        a = 56;
        b = 154879;
        c = 604982;
        d = -648494;
        e = 98765421;

            for(int i = 0; i < 45999999; i++)
                {
                    a = java.lang.Math.sin(b);
                    b = java.lang.Math.cos(a);
                    c = java.lang.Math.atan(b);
                    d = java.lang.Math.abs(c);
                    e = java.lang.Math.sin(d) - java.lang.Math.sin(a) *
                        java.lang.Math.cos(b) / java.lang.Math.asin(c) *
                        java.lang.Math.cosh(d);
                }

        iEnd = System.currentTimeMillis();
        iCurrent = iEnd - iBegin;
        System.out.println(iEnd);
        System.out.print("Total time: ");
        System.out.println(iCurrent);
    }
Цитата:
QtCreator(4.5.3 x86):
-----
0
64250
Total time: 64250 // 01:04 минуты;

java(NetBeans 6.9.1, jdk 6u24):
-----
1301261967093
1301262056843
Total time: 89750 // 01:29 минуты

vmware: DDR 256 MB, Windows XPSP3;
Код(Qt/Java) во вложении.
Вложения
Тип файла: zip JavaApplication1.zip (16.9 Кб, 9 просмотров)
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook

Последний раз редактировалось xwicked; 28.03.2011 в 02:24.
xwicked вне форума Ответить с цитированием
Старый 30.03.2011, 13:51   #42
DenFreeman
Пользователь
 
Аватар для DenFreeman
 
Регистрация: 19.12.2009
Сообщений: 24
По умолчанию

xwicked:Интересные результаты,благодарю за труд!Разница по быстродействию имеется,есть над чем подумать.
DenFreeman вне форума Ответить с цитированием
Старый 30.03.2011, 15:23   #43
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,091
По умолчанию

очень полезный тест для информационной системы. Он показывает, что программа, написанная посредством связки Qt и С++ на четверть быстрее обрабатывает 46 миллионов итераций с обработкой тригонометрических функций, нежели аналог на Java.
Я бы в качестве теста предпочел формочку с гридом, отображающим данные из БД (пусть будет MySQL или Firebird. Ну а время выполнения - это вовсе не единственный критерий в данной задаче. Тут важна и прожорливость до процессора и оперативки и простота/скорость написания кода и еще много чего.
А если я сейчас соберу такой же синтетический тест с активным использованием ООП, то С++ вместе с Qt будет тихонько стоять в сторонке со своей медлительностью в этом деле
pu4koff вне форума Ответить с цитированием
Старый 30.03.2011, 15:28   #44
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Он показывает, что программа, написанная посредством связки Qt и С++ на четверть быстрее обрабатывает 46 миллионов итераций с обработкой тригонометрических функций, нежели аналог на Java.
что не удивительно учитывая разность типов итогового кода.
Java то виртуальная архитектура всетаки, в то время как С++ нативен.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.03.2011, 16:29   #45
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Лампочка

Цитата:
Сообщение от pu4koff Посмотреть сообщение
очень полезный тест для информационной системы. Он показывает, что программа, написанная посредством связки Qt и С++ на четверть быстрее обрабатывает 46 миллионов итераций с обработкой тригонометрических функций, нежели аналог на Java.
Я бы в качестве теста предпочел формочку с гридом, отображающим данные из БД (пусть будет MySQL или Firebird. Ну а время выполнения - это вовсе не единственный критерий в данной задаче. Тут важна и прожорливость до процессора и оперативки и простота/скорость написания кода и еще много чего.
А если я сейчас соберу такой же синтетический тест с активным использованием ООП, то С++ вместе с Qt будет тихонько стоять в сторонке со своей медлительностью в этом деле
Собирайте! Пожалуйста! С формочками, с бд и с ООП. А пока всё это просто слова...

ЗЫ: Да и не забудьте, пожалуйста, код
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
что не удивительно учитывая разность типов итогового кода.
Java то виртуальная архитектура всетаки, в то время как С++ нативен.
А это звучит так, что их сравнивать нельзя, из-за изначальной прожорливости виртуальной архитектуры Java, да?
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook

Последний раз редактировалось xwicked; 31.03.2011 в 01:14.
xwicked вне форума Ответить с цитированием
Старый 30.03.2011, 17:39   #46
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно, но просто надо это учитывать тоже.

да кстати, у них и уровень кроссплатформенности разный.
у Qt на уровне исходников, у Java на уровне бинарников.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.03.2011, 08:25   #47
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Резюме

Итак, практически все языки/компиляторы показали неплохую производительность. Назвать абсолютного лидера тяжело. В абсолютном зачете победу, скорее всего, одержал Intel C++, так как он почти всегда был около лидера, а в тесте «Float Test» ушел в такой отрыв, что получил гигантскую фору. Так же прекрасно выглядели VC 6, Delphi 6 и C#. VC был первым по количеству тестов, в котором он оказался первым (извините за каламбур). Но только при компиляции с включенной опцией inline-подстановки функций по выбору компилятора.

А что же наши неофиты? Да, в общем-то, неплохо. Java показала себя не самым быстрым средством, но на двух тестах (расчете p и «String Test») она была на йоту от лидерства.

C# стал победителем в тесте работы со строками и (если сравнивать результаты без inline-подстановок) в тестах «Доступ к членам» и «Доступ к методам». Почти во всех остальных тестах он был в числе призеров или показывал небольшое отставание от них. Единственный тест, где C# проиграл (и по крупному) – это «Tree Sort», где он занял последнее место. Как уже говорилось ранее, положение вещей может измениться к выходу финальной версии C# и VC.Net. Надеемся что эти изменения не только будут, но и будут в хорошую сторону.

Можно с уверенностью сказать, что C#/VC.Net и Java – это языки/среды, на которых можно создавать высокопроизводительные приложения. Особенно это касается C#. Интересно, что p-код (из которого состоят выполняемые файлы) обоих сред не только не является недостатком, но и наоборот является преимуществом. Дело в том, что оптимизация производится в момент компиляции, причем под конкретный процессор. Это значит, что все среды, создающие машинный код, могут производить оптимизацию только под один известный им процессор (В VC использовалась оптимизация под Pentium Pro, в Intel C++ под PIII, Delphi не сообщила о своих планах по этому поводу). P-код ориентированные платформы (VC.Net и Java) производят компиляцию в машинный код перед запуском или во время исполнения программы (.Net-приложения могут быть прекомпилированы в момент инсталяции или вручную с помощью утилиты ngen (что, собственно, мы и делали). Но не следует забывать, что в .Net p-код никогда не выполняется в режиме интерпретации, т.е. даже без применения ngen будет производится компиляция, но при каждом запуске исполняемого модуля.). Естественно, в этот момент уже известен процессор и другие характеристики системы, на которой должен будет выполняться компилируемый код. Теоретически это должно давать p-код ориентированным платформам фору, за счет использования более производительных инструкций. Но как показывают наши тесты, пока это только теория. По всей видимости дело в том, что большинство кода попросту не использует новые высоко производительные команды процессоров, а во вторых они пока не избавились от «детских болезней» присущих всем новым продуктам. Однако потенциал велик. C# отчетливо доказал, что язык нового поколения способен создавать код не только сравнимый по скорости с лучшими образцами старого мира, но и превосходящий их! А так как Microsoft и Sun готовы вкладывать поистине невообразимые деньги в развитие своих детищ, то у этих языков/платформ большое будущее. Так что, похоже, появившиеся в СМИ заявления о том, что Microsoft планирует заморозить развитие Win32 API, языка C++ и COM, и перевести всё и вся на новую технологию .Net, являются правдой. Но как показало наше тестирование, для нас с вами это не представляет угрозы.
С++ быстрее всех...
http://www.rsdn.ru/article/devtools/perftest.xml
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 31.03.2011, 15:55   #48
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Utkin, ваши тесты хороши но, немножко не о том.

Вот, сравнение только кроссплаформенных сред разработки.
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 31.03.2011, 16:06   #49
DenFreeman
Пользователь
 
Аватар для DenFreeman
 
Регистрация: 19.12.2009
Сообщений: 24
По умолчанию

Может кто-то все таки подведет итог на чем остановится?).Принципиально важны следующие моменты:
-Нужна одна среда для разработки под 2 ос (nix (дистрибутив ubuntu) и win (Windows XP))
-Комфортная работа с MySQL
-Минимальное потребление ресурсов самим ПО (разумеется многое зависти от алгоритма)


P.S. т.к. надоело запускать ПО написанное для win под wine=)

Последний раз редактировалось DenFreeman; 31.03.2011 в 16:20.
DenFreeman вне форума Ответить с цитированием
Старый 31.03.2011, 16:26   #50
pproger
C++ hater
Старожил
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2DenFreeman
python + PyQt4 + любой удобный для тебя текстовый редактор (например, vim)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Среды разработки для JavaScript _-Re@l-_ JavaScript, Ajax 11 15.04.2011 18:46
Настройка среды разработки DemonXT Софт 3 28.03.2010 20:11
Определение среды разработки (компилятора) в скомпилированном *.exe InternetStranger Общие вопросы Delphi 8 14.02.2010 15:48
Объясните новичку в выборе среды разработки (C/c++) web-сайтов по linux newprog12 Общие вопросы C/C++ 2 18.01.2010 10:54
Способы и методы кроссплатформенной разработки... SmirnoFF.Oleg Qt и кроссплатформенное программирование С/С++ 6 16.12.2009 10:44