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

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

Модерирует : 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

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

data man



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Обсуждаем новые возможности и баги
Просьба писать только про Embarcadero RAD Studio XE2 (Pulsar) - по остальным версиям есть соответствующие темы.

Вопросы вареза здесь не обсуждаются !!!
См. также:


Из слишком часто повторяемых вопросов:
  1. Почему EXE такие большие - перевод статьи от Andy тут, оригинал на страницу назад.
  2. Что случилось c авто-увеличением Build Number - Объяснение на англ.. Можно отключить встроенную функцию и добавить плагин, в котором есть "старый" авто-инкремент. Например DDevExtensions от Andy. У него так же есть хороший плагин IDE FixPack

Всего записей: 1696 | Зарегистр. 13-10-2005 | Отправлено: 23:54 27-07-2011 | Исправлено: Arioch1, 16:08 25-04-2013
druff

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sulphide
Синтетический тест это хорошо.. А если сравнить производительность реальных приложений?

Всего записей: 402 | Зарегистр. 14-11-2006 | Отправлено: 09:48 19-09-2011 | Исправлено: druff, 10:06 19-09-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sulphide
Откройте для себя delphifeeds.com:
http://delphitools.info/2011/09/02/first-look-at-xe2-floating-point-performance/
http://delphitools.info/2011/09/05/xe2-single-precision-floating-point-disappointment/
 
tank0
It is the default alignment for x64 target.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 14:34 19-09-2011
Sulphide

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Спасибо, не знал. проблема только в том что ни {$O+} ни {$EXCESSPRECISION OFF} ровным счетом ничего не дают конкретно для этого примера. Значит все же проблема компилятора.

Всего записей: 279 | Зарегистр. 20-03-2008 | Отправлено: 17:19 19-09-2011 | Исправлено: Sulphide, 17:48 19-09-2011
ppkp

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если у кого стоит XE2 под WinXP SP3 и нормально работает Project->Options, отпишитесь, пожалуйста. У меня вылетает сообщение "out of memory" при вызове этого диалога. На Win7x64 все нормально. Что тут может быть?

Всего записей: 480 | Зарегистр. 13-04-2006 | Отправлено: 19:34 19-09-2011
tank0

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

 
My VM is winxp sp3 32bit, and XE2 works well.  
If you have plugins for IDE, you can try to uninstall them.
 
Ru:
Моя виртуальная машина WinXP SP3 32bit, и XE2 работает хорошо.
Если у вас есть плагины для IDE, вы можете попробовать удалить их.

Всего записей: 144 | Зарегистр. 19-10-2009 | Отправлено: 21:25 19-09-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sulphide
Да, для примера не дают, а для реального приложения?

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 22:16 19-09-2011
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
 
Ну например тут граждане страдали тестами производительности:
 
_http://www.da-soft.com/blogs/anydac-for-delphi-and-rad-studio-xe2.html

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 23:28 19-09-2011
Sulphide

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins А в реальном приложении могут быть такие же подставы, причем найти их будет в разы сложнее и никто от этого не застрахован, особенно если будет много вложенных вызовов процедур и функций + треды + вложенные циклы. И это явный баг компилятора, если уж 3 сравниваемых нормально справились с этим примером. Вот кстати дизасм, можно сравнить как FP делает все очень элегантно и как тупо в лоб компилирует дельфи (само тело цикла):
 
FreePascal: минимум записей в память, минимум преобразований, синус считается красиво, переменная цикла находится в регистре
 
.text:00000001000016A8 loc_1000016A8:                        
.text:00000001000016A8                 inc     eax
.text:00000001000016AA                 cvtsi2sd xmm1, eax
.text:00000001000016AE                 movsd   xmm0, qword ptr [rbp-10h]
.text:00000001000016B3                 divsd   xmm0, cs:qword_10002E3B0
.text:00000001000016BB                 addsd   xmm0, xmm1
.text:00000001000016BF                 movsd   xmm8, xmm0
.text:00000001000016C4                 movsd   xmm0, xmm8
.text:00000001000016C9                 mulsd   xmm0, cs:qword_10002E3B8
.text:00000001000016D1                 mulsd   xmm0, xmm0
.text:00000001000016D5                 movsd   qword ptr [rbp-88h], xmm0
.text:00000001000016DD                 fld     qword ptr [rbp-88h]
.text:00000001000016E3                 fsin
.text:00000001000016E5                 fstp    qword ptr [rbp-88h]
.text:00000001000016EB                 movsd   xmm0, qword ptr [rbp-88h]
.text:00000001000016F3                 movsd   xmm9, xmm0
.text:00000001000016F8                 cmp     eax, 0F4240h
.text:00000001000016FD                 jl      short loc_1000016A8
 
теперь тоже самое дельфи:
 
.text:00000000004101D9 loc_4101D9:                              
.text:00000000004101D9                 cvtsi2sd xmm0, cs:qword_418CE8
.text:00000000004101E2                 movsd   xmm1, cs:qword_418CF0
.text:00000000004101EA                 divsd   xmm1, cs:qword_4102C8
.text:00000000004101F2                 addsd   xmm0, xmm1
.text:00000000004101F6                 movsd   cs:qword_418CD8, xmm0  ; эта и следующая строка - ну просто шедевр оптимизации
.text:00000000004101FE                 movsd   xmm0, cs:qword_418CD8
.text:0000000000410206                 mulsd   xmm0, cs:qword_4102D0
.text:000000000041020E                 movapd  xmm1, xmm0
.text:0000000000410212                 mulsd   xmm1, xmm0
.text:0000000000410216                 movapd  xmm0, xmm1
.text:000000000041021A                 call    sub_405E50                          ;процедура расчета синуса на sse2 ну просто нереально гиганская
.text:000000000041021F                 movsd   cs:qword_418CE0, xmm0
.text:0000000000410227                 add     cs:qword_418CE8, 1             ;цикловая переменная в памяти
.text:000000000041022F                 cmp     cs:qword_418CE8, 0F4241h
.text:000000000041023A                 jnz     short loc_4101D9
 
каждый думаю сам в состоянии сделать выводы из всего этого *)

Всего записей: 279 | Зарегистр. 20-03-2008 | Отправлено: 23:49 19-09-2011 | Исправлено: Sulphide, 01:18 20-09-2011
DmitryB2005

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет народ!
Что то эмбаркадеровцы уже и инсталятор слепить толком не могут...
Вот скачанный из раздела варез триальный образ с офф. сайта(http://altd.embarcadero.com/download/radstudio/xe2/delphicbuilder_xe2_win_dl.iso)
при запуске установщика вылетает с ошибкой в консоли такой:
"Program too big to fit in memory" и чего ему 3,32 Гб оперативной памяти мало?  
Есть какие то соображения у Вас?
Да, ставил на Win 7 Sp1 32Bit Ultimate.

Всего записей: 80 | Зарегистр. 24-09-2005 | Отправлено: 01:51 20-09-2011 | Исправлено: DmitryB2005, 01:52 20-09-2011
ItsJustMe

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sulphide
Впрочем, и у FP есть непонятки - непонятно, зачем ему xmm8 и xmm9 понадобились? Да и "фирменный стиль" также присутствует

Код:
movsd   xmm8, xmm0
movsd   xmm0, xmm8  

С Embarcadero, конечно, не сравнишь, особенно перменную цикла писать в память и все операции с ней тоже в памяти делать.
 
Добавлено:
Но до кода VC им всем пилить, пилить, пилить и пилить!

Код:
int _tmain(int argc, _TCHAR* argv[])
{
  UINT x = 0;
  rand_s(&x);
  int n = 1000000;
  double z = 0.0;
  ULONGLONG t = GetTickCount64();
  for (int i = 0; i < n; i++)
  {
    int y = i + x / 2;
    z += sin((double)(y*3)*(y*3));
  }
  t = GetTickCount64() - t;
  _tprintf_s(_T("z=%lf (%I64u)\n"), z, t);
    return 0;
}


Код:
xorpd   xmm6, xmm6
mov     ecx, [rsp+38h+arg_X]
shr     ecx, 1
mov     rsi, rax
mov     edi, 1000000
lea     ebx, [rcx+rcx*2]
loop:
pxor    xmm0, xmm0
cvtsi2sd xmm0, ebx
mulsd   xmm0, xmm0
call    sin_0
add     ebx, 3
dec     rdi
addsd   xmm6, xmm0
jnz     short loop
 

Всего записей: 2040 | Зарегистр. 02-09-2005 | Отправлено: 02:13 20-09-2011 | Исправлено: ItsJustMe, 03:00 20-09-2011
Samogonwik



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вчера пробовал поставить EhLIB и FIBPlus - наткнулся на несколько приколов: поменяли некоторые процедуры, точнее типы данных (с Integer на NativeInt), поменяли синтаксис поинтеров, + ещё куча мелких приколов. Исходя из всего прочитанного, сделал для себя вывод: надо ждать SP2, если даже не третий...

Всего записей: 9 | Зарегистр. 31-08-2011 | Отправлено: 10:07 20-09-2011
anoubis



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

Цитата:
Sulphide

 
запустил Ваш пример на своем компе:
 
для x32 - 47 мс, а для x64 на много больше....?!
 
конфиг: win7 x64 макс. CPU Q9400. память 8 gb.
 
 
 
 
 
 
 

Всего записей: 5 | Зарегистр. 31-01-2006 | Отправлено: 03:07 21-09-2011 | Исправлено: anoubis, 03:16 21-09-2011
Sulphide

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
anoubis
а сколько у вас вышло? у меня 2.8 секунды для х64. для х32 да 47 мс. на феноме х4, 3.5ггц, win 7 x64

Всего записей: 279 | Зарегистр. 20-03-2008 | Отправлено: 17:25 21-09-2011
whitewolfs

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samogonwik так а чем SP2 поможет с тем же NativeInt? Надо ждать обновления компонент.

Всего записей: 300 | Зарегистр. 21-10-2005 | Отправлено: 05:10 22-09-2011
LG Team



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sulphide
 
хм, у меня  32 - 62мс,  64 - 2106
 
win 7 x64, i7-2600, 3.4gz, 4 гига

Всего записей: 328 | Зарегистр. 04-12-2006 | Отправлено: 12:40 22-09-2011 | Исправлено: LG Team, 12:41 22-09-2011
KillianRB



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Глюкобагов, конечно, море
Вот только-что столкнулся - если включить с свойствах проекта использование тем и подключить любую, взамен стандартной Виндовой, то на кнопках перестает работать WordWrap.
Особенно печально выглядит, если выставить стиль кнопки в bsSplitButton - текст налезает на стрелочку.
Тут не то, что SP1 ждать - тут срочные хотфиксы нужны!

Всего записей: 51 | Зарегистр. 17-03-2004 | Отправлено: 12:55 22-09-2011
DmitryB2005

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А у меня вообще не ставится ни на ХР СП3 ни на Вин 7 х 32-Бит,
постоянно выдает сообщение при запуске инсталла из образа, о нем я уже и в саппорт к ним стучал и тут докладывал. В поддержке предлогают качать по новой исо-образ от туда же, откуда я его и так уже качал. Одним словом, что то наши "молодцы" совсем "испортились"...

Всего записей: 80 | Зарегистр. 24-09-2005 | Отправлено: 13:14 22-09-2011
deks



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryB2005
 
 
Я ставил XE2 3 раза на разные машины - везде Win7, x64. Ни разу не было проблем! Да, при смене mac-адреса в VM слетела активация, но это ожидаемо) Так что у вас какая-то проблема! Может, прокси не докачивает образ, или чего ещё.. попробуйте web-install

Всего записей: 857 | Зарегистр. 09-10-2003 | Отправлено: 13:58 22-09-2011
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение истории про оптимизацию: http://delphitools.info/2011/09/22/delphi-xe2-64bit-bottleneck-in-trigonometric-functions/ Если кратко, то 64-битный компилятор выдает правильные значения синусов и косинусов даже для очень больших значений угла, а не мусор, как компиляторы использующие FPU. Единственная проблема в том, что это не отключается.
Кому интересно, может проверить: Sin(1e22) = -0,8522.

Всего записей: 2319 | Зарегистр. 24-05-2007 | Отправлено: 17:32 22-09-2011
Sulphide

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
вот так вот я с первого раза нашел узкое место в х64 компиляторе =)) да там действительно очень большая процедурка расчета синуса с переходами, вызовами других процедур с кучей записей в память и прочим, хотя если честно можно было бы сделать опцией.
 
зы я им там отписался, наверное после этого провели расследование:D
зыы вот так кстати не сильно насилуя  компилятор будет честнее и уже на феноме 3.5ггц получается 62мс:
 
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
 
uses
  Windows;
 
{$O+}
{$EXCESSPRECISION OFF}
 
var
  y, z: double;
  i, zt :nativeint;
  x: double;
  t: nativeuint;
 
begin
  x := 10;
  t := GetTickCount;
  for i := 1 to 1000000 do
  begin
    y := i + (x / 2);
    zt := trunc((sqr(y * 3))) and $1ff;
    z := sin(zt);
  end;
  t := (GetTickCount - t);
  Writeln(t);
  Writeln(z);
  Writeln(y);
  readln;
 
end.
 
действительно неплохо. правда msvc++ здесь же выдает уже 15мс. а fp все те же 47мс. правда одинаковые результаты дают только фп и дельфи... кстати калькулятор в 7ке х64 судя по всему sin 1e22 считает не верно))

Всего записей: 279 | Зарегистр. 20-03-2008 | Отправлено: 19:17 22-09-2011 | Исправлено: Sulphide, 20:24 22-09-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 XE2 (Pulsar)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru