On-line: PSP, гостей 0. Всего: 1 [подробнее..]
АвторСообщение
Администратор




Пост N: 2208
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.12.11 13:43. Заголовок: Интерпретаторы


Возьмем 3 продукта: 1с 8, visual foxpro и harbour.
Назначение у них различное, коня и трепетную лань сравнивать не стоит, но есть и кое-что общее: все они имеют интерпретатор, построенный на похожем принципе: сначала делается предкомпиляция в некий промежуточный код, а затем этот код выполняется.
Поэтому возникла мысль сравнить производительность этих интерпретаторов, посмотреть, так сказать, чей движок мощнее.

Берем простенький тест:

func main
Local i, nLoops := 5000000
Local L_F := 112345.67
Local L_N := 10000
Local L_C := "0123456789ABCDEF"
Local nn, nf, cc
Local nn1 := 0
Local nf1 := 0.1
Local cc1 := ""
Local nn2, nf2

Local nSec := Seconds()

for i := 1 to nLoops
nn := L_N
nf := L_F
cc := L_C
nn := L_N + 1
nf := L_F + 1.0
cc := L_C + L_C
nn1 += L_N + 1
nf1 += L_F + 1.0
if (nn1 % 2) == 0
// cc1 += L_C + chr(nn1 % 256)
endif
if (len(cc1) % 3) == 0
nn2 := nn1 % 13
nf2 := nf1 % 13
endif
nn := (nn1 + L_N + 1)*100/15
nf := (nf1 + L_F + 1.0)*100.00/15.00
next
? Seconds() - nSec
? nn, nf, cc
? nn1, nf1, len(cc1)
? nn2, nf2
retu nil

И запускаем его, с учетом различия в синтаксисе языков, конечно.
Компьютер: Celeron 2.5 GHZ, 1GB RAM

Закомментаренный оператор - это конкатенация строк. Сразу скажу, что с конкатенацией не справился никто, кроме, естественно, харбора.
Да и на его результате конкатенация сказалась незначительно:
Время с конкатенацией 18.59 сек
Время без конкатенации 16.86 сек

foexpro показал вполне приличный результат - 48.08 сек, что всего лишь в три раза хуже харбора.

Ну а что же хваленые канадские профессионалы 1с ? Ждать пришлось долго, 330 сек, что в 20(!) раз хуже харбора.
Здесь даже не подходит аналогия сравнения двигателя Запорожца с двигателем Ламборджини, надо сравнивать с двигателем реактивного истребителя.
Как говорится, за много-много лет ничто не мешало 1с обзавестись приличным движком, да вот как-то не сложилось.
Ну а движок харбора порадовал, хорош.
Можно было протестировать продукты и на других режимах, скажем, добавить тест ООП, но, думается, смысла в этом нет, класс уже понятен и без этого.


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 33 , стр: 1 2 All [только новые]





Пост N: 344
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 23.12.11 13:53. Заголовок: Pasha пишет: Как го..


Pasha пишет:

 цитата:
Как говорится, за много-много лет ничто не мешало 1с обзавестись приличным движком, да вот как-то не сложилось.


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

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 83
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 23.12.11 14:10. Заголовок: Pasha Мне представл..


Pasha
Мне представляется, что сравнение не совсем корректное. Для Harbour задача решалась в консольном режиме, а для 1С в графическом режиме. Причем для 1С вполне возможно имеется развитая встроенная система перехвата исключений, а в Harbour, если вы сами не используете BEGIN SEQUENSE система перехвата исключений отсутствует. А кроме того сразу же подключается режим отладки при возникновении ошибки. То есть код не идентичен в обоих случаях и не представляет собой то, что вы видите в листинге.

Что касается замечания
Pasha пишет:

 цитата:
Как говорится, за много-много лет ничто не мешало 1с обзавестись приличным движком, да вот как-то не сложилось


то оно также не совсем корректно. Тут главное, что этот язык есть. Много ли вы знаете фирм, разрабатывающих бухгалтерское программное обеспечение, у которых есть такой развитый язык? А мы видим, что в 1С их встроенный язык прошел большой путь эволюции, начиная с языка 1С 6.0 и до языка 1С 8.Х.
У них в приоритете стояла задача охватить встроенным языком все многообразие бухгалтерских задач, сделать его гибким, позволяющим настраивать и модифицировать любую часть программного комплекса, и при этом чтобы от пользователей не требовалось больших знаний в программировании. И с этой задачей они справились. То есть, как говорится, хороша ложка к обеду, то есть хорош тот продукт, который решает поставленную задачу.
Для срравнения, например, Java естественно уступает в скорости С++, но тем не менее Java превосходит С++ во многих областях применения, для которого он прредназначен.
Так что я не вишу большого смысла в таком сравнении.
Pasha , мне бы было интереснее сравнить ваш собственный язык, который вы разработали самостоятельно для своей бухгалтерской программы, с языком 1С. Вот здесь был бы предмет для сравнения.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2209
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.12.11 14:26. Заголовок: Возражения не приним..


Возражения не принимаются. Графический режим никакой роли не играет, харбор в графическом режиме показал бы тот же результат. По поводу исключений - это только домыслы. Да и какие там исключения могут быть. Отладка есть и в харборе.
Код не полностью идентичен, конечно, но представление о качестве движка дает.
По поводу встроенного движка 1с - так 1с постарше харбора будет. Могли бы движок и довести за это время.
Я уж не говорю о том, что 1с - продукт коммерческий, делается за деньги, и очень немаленькие, а харбор - свободная разработка, держится на инициативе.
А насчет смысла сравнения я написал. Я сравнивал то общее, что есть в этих продуктах.
А по поводу моего собственного языка - так этот язык и есть харбор. Настройка у меня делается через файлы hrb, которые выполняются hvm с той же производительностью, что и родной пи-код харбора. Это, собственно, он и есть. Так что я могу смело сказать, что мой собственный язык в 20 раз производительнее, чем язык 1с :)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 84
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 23.12.11 14:41. Заголовок: Pasha Я не знаю ва..


Pasha

Я не знаю вашего языка для бухгалтерских программ. Вот когда вы его обнародуете, когда можно будет с его помощью работать со всякими справочниками, формами, запросами, тогда и будет предмет для разговора.
Более того у 1С имеется связь между выполняемым языком и исходным кодом в случае возниконовения ошибки. То есть при возникновении ошибки происходит перехват исключительной ситуции, запускается режим отладки, и высвечивается исходная строка кода программы с детальным указанием ошибки. То есть имеет место быть не просто язык, а целая интегрированная среда его использования. К тому же язык 1С рассчитан на многопользовательских режим работы. Поэтому там стоят различные проверки режима работы программы. Все это накладывает отпечаток на производительность. Как я уже сказал, это все равно, что сравнивать Java и С++, или С# и C++. В перрвые языки уже многие средства высоокого уровня встроены, и пользователю языка не нужно заботиться о многих вещах. А в с++ аналогичные вещи придется разрабатывать самостоятельно, как говорится, с чистого листа.
То же самое и в отношении 1С. Если бы вы решили самостоятельно разработать язык на освное Harbour для бухгалтерских задач, вы увидели бы, сколько бы вам пришлось бы надстраивать над этим базовым языком дополнительных слоев, и как производительность постепенно бы снижалась.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 85
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 23.12.11 14:47. Заголовок: Добавлю еще, что ког..


Добавлю еще, что когда в Harbour вы используете локальные переменные, то Harboir не хранит о них информации, то есть об имени переменной и т.д. А потому в сулчае ошибки во время выполнения, пользователь не получит сведений об имени переменной. В 1с для переменных строится таблица, которая хранит названия этих переменных, точно также как это делается пря private или public переменных в Harbour.
То есть изначально при создании языка ставились разные приоритеты. В 1С главным приоритетом был понятность и доступнос ь пользователям- не программистам.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2210
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.12.11 15:04. Заголовок: А вот это как раз те..


А вот это как раз те самые проблемы индейцев, которые меня, шерифа, не волнуют. Наверное, много чего в движке 1с сделано плохо, раз мы имеем такой результат.
Да и покажите мне пользователя, который будет копаться в конфигурации 1с. Нет, конечно, всякое бывает, земля российская рождает платонов с невтонами, но это будет редким, редчайшим исключением.
Работа с конфигурацией = это как раз функция т.н. "программиста 1с", да и то не всякого. Большинство просто ставят готовые конфигурации.
Так что Вы цель создания встроенного языка 1с определили неверно. Конечный пользователь не знает и не должен знать о его существовании.


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2211
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.12.11 15:19. Заголовок: Смешались в кучу кон..


Смешались в кучу кони, люди. У меня, положим, тоже есть класс справочник, функции создания форм и много чего еще. Но к производительности интерпретатора это отношения не имеет.
Ттак же и в 1с. Есть предопределненные обьекты, у них какие-то свойства и методы. И есть интерпретатор, который работает с этими обьектами, но его главная функция - просто выполнять код. И он выполняет обычный код в 20 раз медленнее харбора.
В 1с есть связь с исходным кодом, и в случае ошибки можно увидеть, где она возникла ? Все это есть и в харборе, но почему-то для 1с это является оправданием, а для харбора - нет.
Многопользовательский режим работы с БД к производительности движка также не имеет отношения. То есть, этот фактор играет роль только при обращении к БД, а когда просто выполняется код - это никакого значения не имеет.
Я сравнил производительность движка, и никаких оправданий тут быть не может.

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


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 345
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 23.12.11 15:29. Заголовок: Сыроежка пишет: У н..


Сыроежка пишет:

 цитата:
У них в приоритете стояла задача охватить встроенным языком все многообразие бухгалтерских задач, сделать его гибким, позволяющим настраивать и модифицировать любую часть программного комплекса, и при этом чтобы от пользователей не требовалось больших знаний в программировании.


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

Сыроежка пишет:

 цитата:
Pasha , мне бы было интереснее сравнить ваш собственный язык, который вы разработали самостоятельно для своей бухгалтерской программы, с языком 1С. Вот здесь был бы предмет для сравнения.


А Вы всегда разрабатываете свой язык основываясь на другом языке, чтобы выполнить какую-то задачу? Вы профи

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2240
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.12.11 15:45. Заголовок: Clipper 5.2e :sm12:..


Clipper 5.2e

Real Mode 85.19
Protected mode 99.96

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2212
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.12.11 16:00. Заголовок: Dima пишет: Clipper..


Dima пишет:

 цитата:
Clipper 5.2e

Real Mode 85.19
Protected mode 99.96



Это мой тест ? А в сравнении с харбором как клиппер будет ? Надо же запускать на одном и том же компьютере.

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 2241
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.12.11 16:03. Заголовок: Pasha пишет: Это мо..


Pasha пишет:

 цитата:
Это мой тест ?


Да твой тест.
Машинка такая
Intel Pentium 4 630, 3000 MHz (15 x 200)
2GB RAM

ЗЫ
Harbour на этой машинке от 25 до 35 сек

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2213
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.12.11 16:16. Заголовок: То есть, даже интерп..


То есть, даже интерпретатор клиппера работает в разы быстрее, чем интерпретатор 1с, и это несмотря на то, что выполняется 16-ти разрядное приложение под дос-эмулятором. Прямо Феррари :)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 346
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 23.12.11 16:50. Заголовок: Version: Harbour 3.1..


Version: Harbour 3.1.0dev (Rev. 17139)
Compiler: MinGW GNU C 4.6.1 (32-bit)
Platform: Windows XP 5.1.2600 Service Pack 3
с 19.50
без15.97


clipper 5.3(b)
без 71.68
с ошибка Error BASE/1209 String overflow: +
Called from MAIN(24) cc1 += L_C + chr(nn1 % 256)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 86
Зарегистрирован: 11.10.11
ссылка на сообщение  Отправлено: 23.12.11 17:20. Заголовок: Сыроежка пишет: ц..



 цитата:
Сыроежка пишет:

цитата:
У них в приоритете стояла задача охватить встроенным языком все многообразие бухгалтерских задач, сделать его гибким, позволяющим настраивать и модифицировать любую часть программного комплекса, и при этом чтобы от пользователей не требовалось больших знаний в программировании.




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



Причем здесь функции? Вы что так наивно думаете, что одна функция должна решать полностью какую-то бухгалтерскую задачу? Это все равно, что сказать, что Harbour должен состоять из одной функции, которая решает любую задачу программиста. Так что, извините, но никакого смысла в вашей реплике я не вижу. Под охватом многообразия бухгалтерских задач имеется в вииду, что вы можете работать со справочниками, документами, создавать формы входных и выходных документов, делать запросы по любому критерию на встроенном языке. У них для каэжого объекта в терминах бухгалтерских категорий создан соответствующий объект в терминах объектов языка программирования. И это достаточно удобно.


 цитата:
Сыроежка пишет:

цитата:
Сыроежка пишет:

Pasha , мне бы было интереснее сравнить ваш собственный язык, который вы разработали самостоятельно для своей бухгалтерской программы, с языком 1С. Вот здесь был бы предмет для сравнения.



 цитата:
AlexMyr пишет:
А Вы всегда разрабатываете свой язык основываясь на другом языке, чтобы выполнить какую-то задачу? Вы профи



А этот ваш вопрос вообще не понятен. Причем здесь то, разрабатывал лично я свой язык, основыцваясь на другом языке или нет? Я разве какие-то выдвигаю претензии, что я сам сделал лучше 1С? Я не имею отношение ни к разработке 1С, ни к разработке Harbour.
Но если говорить о бухгалтерских программах, то очевидно, что они должны иметь встроенный язык, позволяющий пользователям самостоятельно выполнять различные запросы. Иначе программа совершенно не нибкая и для получения любой даже самой примитивной справки или отчета придется обращаться к разработчикам.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 652
Зарегистрирован: 27.01.07
ссылка на сообщение  Отправлено: 23.12.11 19:42. Заголовок: Думается, что любой ..


Думается, что любой объект (языки программирования - не исключение) существует, пока кто-то в нём нуждается. Т.е., и 1C и Harbour существуют одновременно не для соревнования. Они в разных мирах. Есть мир 1С и есть мир Harbour. Какой смысл их сравнивать? Это все равно, что сравнить две лопаты: штыковую и для уборки снега. И та, и другая - лопата. Но каждая имеет свое предназначение, т.е. существует в своём мире. Не ломайте копья, парни...


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2214
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 23.12.11 20:00. Заголовок: Мне просто захотелос..


Мне просто захотелось посмотреть, насколько хорош движок харбора, вот я и сравнил его с тем, что оказалось под рукой. Еще интересно было бы сравнить с java.
А насчет 1с - я подобный нынешнему тест: огромный цикл с простейшими вычислениями - гонял лет 5-6 назад с тогдашним харбором и 1с 7.7. Результат и тогда был в пользу харбора: быстрее на 2 порядка, то есть (не удивляйтесь) в 100 раз.
Так что с тех времен у 1с наблюдается несомненный прогресс. Хотя, конечно, я взял сильное место харбора и (как оказалось) слабое место 1с.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 184
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.12.11 17:32. Заголовок: Ну, java вообще рабо..


Ну, java вообще работает как черепаха. И интерфейс кривой и подключение баз данных - НЕЧТО. И вообще очень запутанный язык, даже сложнее, чем Си.

1с - это как бы Visual Basic, переведенный на русский язык. Кривоватый и чересчур узконаправленный, но это единственный успешный РУССКИЙ язык программирования. Я английский знаю и по мне так лучше Visual Basic, если бы он не таскал за собой кучу DLL.

Foxpro под ДОС - это мой первый язык. Помню XT-шку с зелёным экраном, на которой и писались программы под FOXPRO. Visual Foxpro - это уже "смесь бульдога с носорогом". И туёва хуча DLLек для запуска в автономном режиме.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 347
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 24.12.11 19:26. Заголовок: Dr. Oldwarez пишет: ..


Dr. Oldwarez пишет:

 цитата:
Ну, java вообще работает как черепаха

Это да, чего стоит работа с клиент банком от бифита, надо уметь так писать

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 185
Зарегистрирован: 27.07.08
ссылка на сообщение  Отправлено: 24.12.11 23:48. Заголовок: Непонятно только, че..


Непонятно только, чего эту жабу сейчас всюду суют. От неё только компы висят.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 2216
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 26.12.11 21:00. Заголовок: Прогнал свой тест на..


Прогнал свой тест на java. Java оказался примерно в 5 раз быстрее харбора. Таким образом, получается, если движок харбора - это реактивный истребитель, то движок java - космическая ракета.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 33 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 168
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет