Модераторы: THandle, bems

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Умирает ли Delphi? 
:(
    Опции темы
cemick
Дата 22.10.2010, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 416
Регистрация: 6.7.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 6



На РСДН идет мегабитва, за 550 ответов в посте "Почему Delphi не умер" http://rsdn.ru/forum/flame.comp/3998416.1.aspx
PM MAIL WWW   Вверх
Akella
Дата 23.10.2010, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



cemick, по твоей ссылке вижу только 1, где остальное
PM MAIL   Вверх
lukas
Дата 23.10.2010, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Ха, кто-то там написал что Делфи медленней NET 4.0))) Ох посмешили, я точно знаю, что скорость делфи на уровне gcc, потому что пишу интерпретатор языка, который по скорости не уступает известным интерпретаторам.

Скорее человек что-то такое тупое написал, что NET произвел умную и агрессивную оптимизацию и уже орет о том, что NET 4.0 быстрее компилированного языка. Хоть он и JIT, но все равно.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
RomanEEP
Дата 23.10.2010, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 1
Всего: 8



Во многих случаях .NET действительно быстрее Delphi. 

Во первых, их скорость не может значимо различается. Т.к. в обоих случаях выполняются ассемблерные команды. А когда код преобразуется в процессорные инструкции - на этапе компиляции или во время запуска на скорость не влияет. Другой вопрос, что программа писанная на Delphi использует инструкции ТОЛЬКО самого древнего процессора, на котором она должна работать. В свою очередь .NET программа может использовать фичи того процессора на котором она запускается и засчет этого быть быстрее.

Во вторых, программа Delphi во время работы какомо-нибудь кода постоянно выполняет операции выделения-удаления участков памяти. В .NET во время работы выполняются только выделяется память, а её удаление, как правило происходит во время простоя программы (т.к. большинство программ большую часть времени проводят в режиме ожидания действий пользователя)
PM MAIL   Вверх
Akella
Дата 24.10.2010, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



А я читал, что немного наоборот. Программа на дельфи будет занимать меньше памяти и работать шустрее.

Цитата(RomanEEP @  23.10.2010,  23:15 Найти цитируемый пост)
программа писанная на Delphi использует инструкции ТОЛЬКО самого древнего процессора, на котором она должна работать

мне кажется, что это не так
PM MAIL   Вверх
RomanEEP
Дата 24.10.2010, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 424
Регистрация: 18.5.2006
Где: Коломна

Репутация: 1
Всего: 8



Цитата(Akella @  24.10.2010,  08:13 Найти цитируемый пост)
мне кажется, что это не так

А здравая логика говорит об обратном smile 

Цитата(Akella @  24.10.2010,  08:13 Найти цитируемый пост)
А я читал, что немного наоборот. Программа на дельфи будет занимать меньше памяти и работать шустрее.

В некоторых случаях - да, т.к. программа компилируется в меньшее количество этапов, то возможна более аггресивная оптимизация и работать будет быстрее. А по поводу памяти Integer как в .NET занимает 4 байта, так и в Delphi. Чудес не бывает. Большинство типов данных
будут занимать одинаковый объем в обоих системах. Или на ВАШ взгляд Delphi умудряется архивировать на лету сегменты данных и стека  smile 

PM MAIL   Вверх
Akella
Дата 24.10.2010, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



Данные хранятся не только в Integer. Данных в памяти храниться вообще много и разных. И может быть одна переменная Integer, а может быть их пару сотен. Не забывай об этом.
PM MAIL   Вверх
Vasay
Дата 24.10.2010, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 1
Всего: 73



Цитата

А когда код преобразуется в процессорные инструкции - на этапе компиляции или во время запуска на скорость не влияет


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


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

Однако реальная производительность сложных приложений на .NET (и Java) зачастую оказывается выше нативных, при гораздо более высокой скорости разработки и гораздо меньшем количестве "странных" багов, и утечек памяти. 

п.с. речь не идет о графических интерфейсах - WPF или Swing тормозят не потому что они на .NET или Java (соответственно), а из-за архитектурных особенностей. 

Если обобщить Delphi и .NET на натив и VM, то примерами преимущества VM над нативом могут служить интерпретаторы скриптовых языков. Большинство интерпретаторов написанных на Java работают быстрее написанных на c/c++ (классический пример - Ruby и JRuby). Памяти жрут, правда, поболее...



Цитата(Akella @  24.10.2010,  08:13 Найти цитируемый пост)
мне кажется, что это не так


А как иначе? Конечно компилятор может кое где сделать разные куски кода для процессоров с разными наборами инструкций. Но не знаю умеет ли делать это компилятор делфи. Да и в любом случае все многообразие процессоров не учтешь. 



Цитата(Akella @  24.10.2010,  14:03 Найти цитируемый пост)
Данные хранятся не только в Integer. Данных в памяти храниться вообще много и разных. И может быть одна переменная Integer, а может быть их пару сотен. Не забывай об этом.


Это как-то меняет смысл утверждения:


Цитата(RomanEEP @  24.10.2010,  10:03 Найти цитируемый пост)
Большинство типов данных будут занимать одинаковый объем в обоих системах. Или на ВАШ взгляд Delphi умудряется архивировать на лету сегменты данных и стека


?





--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
CodeMonkey
Дата 24.10.2010, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



У Delphi действительно фиговый оптимизатор кода и часто он не использует новые возможности процессоров.

Другое дело, в частично в неё всё же тащут новое - это FastMM и FastCode. Но надо понимать, что это просто куски кода, а не навороты компилятора, которые применяются к любому коду.

С учётом того, что .NET компилируется действительно один раз, то он вполне может быть немного быстрее Delphi при последующих запусках. Но уж никак не в разы.

Обычно тот, кто кричит про неэффективность платформы, просто не разобрался в ней. И пробует решать задачу методами другой платформы.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
lukas
Дата 24.10.2010, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Мне это напомнило споры что Java быстрее С++.

Поверьте, C# не может быть быстрее Delphi, JIT это все равно не полноценная компиляция, все такие некоторые абстракции присутствуют. А те кто кричат, про обратное, не умеют делать правильные и справедливые тесты.

Это сообщение отредактировал(а) lukas - 24.10.2010, 17:34


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
CodeMonkey
Дата 24.10.2010, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



Цитата(lukas @  24.10.2010,  18:31 Найти цитируемый пост)
C# не может быть быстрее Delphi


Почему это?

.NET - это обычный нативный код (когда он уже скомпилирован). Это не интерпретатор и не виртуальная машина. Не говоря уже про то, что .NET может быть pre-compiled в целевую платформу (с помощью NGen.exe), полностью исключая фазу IL байт-кода.

Добавлено через 1 минуту и 49 секунд
P.S. Ява - это виртуальная машина. Поэтому Java при прочих равных должна быть медленнее native. И то для неё в последнее время развивается JIT компиляция в native.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Vasay
Дата 24.10.2010, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 1
Всего: 73



Цитата(CodeMonkey @  24.10.2010,  17:49 Найти цитируемый пост)
P.S. Ява - это виртуальная машина. Поэтому Java при прочих равных должна быть медленнее native. И то для неё в последнее время развивается JIT компиляция в native.


Jit в Java присутствует давно. Причем существуют различные варианты его работ. На хабре был интересный подкаст - послушайте, там рассказывается как работает JIT в режиме сервера:

http://habrahabr.ru/blogs/hpodcasts/100253/


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
lukas
Дата 24.10.2010, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Цитата(CodeMonkey @  24.10.2010,  17:49 Найти цитируемый пост)
.NET - это обычный нативный код (когда он уже скомпилирован). Это не интерпретатор и не виртуальная машина. Не говоря уже про то, что .NET может быть pre-compiled в целевую платформу (с помощью NGen.exe), полностью исключая фазу IL байт-кода.



Я так и не понимаю, что ж тогда такое .NET, это и не JIT и не байт код. Неужели прямо код сохраняется практически в dll или exe (утрирую)? Код .NET может быстрее выполнятся за счет использования быстрых и хорошо оптимизированных решений этой платформы, а там их куча. 

На мой взгляд все просто, IL это байт код, который во время выполнения компилируется в машинный код, но в этом машинном коде, все равно остаются некоторые вызовы функций из платформы .NET, это некоторая абстракция. А отсюда следствие, зависимость от платформы .NET и ее версии.


На мой взгляд, то что вы описали это просто JIT с кешированием, и java делает скорее тоже самое, просто там отсутствую скалярные типы, из-за чего некоторые алгоритмы могут работать медленней, объекты никогда не будут работать быстрее скалярных типов. С этим очень много проблем, например недолго живущие объекты + мусоросборщик дают такое замедление, что мало не покажется. (если делать так как в языках со скалярным типами)


Цитата

Jit в Java присутствует давно.


Она вообще его начала раньше всех применять на практике.


P.S.  Кстати говоря, для языка LUA тоже есть JIT, вот было бы интересно сравнить скорости LuaJIT и c#. Ни у кого не такой возможности?

Это сообщение отредактировал(а) lukas - 24.10.2010, 21:57


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Vasay
Дата 24.10.2010, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 1
Всего: 73



Цитата

и java делает скорее тоже самое, просто там отсутствую скалярные типы


В языке Java 8 скалярных типов: boolean, byte, char, short, int, long, float, double.




--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
lukas
Дата 24.10.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: нет
Всего: 15



Да ошибся, что-то мода на ruby и python меня сбила с толку. Спутал я еще с Integer, в Java это объект.


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle

Добро пожаловать в форум группы "Delphi".

В разделе разрешается:

  • Флудить (в приемлемых величинах)
  • Обсуждать модерирование данного раздела (но не его модератора)
  • Добавлять свои правила если они не противоречат существующим
  • Делать наезды на пешеходов***

Строго запрещено:

  • Размещать рекламу
  • Совершать оскорбления личностей
  • Материться
  • *** Пешеходами не являются (ко)модераторы, админы, участники клуба.

Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Форум группы: delphi | Следующая тема »


 




[ Время генерации скрипта: 0.0937 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.