Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE3

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Открыть новую тему     Написать ответ в эту тему

Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks
В 64-х битном компиляторе оптимизация операций с плавающей точкой кажется отключена по умолчанию. Вы ее включали при компиляции?

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 00:47 13-12-2012
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
 
Вы про
Код:
{$EXCESSPRECISION OFF}
?
 
Добавлял такое в тест, не влияет на результат. Видимо, точность вычислений меняется для float, a не double.

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 09:41 13-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по документации это влияет на промежуточное конввертирование single -> double
поскольку в SSE3 ничего больше нет - то и влиять больше не на что.
 
PS. странная пара какая-то, float/double. Либо называть по-паскалевски, single/double либо по cишному - float и long float
 
Добавлено:
Если кому нужно для Йокселя - хотфикс в комментах http://qc.embarcadero.com/wc/qcmain.aspx?d=111277

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 09:59 13-12-2012 | Исправлено: Arioch1, 10:42 13-12-2012
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
 
Вы мне своим комментом чуть голову не сломали)))  
 
по паскалевски таки: single/double/extended  
по сишному: float / double / long double
 
И да, путаюсь.. Все эти кросс-платформенные языки!))  
С одним NSNumber проще))

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 10:39 13-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
забудь extended - его больше нет, фактически остался один ярлык, как от Real (в практическом смысле. Теоретически конечно есть и unit возвращающий x87 на x64 )
 
double - Это же просто typedef, нет ?  
float / long float / long long float - так вроде.
 
Переходи на ассемблер! в смысле на JS
 
Добавлено:
PS. мдааа... я и себе сломал. Но что же делать - откуда у меня вообще может быть голова с утра? :-D

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 10:42 13-12-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks
Вспомнил, в первом триале XE2 оптимизация только через {$O+} включалась: http://delphitools.info/2011/09/02/first-look-at-xe2-floating-point-performance/

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 13:32 13-12-2012
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
 
Оптимизация была включена только в проекте. Щас поробую воткнуть ее ключом.
 
upd: нифига: 13 sec / 13 sec
 
upd2: .NET версия теста: 6 sec / 9 sec (обновил табличку).
 
На очереди - Java версия))

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 18:20 13-12-2012 | Исправлено: deks, 19:13 13-12-2012
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прочитал на _delphitools.info про node-webkit. Захотелось зафигачить SmartMobile-версию теста в эту хрень! Может, на выходных разберусь..
 
upd:Оказалось, packaging тривиальный, поэтому все быстро! Обновил результаты)

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 13:28 14-12-2012 | Исправлено: deks, 13:36 14-12-2012
GlavBuh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks

Цитата:
packaging тривиальный, поэтому все быстро! Обновил результаты)

Спасибо, очень познавательно!

Цитата:
про node-webkit

Эрик Гранге сегодня в ударе.

Всего записей: 96 | Зарегистр. 13-11-2003 | Отправлено: 14:18 14-12-2012
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Допилил тесты с Oxygene for Java! Уф.. Результаты обновлены!
 
Самое геморройное - это прочитать 3 SDK на предмет из методов для работы с консолью и датой-временем.. Ну и найти где там у них sin / sqrt.. Пипец. Все очень похоже, но называется чуть-чуть по разному, и работает чуть чуть непохоже!
 
П.С. Начинаю очень верить в Sugar! Это реально оч крутой проект))
 
Выводы по тестированию
 
Objective-C самый быстрый, что не удивительно, учитывая C-корни. То есть, если вызов функций производится не через runtime, то это быстро. Потому и победил во время вычисления Sin and Sqrt.  
 
Delphi довольно медленная с FPU, практически медленнее нее только некоторые JS - runtime.
 
.NET немного быстрее Java.  
 
Производительность современных вариаций JS находится на уровне Java.
 

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 17:41 14-12-2012 | Исправлено: deks, 17:54 14-12-2012
salexn1



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks
а где можно увидеть результаты тестов?

Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 18:35 14-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
То что называется по разному - это фигня. Это они сделают конечно же. Это и в Delphi на инлайнах можно сделать.
 
А вот то, что ведёт себя по разному... Помнится тут прилетал один дизайнер и обещал на раз-два сделать FMX полностью соответствующим любому нативному UI
И его не смутило что SWT развивается годами...
 
Будет у них обычное "наименьшее подмножество" поведений.
 
Добавлено:
salexn1 отлистни страничку назад

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 19:01 14-12-2012
kot3

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
отлистни страничку назад  

Может в шапку лучше отправить?

Всего записей: 430 | Зарегистр. 15-12-2005 | Отправлено: 19:12 14-12-2012
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
 
Вся прелесть в том, что в Sugar есть mapped types, которые прямо соответствуют нативному классу на платформе! То есть, ничего не мешает задействовать платформенные фишки. И никакого lock на common denominator!) И на платформе никто не ограничен возможностями кросс-платформенного API класса. Хочешь - задействуй класс через кросс-платформенные методы, хочешь - этот же объект имеет и все нативные методы для платформы.  
 
Разности поведения тоже не происходит, так как у mapped класса могут быть только методы, причем они будут inline. Очень многие методы могут быть просто mapped на соответствующий метод нативного класса.  
 
А уж если нужно такую же фишку провернуть на другой платформе, ничего не стоит добавить собственный mapped-method.  
 
Довольно здравая тема на самом деле - и гибкая, и многофункциональная! Я как то проникся))  
 
Про GUI: идея общего GUI на разных платформах наталкивается на проблему с разными HIG платформ. Не все можно откорректировать стилями. Иногда GUI проще полностью переделать. Не вижу большой актуальности в кросс-платформенном GUI.  
 
А вот общий backend на разных платформах бы не помешал!) типа, JSON, XML, rest, oauth, zip, SQLite, ...

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 21:25 14-12-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
deks
Мне как то попадалась статья, в которой было описано, насколько сложно писать XAML-код, работающий одинаково на разных майкрософтовых платформах. Проблема была как раз в том, что при наличии одних и тех же функций и классов на всех платформах, все они ведут себя немного по разному. Это оказался такой мощный источник багов, что автор отказался от идеи добавить в свою библиотеку поддержку WinRT.
В mapped types таких особенностей поведения будет еще больше. Хорошо хоть платформ пока что всего около восьми.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 23:27 14-12-2012
xRay

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1

Цитата:
Взять готовый, написанный другими парсер C++ от LLVM CLang и добавить в него интеграцию с IDE и возможно borland-specific расширения языка - это одно.  
С нуля реализовать Delphi-парсер, свой собственный - это другое.  

Сам не щупал, но есть вот такой проект http://code.google.com/p/llvm-pascal/ и судя по логу измений исходников в репе он живет и комитится

Всего записей: 870 | Зарегистр. 10-12-2001 | Отправлено: 23:44 14-12-2012 | Исправлено: xRay, 00:19 15-12-2012
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
 
Без ссылки на первоисточник сложно обсуждать сабж, но замечу - xaml'ом у ms описывается интерфейс, то есть frontend. Я же говорю о backend - это разные вещи)) Так что mapped types отлично подходят для своей задачи!) Просто задачу нужно понимать правильно. Ну и mapped types не претендуют на роль серебрянной пули в cross platform. Создать хорошие API для RTL - это непросто!)
 
Думаю, RemObjects постараются взять идеи из .net)

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 00:12 15-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
так это все уже есть - Apache Runtime, Qt, C RTL, C++ RTL, Delphi/FPC RTL - они все задают тот самый RTL API
Не говоря про библиотеки класов .Net/Java/Android
 
Зачем новый API придумывать ? возьми готовый и если хочется сделай свою реализацию (как FPC для Delphi API)
 
И кстати Дельфи после D8 тоже пытаются свой RTL API слизать с .Net и его хороших идей. Иногда - как с TEncoding - получается жуть
 
Ты считаешь что в RO сидят мега-таланты которые сделают это лучше, чем все до них.  
Мы скептики, мы считаем что у них получится ровно то же, что у других - не хуже и не лучше.
И поетнциально у них не будет большого сообщества, которое смогло бы недостатки выправлять заних, как только они сочтут проект законченным и снимут с него своих ключевых программистов

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 16:11 15-12-2012
Kiklo

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
  И всё-таки хотелось бы услышать более определенный ответ на вопрос: способен ли XE3 U1 компилить плавающую арифметику по-старинке под x87, не пользуясь SSE2/SSE3? Вопрос стоит не про режим умолчания, а саму принципиальную возможность его к этому принудить, выставляя разные опции. Одинаково ли обстоит с этим делом в x32 и в x64 вариантах, или по-разному?
 
   В этой же связи непонятно, является ли код x87 запрещенным в режиме x64 или же его использование заблокировано исключительно по политическим мотивам? Т.е. могу ли я линковать с x64-кодом ассемблерные модули, содержащие в себе расчеты на x87?

Всего записей: 234 | Зарегистр. 17-08-2007 | Отправлено: 19:55 15-12-2012 | Исправлено: Kiklo, 19:57 15-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) повторяю: люди делали модуль, на инлайн-функциях и рекорд-хелперах для XE2 x64 чтобы верунть рассчёты Extended на x87
Он разумеется работает медленее родной поддержки, хотя бы потому что не может ставить FWAIT только где надо, а не везде-либо-нигде. Тем не менее, он существует и люди им пользовались.
 
2) Компилятор в XE3 - это продолжения компилятора XE2, а не что-то новое. Поэтому он точно так же бедт использовать 10-байтовый x87 в x86-режиме, и 8-байтовый SSE в x64

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 21:49 15-12-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru