Сравнение эффективности PascalABC.NET и C#

И много чем ещё. Перечеслять долго можно. На отдельную главу @RAlex’у хватит. Синтаксис читабельнее не просто в разы, а на порядок. Но это не повод приводить в документах заведомо некорректное сравнение.

Главный плюс PascalABC.Net - его простота, множество готовых подпрограмм, модулей. То, что на нём можно проводить обучение в стиле стандартного Pascal, либо использовать его как инструмент в своей профессиональной деятельности. Также, это удобная вещь для оттачивания навыков тестирования. :slight_smile:

1 лайк

Да. Но речь идёт именно о презентации. Меня немного напрягает этот момент. Я думаю, есть смысл сделать презентацию “Сравнение синтаксиса PascalABC.NET и C#” и там нормально сравнить эти две вещи. А в “Сравнение эффективности PascalABC.NET и C#” сравнивать равносильные коды, а не синтаксис со скоростью.

Либо, можно сделать две презентации для сравнения синтаксиса языков и их возможностей.

Я придерживаюсь того же мнения, что и Вы. Мне кажется, что можно работать с PascalABC.NET и C# как с Python и C++. Ресурсоёмкое ядро писать на C#, а высокоуровневые операции - на Паскале, подключая dll. Но это будет даже удобнее и быстрее, так как компилироваться будет всё.

Именно это я и предложил.

1 лайк

А можно Вы скажете какая презентация и какой слайд?

Сейчас скажу.

Это не презентация, а статья на официальном сайте: http://pascalabc.net/stati-po-pascalabc-net/obuchenie-programmirovaniyu/28-meryaem-proizvoditelnost

Так. Лучше. Где там фраза “PascalABC.NET в 4 раза лучше C#” ? Говорите - я её сразу уберу.

Такого там, конечно, нет, но

Такой же, как и у C#. Как говорится в рекламе: “а если результаты одинаковы, то зачем платить больше?”. Собственно, эта программа будет нашей отправной точкой. Попытаемся ускорить перемножение матриц.

Прирост производительности - 4 раза. И это - за счет того, что мы знаем, что у процессора есть кеш. И язык программирования тут ни при чем. Просто алгоритмы надо уметь готовить.

А проводилась ли такая же оптимизация алгоритма на C#? Может быть, но об этом ничего не сказано.

Спортивный интерес не позволяет нам просто так остановиться. И мы вспоминаем, что в PascalABC.NET есть такая замечательная штука как OpenMP, позволяющая на многоядерном процессоре распараллеливать циклы простой директивой компилятора.

Как и было обещано теорией. В 4 раза. Вывод, собственно, прост. PascalABC.NET - хорошая система программирования :slight_smile:

И опять ни слова о C#. Собственно, в таблицах в конце статьи так же не указано результатов для данных алгоритмов на C#. Только C++ и FreePascal, не относящиеся к .NET - языкам и не претендующие ни на что в контексте .NET.

На счёт C++ не сказал бы. Есть его реализация под .Net Framework.

Вот если нет, то и вопроса нет. И не высасывайте из пальца то, что Вы домыслили.

Даже название статьи - “Меряем производительность”.

Это у Вас в заголовке - сравнение с C#. То есть, Вы домыслили, потом раскритиковали домысленное.

1 лайк
  1. Есть, я знаю, но писали то на обычном C++.

А если говорить о самом языке, то Unmanaged C# оказался бы полезнее…

Привёл “простыню” FastNeuralColor в человеческий solution. Иначе пользоваться невозможно.

А при чём здесь PascalABC.NET?

Оно раньше было на паскале написано. uni это глеб, я так понял. (хотя, конечно, объяснение всё равно не оч)
А вот при чём тут эта тема - вот это вообще загадка.

Глеб же уже давно покинул форум…

А, не, перепутал. Ссылка кидала на форк проекта глеба. Но люди, вроде, таки разные.

А вот в статье http://pascalabc.net/stati-po-pascalabc-net/obuchenie-programmirovaniyu/28-meryaem-proizvoditelnost

в FreePascal на 32 или 64 бита компилировался? Тут большая разница. У меня на Ryzen 3 выдало на PascalABC.net 1,8 c (c транспонированием, как в статье). В Delphi 10 при компилировании на 32 бит получилось 4,83 с. Причём транспонирование слабо помогало. При компилировании на 64 бит получилось 1,14-1,16 с. То есть почти как С++ , правда наверное в C++ 2019 года будет получше. Подозреваю , что во FreePascal это тоже имеет значение(хотя правда никогда им не пользовался, поэтому не знаю).

Если вы скажете, где во FP установить 64 бита - с удовольствием попробую: