19.09.2008, 13:57 | #1 |
Участник
|
DAX vs 1C
Что-то пришла мне в голову мысль сравнить скорость работы Аксапты и 1С. Написал простой тест:
PHP код:
PHP код:
Конструкция for() в Аксапте увеличила время еще на 6 секунд. Таким образом локальные вычисления в DAX происходят в 4.4 раза медленнее 1C 7.7 + компонента 1С++ DAX 4.0 Какие есть мнения?
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286) |
|
19.09.2008, 14:08 | #2 |
Участник
|
Маладец!
но обявление двух функций не эквивалентно объявлению одной функции с вложенной подфункцией. вместо n+1 можно использовать ++n для замера скорости лучше не пользоваться инфологом - это очень тяжелая структура. для замера скорости лучше пользоваться таймером. Их предлгалалось несколько вариантов. См. обсуждения на форуме. А также были обсуждения какие конструкции яызка X++ являются самыми медленными в рамках X++. И еще одно соображение. Предполагаю, что вы сейчас замерили не скорость "локальных вычислений", а скорость "сборки мусора". Скорость сборки мусора сильно зависит от используемой памяти. Т.е. для данного теста помимо скорости нужно показывать используемую клиентом память |
|
19.09.2008, 14:09 | #3 |
Участник
|
ИМХО. Ассемблер рулит. На нём наверняка будет быстрее.
|
|
19.09.2008, 14:11 | #4 |
Ищущий знания...
|
AX 3.0
X++: static void AEliz_test(Args _args) { int i = 5000000; int i1; int stratTime, endTime, runTime; ; stratTime = timeNow(); for(i1=1;i1<i;i1++) { } endTime = timeNow(); runTime = endTime - stratTime; info(time2str(runTime, 1,1)); } выполнялось на клиенте.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
19.09.2008, 14:16 | #5 |
Участник
|
Цитата:
сравнивать надо на задачах, для которых эти системы предназначены. Я правильно понимаю, что вы считаете, что Аксапта с 1Сом предназначены для целочисленных вычислений? |
|
19.09.2008, 14:17 | #6 |
Участник
|
|
|
19.09.2008, 14:19 | #7 |
Участник
|
Цитата:
Сообщение от lev
AX 3.0
X++: static void AEliz_test(Args _args) { int i = 5000000; int i1; int stratTime, endTime, runTime; ; stratTime = timeNow(); for(i1=1;i1<i;i1++) { } endTime = timeNow(); runTime = endTime - stratTime; info(time2str(runTime, 1,1)); } выполнялось на клиенте. |
|
19.09.2008, 14:21 | #8 |
Участник
|
Началось...
Но этот код более правильный с методической точки зрения. |
|
19.09.2008, 14:30 | #9 |
Модератор
|
хм....
X++: static void AEliz_test(Args _args) { int i = 5000000; int i1; int stratTime, endTime, runTime; ; stratTime = timeNow(); for(i1=1;i1<i;i1++) { } endTime = timeNow(); runTime = endTime - stratTime; info(time2str(runTime, 1,1)); } на DAX 4.0 SP2 = 17 сек |
|
19.09.2008, 14:39 | #10 |
очами вижу
|
Цитата:
По поводу методически более правильного решения. PHP код:
PHP код:
Не знаю, что в понимании MS называется компиляцией, но даже транслятор выполняется быстрее. |
|
19.09.2008, 14:51 | #11 |
Ищущий знания...
|
с while выполнилось быстрее на одну секунду, т.е. выполнение заняло 8 секунд.
X++: static void AEliz_test(Args _args) { int i = 5000000; int i1; int stratTime, endTime, runTime; ; stratTime = timeNow(); while(i1<i) { i1++; } endTime = timeNow(); runTime = endTime - stratTime; info(time2str(runTime, 1,1)); }
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
19.09.2008, 14:59 | #12 |
Участник
|
Цитата:
Цитата:
В расчете стоимости время на огранизацию цикла - наверняка самая существенная часть. Именно поэтому вы начали с циклов |
|
19.09.2008, 15:01 | #13 |
Участник
|
Эх, не могу найти. Но была очень хорошая ветка, где обсуждались медленные и быстрые конструкции в X++.
Выявить медленные/быстрые конструкции и сравнить их в разных сервис-паках в пределах одного языка было бы полезно. |
|
19.09.2008, 15:06 | #14 |
Модератор
|
SQL Server 2005 SP2
Мне почему интересно стало про SQL Server 2005 SP2
PHP код:
PHP код:
PHP код:
У кого Delphi или Visual Studio есть? Последний раз редактировалось Poleax; 19.09.2008 в 15:53. |
|
19.09.2008, 15:11 | #15 |
очами вижу
|
|
|
19.09.2008, 15:30 | #16 |
очами вижу
|
У меня потратилось 00:02:30:093 - 2 с половиной минуты. Но SQL-то уж точно не для расчетов.
А вот это: PHP код:
|
|
19.09.2008, 15:40 | #17 |
Модератор
|
Цитата:
выполняется за 0.515 секунд.
Так вот мне все таки интересно почему код static void AEliz_test(Args _args) на Ax 3.0 SP6 = 8 сек, а на DAX 4.0 SP2 = 17 сек У кого так же 3-ка и 4-ка по разному считают? или у меня что то с Аксаптой 4? Как на счет DAX 2009? Кому не лень проверить.. чистое любопытство. Последний раз редактировалось Poleax; 19.09.2008 в 15:48. Причина: DAX 2009 |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
19.09.2008, 15:43 | #18 |
Ищущий знания...
|
У меня 4-ки нет под рукой, не могу протестить, а очень хочется
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
19.09.2008, 15:49 | #19 |
Участник
|
Задачу для тестирования нашли какую-то мелкую
Вот такое Обнаружены 45-е и 46-е числа Мерсенна решить слабО ? |
|
19.09.2008, 15:56 | #20 |
Модератор
|
Михаил Андреев
предлагаешь заработать $100 тыс. Сразу скажу SQL Server 2005 не подойдет |
|
Теги |
1c, производительность, сравнение систем, ax3.0, ax4.0 |
|
|