![]() |
#1 |
Участник
|
DAX vs 1C
Что-то пришла мне в голову мысль сравнить скорость работы Аксапты и 1С. Написал простой тест:
PHP код:
PHP код:
Конструкция for() в Аксапте увеличила время еще на 6 секунд. Таким образом локальные вычисления в DAX происходят в 4.4 раза медленнее 1C 7.7 + компонента 1С++ DAX 4.0 Какие есть мнения?
__________________
Дом поросенка должен быть крепостью. (Наф-Наф, полн. собр. соч., т.5, стр. 286) |
|
![]() |
#2 |
Участник
|
Маладец!
но обявление двух функций не эквивалентно объявлению одной функции с вложенной подфункцией. вместо n+1 можно использовать ++n для замера скорости лучше не пользоваться инфологом ![]() для замера скорости лучше пользоваться таймером. Их предлгалалось несколько вариантов. См. обсуждения на форуме. А также были обсуждения какие конструкции яызка X++ являются самыми медленными в рамках X++. И еще одно соображение. Предполагаю, что вы сейчас замерили не скорость "локальных вычислений", а скорость "сборки мусора". Скорость сборки мусора сильно зависит от используемой памяти. Т.е. для данного теста помимо скорости нужно показывать используемую клиентом память ![]() |
|
![]() |
#3 |
Участник
|
ИМХО. Ассемблер рулит. На нём наверняка будет быстрее.
|
|
![]() |
#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)); } выполнялось на клиенте.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#5 |
Участник
|
Цитата:
сравнивать надо на задачах, для которых эти системы предназначены. Я правильно понимаю, что вы считаете, что Аксапта с 1Сом предназначены для целочисленных вычислений? |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#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)); } выполнялось на клиенте. |
|
![]() |
#8 |
Участник
|
Началось...
Но этот код более правильный с методической точки зрения. |
|
![]() |
#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 сек |
|
![]() |
#10 |
очами вижу
|
Цитата:
По поводу методически более правильного решения. PHP код:
PHP код:
Не знаю, что в понимании MS называется компиляцией, но даже транслятор выполняется быстрее. |
|
![]() |
#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)); } ![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#12 |
Участник
|
Цитата:
![]() Цитата:
В расчете стоимости время на огранизацию цикла - наверняка самая существенная часть. Именно поэтому вы начали с циклов ![]() |
|
![]() |
#13 |
Участник
|
Эх, не могу найти. Но была очень хорошая ветка, где обсуждались медленные и быстрые конструкции в X++.
Выявить медленные/быстрые конструкции и сравнить их в разных сервис-паках в пределах одного языка было бы полезно. |
|
![]() |
#14 |
Модератор
|
![]()
Мне почему интересно стало про SQL Server 2005 SP2
PHP код:
PHP код:
PHP код:
![]() У кого Delphi или Visual Studio есть? Последний раз редактировалось Poleax; 19.09.2008 в 15:53. |
|
![]() |
#15 |
очами вижу
|
|
|
![]() |
#16 |
очами вижу
|
У меня потратилось 00:02:30:093 - 2 с половиной минуты. Но SQL-то уж точно не для расчетов.
А вот это: PHP код:
|
|
![]() |
#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). |
![]() |
#18 |
Ищущий знания...
|
Цитата:
![]()
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#19 |
Участник
|
Задачу для тестирования нашли какую-то мелкую
![]() Вот такое Обнаружены 45-е и 46-е числа Мерсенна решить слабО ? |
|
![]() |
#20 |
Модератор
|
Михаил Андреев
предлагаешь заработать $100 тыс. ![]() Сразу скажу SQL Server 2005 не подойдет ![]() |
|
Теги |
1c, производительность, сравнение систем, ax3.0, ax4.0 |
|
|