Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Скорость" Delphi 
:(
    Опции темы
Zmiy
  Дата 22.3.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сразу говорю: это не тема Delphi vs c. Я не спрашиваю, что лучше. Мой вопрос только по поводу компиятора Delphi и про оптимизацию, которую он проводит. Я слышал мнение, что Delphi генерирует довольно медленный код, медленнее, чем, например c++. Так ли это, и если да, то с чем именно это связано? Есть ли какие либо недостатки у Delphi по сравнению с C++ в этом отношении, насколько они критичны и можно ли их обойти? Я знаю один недостаток: в Delphi нет макросов, а это полезная штука. Но с c++ я только слегка знаком, поэтому спрашиваю мнение людей, которые знакомы с обоими языками.
PM MAIL   Вверх
kemiisto
Дата 22.3.2008, 23:22 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(Zmiy @  22.3.2008,  22:28 Найти цитируемый пост)
 Я слышал мнение, что Delphi генерирует довольно медленный код, медленнее, чем, например c++.

Заявления такого рода не только безосновательны, но и не корректны. Какой компилятор Delphi имеется в виду (for Win32 или for .NET)? А какой компилятор С++? 

Цитата(Zmiy @  22.3.2008,  22:28 Найти цитируемый пост)
Есть ли какие либо недостатки у Delphi по сравнению с C++ в этом отношении, насколько они критичны и можно ли их обойти?

Если бы были серьезные недостатки, то на Delphi никто бы не писал. Взгляни хотя бы на кол-во тем в соотв. разделах форума.

Добавлено через 8 минут и 33 секунды
Цитата(Zmiy @  22.3.2008,  22:28 Найти цитируемый пост)
Я знаю один недостаток: в Delphi нет макросов, а это полезная штука.

Да ладно уж недостаток. 3 года пишу на Delphi и ни разу потребности в макросах не испытывал. Всегда можно написать функцию с нужным результатом действия. Чем она будет отличаться от макроса?



--------------------
PM MAIL WWW GTalk Jabber   Вверх
CompWorm
Дата 23.3.2008, 00:15 (ссылка)   | (голосов:5) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


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

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



я знаю одно могучее приемущество Delphi перед многими другими языками - компиллер всё необходимое запихивает в exe файл, поэтому программы дельфи не требуют ничего дополнительного и прекрасно идут на ВСЕХ компах.  smile 

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

Это сообщение отредактировал(а) CompWorm - 23.3.2008, 00:20


--------------------
PM MAIL   Вверх
Zmiy
Дата 23.3.2008, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(kemiisto @  22.3.2008,  23:22 Найти цитируемый пост)
Какой компилятор Delphi имеется в виду (for Win32 или for .NET)? А какой компилятор С++?

Delphi под Win32 ( я на нём пишу), а с++ - любой smile

Цитата(kemiisto @  22.3.2008,  23:22 Найти цитируемый пост)
Если бы были серьезные недостатки, то на Delphi никто бы не писал. Взгляни хотя бы на кол-во тем в соотв. разделах форума.

Я имею ввиду именно недостатки в отношении скорости выполнения получаемого кода. Речь идёт о реал-тайм приложениях (конкретно об играх).

Цитата(kemiisto @  22.3.2008,  23:22 Найти цитируемый пост)
Чем она будет отличаться от макроса?

скоростью

Цитата(CompWorm @  23.3.2008,  00:15 Найти цитируемый пост)
поэтому программы дельфи не требуют ничего дополнительного и прекрасно идут на ВСЕХ компах. 

А можно поподробнее? А программы на C++ могут не идти на всех компах?
PM MAIL   Вверх
CompWorm
Дата 23.3.2008, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


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

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



программы, идущие с .NET КАК МИНИМУМ требуют установить на компе Вашего клиента .NET фреймворк, занимающий ой сколько места... 
если взять , к примеру бейсик тот же (молчу про скорость работы программ  smile ) то он требует море всяких библиотек с собой тоскать... за С++ не скажу, ибо не знаю.


--------------------
PM MAIL   Вверх
ama_kid
Дата 23.3.2008, 07:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

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



Цитата(Zmiy @  22.3.2008,  22:28 Найти цитируемый пост)
Я слышал мнение, что Delphi генерирует довольно медленный код, медленнее, чем, например c++.
Имхо, при современных производительностях компьютеров скорость выполнения кода на 99% зависит от радиуса кривизны рук программиста. Хотя чисто по привычке все системные приложения, не требующие GUI, пишу на С++ - но ради интереса один раз попробовал одно из них перевести на дельфи - никакой потери скорости (субъективно, конечно) не заметил, только размер исполняемого файла больше на порядок...
Цитата(Zmiy @  23.3.2008,  00:27 Найти цитируемый пост)
А программы на C++ могут не идти на всех компах? 
Если активно юзать CRT, например, то на компе без установленной библиотеки CRT - не пойдет...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Coder
Дата 23.3.2008, 08:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(ama_kid @  23.3.2008,  15:57 Найти цитируемый пост)
Я слышал мнение, что Delphi генерирует довольно медленный код, медленнее, чем, например c++.

Все зависит от кода.
Если, например, использовать тип string и функции pos, insert, copy, delete для парсинга большого текстового заковыристого файла, то можно заметить, что чтение и разбор занимает больше времени,  чем  при использовании PChar и функций Str*().
Хотя тип string и pchar для Delphi обна родные...
PM MAIL   Вверх
kemiisto
Дата 23.3.2008, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(CompWorm @  23.3.2008,  00:15 Найти цитируемый пост)
на сколько я знаю, все языки в .NET стали неким единым болотом - нет разницы, программируешь ли на бейсике, си или дельфи в том числе (на NET имеется в виду) - все проги одинаково медленно работают. по идее, NET должна только тормозить работу программ.так ли это?

Крайне неадыкватное представление о скорости исполнения MSIL-кода. Взгляните, например, сюда:
http://shootout.alioth.debian.org/gp4/benc...mp;lang2=csharp
Как видите, C# (Mono) проигрывает С++ (GNU G++) в среднем в 2-2,5 раза. Такая разница некритична. И это реализация Mono, а не .NET. Мне кажется (утверждать не могу) C# (.NET) проиграет еще меньше. 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Alexeis
Дата 23.3.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



  Скорость зависит от используемых средств. Delphi for win32 генерит машинный код напрямую, более того часть функций оптимизирована на асме, можно встретить и сторонние разработки с оптимизацией под MMX и SSE. 
  Классы работают действительно несколько медленнее из-за более высокого уровня безопасности. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
lukas
Дата 23.3.2008, 16:23 (ссылка)  | (голосов:6) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я так скажу... .NET это виртуальная машина негрософт которая исполняет байт-код, обычно у байт-кода 1 команда = 1-2 командам асм... скорость выполнения .NET очень высокая для интерпретации... я бы сказал очень высокая относительно виртуальных машин, вообщем в висте уже встроен фрейм ворк 2.0, и в следующих версиях будет встроен, постепенно .NET внедрится в ОС и никаких библиотек не нужно будет, он станет куском ядра система... VB NET, Delphi NET, C# все они компилируют в один байт код, я вижу в этом множество удобных вещей:

 - 1. Огромная и богатая информация RTII
 - 2. Обсолютно полная совместимость DLL .net написанных на разных языках... (поддержка классов например)
 - 3. Как говорится майкрософт хочет сказать - "скажите машине что ей надо сделать, а .NET это сделает наиболее безопасно и без глюков", я не первый повторяю эти слова....

Добавлено через 1 минуту и 57 секунд
еще хочу добавить, что разработка сайтов на .NET намного легче чем на PHP, стоит задуматься... хотя хостинги PHP стоят в несколько раз дешевле... 


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


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(lukas @  23.3.2008,  15:23 Найти цитируемый пост)
я так скажу... .NET это виртуальная машина негрософт которая исполняет байт-код, обычно у байт-кода 1 команда = 1-2 командам асм... скорость выполнения .NET очень высокая для интерпретации... я бы сказал очень высокая

  Не это не виртуальная машина, а компилятор времени исполнения, т.е. код компилируется при исполнении. 
Вообще тема ушла в холивар, потому ее туда и переношу.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MAKCim
Дата 23.3.2008, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(lukas @  23.3.2008,  16:23 Найти цитируемый пост)
постепенно .NET внедрится в ОС и никаких библиотек не нужно будет, он станет куском ядра система... 

если вы не имеете в виду управляемую ОС, то вы несете полную чушь


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
lukas
Дата 23.3.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



MAKCim

я имел ввиду не в прямом смысле... просто фрейм ворк будет по стандарту поставляться с ОС... 


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


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



MAKCim, Ну драйвера, и ядро по-любому будут нативными, а все остальное, прикладной интерфейс  API, сервисы всякие, оболочка, сопроводительный софт, утилиты... очень даже может быть, но вот только сам Microsoft не торопиться это делать smile . Вижуалки вот от 2003й по 2008ю сплошь нативные, виста тоже, да и офис 2007й только частично что-то там сделали под .NET. 

Zmiy, давайте для теста математический алгоритм. Реализуем его на вижуалке или делфях, а затем сравним.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MAKCim
Дата 23.3.2008, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



lukas
ок
Цитата(Alexeis @  23.3.2008,  18:08 Найти цитируемый пост)
Ну драйвера, и ядро по-любому будут нативными, а все остальное, прикладной интерфейс  API, сервисы всякие, оболочка, сопроводительный софт, утилиты... очень даже может быть

я имел в виду не это


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
LSD
Дата 23.3.2008, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

Репутация: 9
Всего: 537



Цитата(Alexeis @  23.3.2008,  18:08 Найти цитируемый пост)
давайте для теста математический алгоритм. Реализуем его на вижуалке или делфях, а затем сравним.

Есть такой алгоритм smile
Предлагаю реализовать игру жизнь.


--------------------
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.
PM MAIL WWW   Вверх
Zmiy
Дата 24.3.2008, 01:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Coder @  23.3.2008,  08:49 Найти цитируемый пост)
Если, например, использовать тип string и функции pos, insert, copy, delete для парсинга большого текстового заковыристого файла

ну, мы говорим не о строках, я имею ввиду оптимизацию, в основном, математических расчётов. С++ использует sse, inline функции, макросы. Вот я хотел бы понять, как на Делфи писать быстрый код без этого


Цитата(Alexeis @  23.3.2008,  18:08 Найти цитируемый пост)
Zmiy, давайте для теста математический алгоритм. Реализуем его на вижуалке или делфях, а затем сравним.

Отличная мысль! Сейчас подумаю над алгоритмом
PM MAIL   Вверх
Beltar
Дата 24.3.2008, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

С++ использует sse, inline функции, макросы.


Нафиг макросы, когда inline есть?

Игры на Delphi действительно не пишут в частности из-за оптимизации, откуда там всяким SSE взяться, когда в VCL полно ассемблера. Уж не знаю насколько там SSE позволяет ускорить простейшую математику (посчитать новые координаты объекта, например) с 32-хбитными вещественными. Насчет скорости самого языка, для теоретического случая, что имеем C++ и Pascal компиляторы с одинаковой оптимизацией не скажу. Логично предположить, что разница будет в пределах 2-3%.
Всякие языковые сишные отимизации типа a+=b (упаси от них бог Delphi) вместо a:=a+b, критичные во времена "286 терпимо, 386SX хорошо, а 386DX-40 MHz круто" сейчас роли не играют, и компиляторы могут сами это оптимизировать.

Цитата

Предлагаю реализовать игру жизнь.


Просто посчитать с начальной конфигурации координаты всех "животных" в поколении X?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Lazin
Дата 24.3.2008, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(CompWorm @  23.3.2008,  00:15 Найти цитируемый пост)
я знаю одно могучее приемущество Delphi перед многими другими языками - компиллер всё необходимое запихивает в exe файл, поэтому программы дельфи не требуют ничего дополнительного и прекрасно идут на ВСЕХ компах. 

неоспоримое приемущество
программы на Delphi настолько суровы, что работают на Linux, Mac OS и даже Plan9  smile 

Цитата(kemiisto @  22.3.2008,  23:22 Найти цитируемый пост)
Да ладно уж недостаток. 3 года пишу на Delphi и ни разу потребности в макросах не испытывал. Всегда можно написать функцию с нужным результатом действия. Чем она будет отличаться от макроса?

как всегда забавно читать о недостатках какого-то инструмента, то, что написано человеком, не владеющим этим инструментом )))

Цитата(Beltar @  24.3.2008,  09:01 Найти цитируемый пост)
Игры на Delphi действительно не пишут в частности из-за оптимизации, откуда там всяким SSE взяться, когда в VCL полно ассемблера.

Не один компилятор сам не будет использовать SIMD расширения процессора, это всегда ложится на плечи программиста...
а уж использовать SSE в коде GUI библиотеки (VCL) это нонсенс  smile 

Приемущество С++ в гибкости. Язык шаблонов в С++ Тьюринг полный, соответственно во время компиляции можно выполнить любые вычисления, например преобразовать число из бинарного представления можно с помощью этого шаблона
Код

    template <unsigned long N>
    struct binary {
        static const unsigned int value = (binary<N/10>::value << 1) | N%10;
    };

    template<>
    struct binary<0> {
        static const unsigned int value = 0;
    };

const unsigned i = binary<00001111>::value;
assert( i == 0x0f );

константа i будет вычислена во время компиляции, а не во время выполнения. Delphi так не умеет smile

PM MAIL Skype GTalk   Вверх
Alexeis
Дата 24.3.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Lazin, это не холивар о возможностях, а о скорости!

Цитата(LSD @  23.3.2008,  20:29 Найти цитируемый пост)
Предлагаю реализовать игру жизнь.

  Какие условия? Какое начальное состояние? Сколько ячеек? Какое графическое отображение? Сколько кадров в / сек? Чего можно юзать чего нет?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Lazin
Дата 24.3.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(Alexeis @  24.3.2008,  10:18 Найти цитируемый пост)
это не холивар о возможностях, а о скорости!

ну правильно, намного быстрее расчитать что-то в compile-time один раз, чем считать каждый раз в run-time  smile 
PM MAIL Skype GTalk   Вверх
Coder
Дата 24.3.2008, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Lazin @  24.3.2008,  18:44 Найти цитируемый пост)
ну правильно, намного быстрее расчитать что-то в compile-time один раз, чем считать каждый раз в run-time

В таких случаях можно и в run-time одним разом обойтись.
PM MAIL   Вверх
Alexeis
Дата 24.3.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Lazin, к твоему сведению считать умеют не только шаблоны, а еще и калькулятор smile . Константу можно любую забить и руками. Мне например хватает записи в HEXе. Для этого ничего не нужно преобразовывать. Факториал я могу и на калькуляторе вычислить и забить константу, в крайнем случае создать таблицу значений при старте программы. Ни как и ни на что это не влияет по скорости, а твой любимый билдер 90% бинарного кода реально код скомпилированный из делфийских сорцов делфийским компилятором слинкованный с билдеровским проектом. Так что когда хвалишь скорость билдера не забывай чьи 90% заслуги там  smile .


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
kemiisto
Дата 24.3.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(Lazin @  24.3.2008,  09:35 Найти цитируемый пост)
как всегда забавно читать о недостатках какого-то инструмента, то, что написано человеком, не владеющим этим инструментом )))

Ни слова о недостатках макросов я не произнес. Я действительно человек в C++ несведующий и посему задал конкретный вопрос: Всегда можно написать функцию с нужным результатом действия. Чем она будет отличаться от макроса? Я жду ответа...



--------------------
PM MAIL WWW GTalk Jabber   Вверх
Mayk
Дата 24.3.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

Репутация: 2
Всего: 134



Цитата(Alexeis @  24.3.2008,  15:43 Найти цитируемый пост)
Ни как и ни на что это не влияет по скорости

Шаблоны могут успешно inline'ится. это влиет на скорость в коде  наподобие
Код

std::sort( arr, arr+arrLength, Comparator() );


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

Добавлено @ 12:21
Цитата(kemiisto @  24.3.2008,  15:55 Найти цитируемый пост)

Ни слова о недостатках макросов я не произнес. Я действительно человек в C++ несведующий и посему задал конкретный вопрос: Всегда можно написать функцию с нужным результатом действия. Чем она будет отличаться от макроса? Я жду ответа...

Вызов функции занимает >0 тактов. Расчёт ф-ции занимает >0 тактов.  В отличие от расчетов с помощью шаблонов. Которых во время run-time'а вообще нет.

Хотя может оптимизатор дельфи и способен заменить вызов простых ф-ций на константы.

Это сообщение отредактировал(а) Mayk - 24.3.2008, 12:23


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
LSD
Дата 24.3.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

Репутация: 9
Всего: 537



Цитата(Beltar @  24.3.2008,  09:01 Найти цитируемый пост)
Просто посчитать с начальной конфигурации координаты всех "животных" в поколении X?

Да.

Цитата(Alexeis @  24.3.2008,  10:18 Найти цитируемый пост)
Какие условия? Какое начальное состояние? Сколько ячеек? Какое графическое отображение? Сколько кадров в / сек? Чего можно юзать чего нет?

Графики нет. Просто прочитать начальную конфигурацию из файла, просчитать 1 000 000 циклов, и записать конечное состояние в другой файл. Начальная комбинация скажем планерное ружье (чтобы было постоянное изменение). Размер скажем 100х100. 
Начет того что можно использовать - о чем идет речь?


--------------------
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.
PM MAIL WWW   Вверх
Lazin
Дата 24.3.2008, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(kemiisto @  24.3.2008,  11:55 Найти цитируемый пост)
Всегда можно написать функцию с нужным результатом действия

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

Цитата(Alexeis @  24.3.2008,  11:43 Найти цитируемый пост)
Так что когда хвалишь скорость билдера не забывай чьи 90% заслуги там  smile . 

Давно уже не пишу GUI приложения, так что  smile 

Цитата(Alexeis @  24.3.2008,  11:43 Найти цитируемый пост)
Константу можно любую забить и руками.

а лучше пускай компилятор сам за меня считает, а если я где накосячил даст по рукам (пошлет на йух нескончаемой чередой сообщений об ошибках)  smile 

На С++ можно реализовать к примеру анализ размерностей, это когда у тебя есть переменная I значение которой выражено в амперах, и еще переменная U значение которой исчисляется в вольтах. И при вычислении выражения
Код

P = U*I;

если тип переменной P - не мощность, то код просто не скомпилируется.  smile 
это всего лишь одно простейшее применение шаблонов

если заглянуть в реализацию стандартной библиотеки, то можно много чего интересного увидеть smile
PM MAIL Skype GTalk   Вверх
Beltar
Дата 24.3.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В современном Delphi не хватает только шаблонов и не полностью реализована перегрузка операторов для Delphi 4 Win32.
Inline, статич. члены класса появились скорее всего в D 2005.

Цитата

Всегда можно написать функцию с нужным результатом действия. Чем она будет отличаться от макроса?


Макрос в Си++ это замена в исходнике одного текста другим, что исключает вызов ф-ии. Inline - подстановка в код тела ф-ии с той же целью. Тоже жду комментов, что лучше. Я не пишу на Си++, но примеры, "оптимизации" макросом после которой ошибку ищешь больше времени, чем этот макрос за все время эксплуатации софтины сэкономил, есть в любой книжке по плюсам.

Цитата

ак что когда хвалишь скорость билдера не забывай чьи 90% заслуги там


Я сам как-то не интересовался, но мой знакомый пишущий на Builder'е, и для которого в Паскале тоже букофф много, говорил, что Билдер даже медленнее Delphi. smile 

Цитата

  Какие условия? Какое начальное состояние? Сколько ячеек? Какое графическое отображение? Сколько кадров в / сек? Чего можно юзать чего нет?


Насчет графики я как-то не понимаю, как ее строить и не съест-ли она 99% ресурсов. Что тогда мерить? Да и интересует в первую очередь вывод конечной позиции, которая после нескольких десятков тысяч поколений м/б 3756x5667 клеток, или считаем, что поле ограничено?

Цитата
константа i будет вычислена во время компиляции, а не во время выполнения. Delphi так не умеет 


Правда? И что же это при работе с API все охотно пишут:
Код

const
  WM_MYMESSAGE=WM_USER+1;


 smile 


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Lazin
Дата 24.3.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(Beltar @  24.3.2008,  12:51 Найти цитируемый пост)
Я сам как-то не интересовался, но мой знакомый пишущий на Builder'е, и для которого в Паскале тоже букофф много, говорил, что Билдер даже медленнее Delphi

и HelloWorld на билдере больше весит чем на Delphi))
PM MAIL Skype GTalk   Вверх
Beltar
Дата 24.3.2008, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

пошлет на йух нескончаемой чередой сообщений об ошибках


Я плакал со смеху, когда Microsoft Visual C++ в VS 2003 говорил мне, что Internal compile error и пошли вы к Билли, когда на самом деле был type mismatch. smile 

Код

var i:Integer
      f:Float;
begin
i:=f;{В 99% случаев явно бредовый и неоднозначный (можно округлить, а можно просто отсечь дробную часть) код, который C++ считает вполне нормальным}
end;


PS Блин, не могу понять кайфа от расстановки этих фигурных скобок. Это же неудобно. Что бы наСИльники не говорили.

Добавлено через 11 минут и 14 секунд
Цитата

Начальная комбинация скажем планерное ружье (чтобы было постоянное изменение). Размер скажем 100х100. 


Сорри пока писал свой ответ, ваш появился.
Планерное ружье просто генерит бесконечно планеры, которые, если я правильно понял, будут просто разбиваться о стенку. Можно взять, что-нить поинтереснее. Графику можно начальную фигуру мышкой по сетке набирать. В принципе при 100х100 можно попробовать вывести и конец.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
kemiisto
Дата 24.3.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Mayk, вот нашел:
Цитата(Бьярн Страустрап. Введение в язык Си++)

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

Возможность определения констант была в Delphi всегда, а директива inline - начиная с Delphi 2005. Выходит, можно обойтись без макросов?



--------------------
PM MAIL WWW GTalk Jabber   Вверх
Beltar
Дата 24.3.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



В .NET их просто нет. smile MS сказала: "Макросы - зло" smile


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Lazin
Дата 24.3.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(Beltar @  24.3.2008,  13:27 Найти цитируемый пост)
MS сказала: "Макросы - зло"

ты наверное windows.h не видел  smile 
Цитата(kemiisto @  24.3.2008,  13:10 Найти цитируемый пост)
Возможность определения констант была в Delphi всегда, а директива inline - начиная с Delphi 2005.

Не нужно путать С и С++, возможность определения констант в С++ то-же была всегда, а директива inline считается устаревший, так как решать что должно быть inline а что нет должен компилятор а не программист(хотя возможно Delphi программисты настолько могучи, что сами могут определить что должно быть inline а что нет smile ).
И вообще одна и та-же функция в одном месте может быть заинлайнена, а в другом нет, так что смысла в этой директиве нет))
PM MAIL Skype GTalk   Вверх
Beltar
Дата 24.3.2008, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

хотя возможно Delphi программисты настолько могучи, что сами могут определить что должно быть inline а что нет


Ф-яя очевидно м/б с пользой заинлайнена если:
1) вызывается всего в одном месте.
2) Вызывается в цикле.  smile 
Или Си-приграммисты глупее своего компилятора. smile 
Программист на Delphi решает имеет-ли смысл заинлайнить, а компилятор решает можно ли это сделать. Инлайнить же или нет какой-нить sin(x) из библиотеки, который вызывается в данной конкретной программе в 65826844 местах уже другой вопрос.

Цитата

ты наверное windows.h не видел 


Не видел, (или видел, но было пофиг) но я не про него, а про .NET и в первую очередь C#.

Это сообщение отредактировал(а) Beltar - 24.3.2008, 14:58


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Lazin
Дата 24.3.2008, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(Beltar @  24.3.2008,  14:57 Найти цитируемый пост)
Не видел, (или видел, но было пофиг) но я не про него, а про .NET и в первую очередь C#.

так ведь в С# есть препроцессор, очень похожий на Си-шный)))
PM MAIL Skype GTalk   Вверх
AlexxxM
Дата 24.3.2008, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Lazin @ 24.3.2008,  13:57)
директива inline считается устаревший, так как решать что должно быть inline а что нет должен компилятор а не программист(хотя возможно Delphi программисты настолько могучи, что сами могут определить что должно быть inline а что нет smile ).


Все теперь только Copy/Paste   smile

А я то наивный думал что именно программист и решает 
Цитата
что должно быть inline а что нет

PM MAIL   Вверх
MAKCim
Дата 24.3.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(AlexxxM @  24.3.2008,  19:09 Найти цитируемый пост)

А я то наивный думал что именно программист и решает 

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



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
CompWorm
Дата 25.3.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


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

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



так я не понял, относительно только дельфей:
1) лучше программировать под .NET или просто D7
2) чьи проги из них быстрее (если считать с GUI)
3) чьи проги из них быстрее (если считать без GUI)

?   ?    ?


Это сообщение отредактировал(а) CompWorm - 25.3.2008, 21:19


--------------------
PM MAIL   Вверх
Lazin
Дата 26.3.2008, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



а что значит быстрее, и зачем тебе вообще нужна "скорость"

вообще Delphi какой-то несексуальный, так что ну его в баню  smile 
PM MAIL Skype GTalk   Вверх
JackYF
Дата 26.3.2008, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(Lazin @  24.3.2008,  12:57 Найти цитируемый пост)
а директива inline считается устаревший

ух ты! а пруфлинк можно?

CompWorm, ты что, до сих пор хочешь однозначный ответ? Типа там "Delphi круче С++, C# круче Delphi"? smile 


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bems
Дата 26.3.2008, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Цитата(Beltar @  24.3.2008,  12:58 Найти цитируемый пост)
Графику можно начальную фигуру мышкой по сетке набирать. В принципе при 100х100 можно попробовать вывести и конец
тут нужно ждать мышку, а значит к скорости не имеет отношения. Фтопку графику. Давайте лучше так:

Есть входной текстовый файл с начальным раскладом. Пробел - свободное место, конец строки в стиле DOS, все остальные символы - клетки. Размер поля определяется количеством строк и длиной самой длинной строки. Требуется написать нативную консольную прогу, которая должна спросить в консольном окошке количество поколений, вывести конечную ситуацию в выходной файл, и время которое занял ращет (без работы с файлами) в консольное окно. Максимальный размер поля 1000х1000, но ничего не мешает прогонять это потом на файлах меньшего размера (100х100 как вы хотели). 

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



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Lazin
Дата 28.3.2008, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



JackYF, Герб Саттер, Новые сложные задачи..  smile 
PM MAIL Skype GTalk   Вверх
JackYF
Дата 28.3.2008, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(Lazin @  28.3.2008,  07:54 Найти цитируемый пост)
Герб Саттер, Новые сложные задачи..

Э нет. Мне в стандарте, пожалуйста smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Mayk
  Дата 28.3.2008, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

Репутация: 2
Всего: 134



Ради смеха сделал простую реализацию life на паскале для  поля 10 на 10 (извинте, на большее не хватило). На неё поместилл две "вертушки". и сделал 1 000 000 поколоений.  И оттранслировал её в си. а потом замерил время выполнения программ скомпилированных паскалевскими компиляторами с временем выполнения си-шной программы которую транслятор получил из паскалевской программы.

В забеге принимали участие:
fpc [версия free pascal compiler 2.0.4]
gpc [версия gpc 20060325, based on gcc-3.4.6 (Ubuntu 3.4.6-6ubuntu2)]

и гвоздь программы: транслятор с паскаля на си
p2c [версия 1.21alpha-07.Dec.93]

Результаты. Время указано в секундах для выполнения всей программы. 
FPC:
Цитата(выдержка из life.fpc.bench)

real 27.85
real 27.71
real 27.53
real 27.49


GPC:
Цитата(выдержка из life.gpc.bench)

real 19.94
real 19.29
real 18.76
real 18.72


а теперь внимание --- результат оттранслированного кода из паскаля в си
Цитата(выдержка из life.p2c.bench)

real 3.28
real 3.36
real 3.29
real 3.48


вывод: писать в юнихе на паскале -- не комильфо.

проект полностью в аттаче вместе с бинарниками [правда бинарники там для amd64]


зы. правдо замечу что сишный файл компилировался более свежим компилятором: 
gcc (GCC) 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2). 


Это сообщение отредактировал(а) Mayk - 28.3.2008, 21:53

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  life.tar.bz2 146,89 Kb


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Lazin
Дата 31.3.2008, 08:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(JackYF @  28.3.2008,  13:54 Найти цитируемый пост)
Э нет. Мне в стандарте, пожалуйста

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

Mayk, что и требовалось доказать  smile , правда FPC это не совсем Delphi, но думаю(хоть у меня на это и нет особых оснований) особой разницы не будет  smile 
PM MAIL Skype GTalk   Вверх
Alexeis
Дата 31.3.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(Lazin @  31.3.2008,  07:03 Найти цитируемый пост)
правда FPC это не совсем Delphi, но думаю(хоть у меня на это и нет особых оснований) особой разницы не будет 

  Зря думаешь!

Доработал чуток проекты, чтобы они запускались под борландном, в результате на моем проце Sempron 2500+ под виндой

Delphi 2007           ~19c
Turbo C++ Builder ~20c

Все скомпилено под релизом со всеми оптимизациями.

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

Проект в атаче, проверяйте.



Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Life_test_2008.03.31_10.09.zip 6,76 Kb


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Lazin
Дата 31.3.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



на самом деле Си-шный исходник можно еще оптимизировать  smile , как минимум, перейти с индексов, на арифметику указателей

скомпилил и запустил на своем компе сишный исходник:

builder - 10969 (думаю(Alexis извини, я опять думаю smile ), результат Delphi не будет сильно отличаться от этого)

msvc - 3937

Добавлено через 1 минуту и 29 секунд
"проблема" скорости Delphi - на самом деле - проблема компилятора, который уже очень давно не развивается
PM MAIL Skype GTalk   Вверх
Mayk
Дата 31.3.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

Репутация: 2
Всего: 134



Цитата(Alexeis @  31.3.2008,  14:12 Найти цитируемый пост)

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

ну если кто-нибудь сделает большую карту, то мы можем проверить результаты. учитывая разницу в два раза у Lazin
Цитата(Lazin @  31.3.2008,  15:37 Найти цитируемый пост)

builder - 10969 ...
msvc - 3937  

выглядит возможным.

Кстати. AlexeisLazin,  а можно выложить в дополнение скомпилированные бинарники?




Это сообщение отредактировал(а) Mayk - 31.3.2008, 11:45


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Alexeis
Дата 31.3.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(Mayk @  31.3.2008,  10:43 Найти цитируемый пост)
Кстати. Alexeis, Lazin,  а можно выложить в дополнение скомпилированные бинарники?

  билдер синенький, делфи без иконки

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  life_2008.03.31_12.07.zip 28,28 Kb


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Lazin
Дата 31.3.2008, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



life_game.zip

Это сообщение отредактировал(а) Lazin - 31.3.2008, 13:13
PM MAIL Skype GTalk   Вверх
Alexeis
Дата 31.3.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



  Да, ребята вижуалка отожгла, хз что там за оптимизации, но скорость в 3 раза выше. При отключении оптимизации 22 секунды.
Возможно, там оптимизация SSE или еще что, но явно алгоритм был не оптимальным и компилятор его переделал.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
MAKCim
Дата 31.3.2008, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(Lazin @  31.3.2008,  11:37 Найти цитируемый пост)
как минимум, перейти с индексов, на арифметику указателей

это за тебя компилятор сделает  smile 


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

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


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(MAKCim @  31.3.2008,  14:00 Найти цитируемый пост)
это за тебя компилятор сделает

вот гад.. я что зря указатели в своих программах вместо индексов юзаю  smile 
PM MAIL Skype GTalk   Вверх
JackYF
Дата 31.3.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(Lazin @  31.3.2008,  07:03 Найти цитируемый пост)
Стандартом предусмотрено, что компилятор может применять любые оптимизации, которые не нарушают логику работы программы,.. собственно вот и все  smile

Я про устаревание inline smile


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Lazin
Дата 31.3.2008, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(Working Draft @  Standard for Programming
Language C++ 7.1.2)

The inline specifier
indicates to the implementation that inline substitution of the function body at the point of call is to be preferred to the
usual function call mechanism. An implementation is not required to perform this inline substitution at the point of
call; however, even if this inline substitution is omitted, the other rules for inline functions defined by 7.1.2 shall still be
respected.

ключевое слово здесь preferred  smile 
то есть в точке вызова компилятор возможно учтет твои пожелания, но не больше.

другое дело, что тот-же Саттер не рекомендует использовать inline в своих программах, так как эта директива не несет никакой смысловой нагрузки. inline функция с точки зрения языка - такая-же как и не inline, в своем коде ты не можешь узнать как она объявлена, либо запретить получать ее адрес.
к тому-же директива inline применяется при объявлении функции, а компилятор встраивает ее в точке вызова, то-есть в одном месте он может ее встроить, а в другом сделать вызов. 
PM MAIL Skype GTalk   Вверх
CompWorm
Дата 31.3.2008, 16:31 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


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

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



Цитата

CompWorm, ты что, до сих пор хочешь однозначный ответ? Типа там "Delphi круче С++, C# круче Delphi"? smile

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

я такой эксперимент поставить не могу, поэтому спросил. это повод для насмешек?


--------------------
PM MAIL   Вверх
JackYF
Дата 31.3.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 2
Всего: 162



Цитата(CompWorm @  31.3.2008,  15:31 Найти цитируемый пост)
JackYF, прочти внимательно мой вопрос.

Давно уже. Это был ответ на один из постов в твоей теме, посмотри.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
bems
Дата 31.3.2008, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



 smile 
Код

2.359
2.688
2.532
2.547

DelphiLife.rar

Это сообщение отредактировал(а) bems - 31.3.2008, 23:17


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Alexeis
Дата 31.3.2008, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



bems, че это такое?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
bems
Дата 31.3.2008, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Эта жисть на дельпхи!


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Alexeis
Дата 31.3.2008, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



bems, т.е. заоптимизировал все вручную smile безо всяких крутых компиляторов? Или не обошлось без супер компьютера? Какой результат по времени приведенных мною экзешников? Время разнится на разных машинах.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
bems
Дата 1.4.2008, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Цитата(Alexeis @  31.3.2008,  23:42 Найти цитируемый пост)
Или не обошлось без супер компьютера?

P4 1.8 GHz 256M

Цитата(Alexeis @  31.3.2008,  23:42 Найти цитируемый пост)
Какой результат по времени приведенных мною экзешников?
Они не запустились - нехватает каких-то библиотек. Время работы 
этого на той же машине около 17 секунд

Добавлено через 3 минуты и 57 секунд
Цитата(Alexeis @  31.3.2008,  23:42 Найти цитируемый пост)
т.е. заоптимизировал все вручную 
бОльшая часть эффекта, это оказ от процедур. Вероятно вижуалка действительно многое инлайнит, о чем насильники тут и говорили. И еще они были правы, когда утверждали, что дельфи-программеры умнее своего компилятора  smile  



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mayk
Дата 1.4.2008, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

Репутация: 2
Всего: 134



Раунд 2!  С картинками  smile 
Из кода bemsа были выкинуты в основном обработка исключений(так как gpc с ней не дружит), 
замер времени (так как искать аналог сишных [стандартных кстати] clock() мне лень ), финальный readln и DWORD'ы были заменены в случае gpc на integer, в случае fpc и p2c на int64 [чтоб указатель внутрь влез]. Сишный код привён к виду без использованя libp2c. Оригинальные в аттаче тоже есть.

На сей раз результаты уже не столь разительные если исключить fpc  smile , но...
user posted image

...Сишный код получаемый в рез-те трансляции опять быстрее оригинального паскалевского  (хотя для трансляторов это вроде как редкость  smile )
За графики спасибо gnuplot'у.





Это сообщение отредактировал(а) Mayk - 1.4.2008, 19:06

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  life_round2.tar.bz2 146,24 Kb


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
bems
Дата 1.4.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Цитата(Mayk @  1.4.2008,  19:05 Найти цитируемый пост)
так как искать аналог сишных [стандартных кстати] clock() мне лень 
не понял

Цитата(Mayk @  1.4.2008,  19:05 Найти цитируемый пост)
DWORD'ы были заменены в случае gpc на integer, в случае fpc и p2c на int64 [чтоб указатель внутрь влез].
ты на 64?

А какое ко всей этой информации имеет дельфи?

И вообще на поле 10х10 письками меряться не интересно. Давайте увеличим сложность задачи и откажемся от всяких трансляторов (потому что программист и его компилятор едины smile) По времени будем сравнивать то что написал пасквилянт на дельфи с тем что написал насильник на си.



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mayk
Дата 1.4.2008, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

Репутация: 2
Всего: 134



Цитата(bems @  2.4.2008,  00:12 Найти цитируемый пост)
ты на 64?

ага. и на линухе. поэтому gettickcount'ы выкинуты.

Цитата(bems @  2.4.2008,  00:12 Найти цитируемый пост)
И вообще на поле 10х10 письками меряться не интересно. 

угу. давай чё-нить зубодробидельнее. что предлагаешь?

Цитата(bems @  2.4.2008,  00:12 Найти цитируемый пост)
о. Давайте увеличим сложность задачи и откажемся от всяких трансляторов (потому что программист и его компилятор едины smile) По времени будем сравнивать то что написал пасквилянт на дельфи с тем что написал насильник на си.

А вот тут нет. мы не откажемся от трансляторов даже если будем писать задачу целиком. 
Потому что в этом то вся соль --- сейчас оттранслированный код на си получается не медленнее оригинального кода, написанного для паскаля  smile.  Причём именно код, оттранслированный ТУПОЙ машиной, а не человеком-насильником, машиной которая не способна на особо большее чем замена a := a+5 на a+=5 и эмуляцию вложенных ф-ций.  


Это сообщение отредактировал(а) Mayk - 1.4.2008, 20:48


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
bems
Дата 1.4.2008, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Цитата(Mayk @  1.4.2008,  20:35 Найти цитируемый пост)
сейчас оттранслированный код на си получается не медленнее оригинального кода, написанного для паскаля
еще раз: мы говорили о дельфи. А ты сравниваешь фронтэнд к компилятору Си с транслятором на Си. Ну ладно, если ты настаиваеш. smile


Цитата(Mayk @  1.4.2008,  20:35 Найти цитируемый пост)
давай чё-нить зубодробидельнее. что предлагаешь?
поле 800х600 с анимацией (одна клетка-один аиксель). В ходе анимации суму времени расщета и отображения каждого кадра в текстовом виде пишем в файл. Потом сторонними средствами строим график по числам из файла и меряемся общей длительностью и графиком в целом.

подойдет?


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Lazin
Дата 2.4.2008, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(bems @  1.4.2008,  21:05 Найти цитируемый пост)
В ходе анимации суму времени расщета и отображения каждого кадра в текстовом виде пишем в файл. Потом сторонними средствами строим график по числам из файла и меряемся общей длительностью и графиком в целом.
подойдет? 

я не пойму, вы компиляторы сравниваете или библиотеки? тогда можно рендеринг на DX сделать, победа у нас в кармане  smile 
PM MAIL Skype GTalk   Вверх
bems
Дата 2.4.2008, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Цитата(Lazin @  2.4.2008,  08:07 Найти цитируемый пост)
я не пойму, вы компиляторы сравниваете или библиотеки? тогда можно рендеринг на DX сделать,
огранирчимся win32api (если речь именно о дельфи, то это логично). 

Maykу придется ставить вайн smile


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mayk
Дата 2.4.2008, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

Репутация: 2
Всего: 134



Цитата(bems @  2.4.2008,  01:05 Найти цитируемый пост)
поле 800х600 с анимацией (одна клетка-один аиксель). В ходе анимации суму времени расщета и отображения каждого кадра в текстовом виде пишем в файл. Потом сторонними средствами строим график по числам из файла и меряемся общей длительностью и графиком в целом.
подойдет? 

Йа бы предпочел чисто численные задачки. В них шума меньше. 

Цитата(bems @  2.4.2008,  20:42 Найти цитируемый пост)
огранирчимся win32api (если речь именно о дельфи, то это логично). 

дельфи так сильно не дружит с opengl?  smile 


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
bems
Дата 2.4.2008, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Цитата(Mayk @  2.4.2008,  17:15 Найти цитируемый пост)
Йа бы предпочел чисто численные задачки. В них шума меньше.
хорошо. Тогда точный подщет количества простых чисел между n и m, когда они не влазят в типы данных, поддерживаемые процессором.

Цитата(Mayk @  2.4.2008,  17:15 Найти цитируемый пост)
дельфи так сильно не дружит с opengl?
Дружит. Я имел в виду что поскольку дельфи есть только под виндой, то логично пользоваться родными виндовыми средствами.



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mayk
Дата 2.4.2008, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

Репутация: 2
Всего: 134



Цитата(bems @  2.4.2008,  21:36 Найти цитируемый пост)
хорошо. Тогда точный подщет количества простых чисел между n и m, когда они не влазят в типы данных, поддерживаемые процессором.

При наличии gmp это заведомый разгром дельфи. 
Тем более что зная [примерное] кол-во простых чисел до n, это считается за 5 действий:
m/ln m - n / ln n. точный же ответ  не расчитается и до обеда. 



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
bems
Дата 2.4.2008, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Цитата(Mayk @  2.4.2008,  18:05 Найти цитируемый пост)
Тем более что зная [примерное] кол-во простых чисел до n, это считается за 5 действий:
Ты его не знаешь, если сам не пощитаешь. А это та же задача но в меньших масштабах. И я говорил о точном значении.

Цитата(Mayk @  2.4.2008,  18:05 Найти цитируемый пост)
точный же ответ  не расчитается и до обеда. 
Ну дык вот где и будет что сравнивать.

Цитата(Mayk @  2.4.2008,  18:05 Найти цитируемый пост)
При наличии gmp это заведомый разгром дельфи. 

Ну или договоримся делать руками или предлагай другой тест.



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Mayk
Дата 3.4.2008, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

Репутация: 2
Всего: 134



Цитата(bems @  2.4.2008,  22:35 Найти цитируемый пост)
Ну или договоримся делать руками или предлагай другой тест.

Для того чтобы договорится делать руками надо договорится как это делать.  GMP ведь не из воздуха взялся smile 


Цитата(bems @  2.4.2008,  22:35 Найти цитируемый пост)
Ну дык вот где и будет что сравнивать.

Кстати, ты знаешь формулу для выявления простых чисел? А то боюсь памяти для решета Эратосфена может не хватить. 
А использовать всяких Миллеров-Рабинов нельзя --- они вероятностные, что абсолютно недопустимо для точного решения.  AKS вроде есть, но он сложный


Цитата(bems @  2.4.2008,  22:35 Найти цитируемый пост)
или предлагай другой тест.

ну например расчитать $\int_a^b \frac{sin(x)}{x} dx$ методом нуу пусть трапеций, разделив участок на n частей. a,b,n задаются 
во входном файле использовать ну пусть двойную точность. достаточно легко реализовывается.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
bems
Дата 3.4.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 0
Всего: 88



Цитата(Mayk @  3.4.2008,  09:09 Найти цитируемый пост)
$\int_a^b \frac{sin(x)}{x} dx$
не понял выражения. Можно это перефразировать в виде формулы, как ее пишут в третьем классе на доске?

Цитата(Mayk @  3.4.2008,  09:09 Найти цитируемый пост)
во входном файле использовать ну пусть двойную точность
хм... боюсь выглядеть совсем дураком, но на Си и 64 это что именно?

в целом согласен



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Void
Дата 3.4.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 11
Всего: 173



Цитата(bems @  3.4.2008,  20:03 Найти цитируемый пост)
не понял выражения. Можно это перефразировать в виде формулы, как ее пишут в третьем классе на доске?

Увы и ах, форумный движок не поддерживает формулы, но TeX все равно знать не помешает smile
Это интеграл от a до b sin(x)/x по dx.


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Alexeis
Дата 3.4.2008, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 14
Всего: 459



Цитата(bems @  3.4.2008,  17:03 Найти цитируемый пост)
хм... боюсь выглядеть совсем дураком, но на Си и 64 это что именно?

  Думаю имеет ввиду 8ми байтовый double


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Zmiy
Дата 3.4.2008, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В общем, я понял, что Delphi оптимизирует код хуже, чем msvc. В частности, вычисления с плавающей точкой. Теперь меня больше интересует сравнение компиляторов Delphi и fpc.

Так что теперь предлагаю сравнивать компиляторы c++, Delphi 2006 и FPC 2.2

Я тут придумал небольшой примерчик, он тупой, но содержит довольно много разнообразных вычислений. В тесте по 3м углам строится кватернион, из него вычисляется матрица, и её определитель. Скачать можно здесь.

Просьба потестировать на разных машинах. Можно перевести на с++, чтобы сравнить результаты.

Мои результаты при значениях 1, 2, 3: 

Core 2Duo 6700 
delphi 2006 - 439 ms, Det = 1,00000023841858 
fpc 2.2 - 391 ms, Det = 1,000000238 

Pentium M 1.6 Ghz 
delphi - 850-950 ms (странно, почему такой разброс?) 
fpc - 660-850 ms 


Это сообщение отредактировал(а) Zmiy - 3.4.2008, 21:01
PM MAIL   Вверх
Isaev
Дата 27.8.2021, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня есть программка на си, которая выполняется за 15 мин, но если её собираешь с оптимизацией -O3 она выполняется 5 мин
Перевёл её практически дословно на Делфи, она выполняется так же 15 мин
Как добиться на дельфи результата 5 мин? Тут нет такого продвинутого оптимизатора)
PM MAIL ICQ   Вверх
_zorn_
Дата 28.8.2021, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Isaev @  28.8.2021,  06:51 Найти цитируемый пост)
Как добиться на дельфи результата 5 мин?

Перестать писать на делфи ? )

ЗЫ. Аватарка знакомая, с кряклаба ?  smile 
PM MAIL   Вверх
Isaev
Дата 30.8.2021, 10:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(_zorn_ @ 28.8.2021,  16:03)
Цитата(Isaev @  28.8.2021,  06:51 Найти цитируемый пост)
Как добиться на дельфи результата 5 мин?

Перестать писать на делфи ? )

ЗЫ. Аватарка знакомая, с кряклаба ?  smile

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

//Я имею ввиду, если в си оптимизировать до состояния, что -O3 сильнее оптимизировать практически не сможет, то при переводе на дельфи будет примерно та же скорость.
Но оптимизатор там классный, снимаю шляпу. Такого в дельфи нет, тут надо самому думать об оптимизации, т.к. встроенный почти ничего не даёт.

зы: да, салют

Это сообщение отредактировал(а) Isaev - 30.8.2021, 15:02
PM MAIL ICQ   Вверх
irinazanuda
Дата 31.8.2021, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Что до сих пор выбираете?
PM MAIL   Вверх
LSD
Дата 1.9.2021, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

Репутация: 9
Всего: 537



Цитата(irinazanuda @  31.8.2021,  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.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

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


 




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


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

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