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

Ну, потому что мне он пока что не нужен был)))

Он же никуда не денется)). Я сейчас на море, здешний полудохлый wifi стараюсь не насиловать без причины.

А, понял.

Дайте ссылки на исходник паскаля и cs. Два раза это не верится. Лучше выложите прямо сюда

исходники C#
исходники паскаля

А, понятно. Там с указателями. Может быстрее. Мы это не оптимизировали. И потом это возможно наверное написать оптимальнее - я этим давно занимался в ABCObjects по-моему

Там всё по-честному. Коды зеркальны. В той части, которая занимает 90% вычислительной мощности(двумерные свёртки) указателей нет вообще. Пока что.

Ну не совсем. В паскале используется ОМP. Во что оно там генерится, остается только догадываться.

Кстати, такое ускорение появляется при добавлении в параметрах компилятора -optimize. Так что - два варианта: компилятор проводит дикую оптимизацию либо, как говорил Иван Бондарев, оптимизирует JIT, а компилятор даёт ему на это разрешение.

GC.Collect добавляет недетерминизма. И такое ощущение, что уродливый паскалевский for неэффективнее сишного (там джампов больше).

OMP не было задействовано. Для Паскаля - стиль C# - чистый .NET.

Ну вы надеюсь паскалевскую программу с отключенной галочкой “генерировать отладочную информацию” компилировали?

Возможно, это ближе к истине.

Обижаете :smile: Она всегда отключена!

 {$OMP Parallel For}
      for Var y := 0 to Height - 1 do

Да, но это в нормализации изображения. Это не может давать разницу в 30 с лишним секунд, максимум 100 мс. В тех местах, где выполняются ресурсоёмкие операции стоит чистый .NET. Час назад обновил код - OMP заменён на .NET. От Паскаля остался лишь базовый синтаксис. FastNeuralColor.pas (55,7 КБ)

Кстати, касательно указателей, Паскаль и правда там темнит. Например - работа с динамическим массивом без фиксации по указателям не приводит к ошибкам из-за сборщика мусора, хотя в C# это происходит всегда.

Ну почему, для этого есть декомпиляторы.

Что то не складывается. Не может это происходить каждый раз - сборка мусора не так часто выполняется. Но и не может это вообще не происходить. Это так - раз в несколько сек/мин/часов, если бесконечный цикл поставить. Зависит, наверное, от того - сколько оперативной памяти загружено.

В Паскале не было НИ РАЗУ. Слава Богу.

Но вот дымовая завеса от PABCSystem несколько осложняет задачу… :face_with_monocle:

Ну при чём тут она. Она в отдельном файле генерируется после декомпиляции)). Вы попробуйте, а потом уже говорите.