Ну, потому что мне он пока что не нужен был)))
Он же никуда не денется)). Я сейчас на море, здешний полудохлый wifi стараюсь не насиловать без причины.
Ну, потому что мне он пока что не нужен был)))
Он же никуда не денется)). Я сейчас на море, здешний полудохлый wifi стараюсь не насиловать без причины.
А, понял.
Дайте ссылки на исходник паскаля и cs. Два раза это не верится. Лучше выложите прямо сюда
А, понятно. Там с указателями. Может быстрее. Мы это не оптимизировали. И потом это возможно наверное написать оптимальнее - я этим давно занимался в ABCObjects по-моему
Там всё по-честному. Коды зеркальны. В той части, которая занимает 90% вычислительной мощности(двумерные свёртки) указателей нет вообще. Пока что.
Ну не совсем. В паскале используется ОМP. Во что оно там генерится, остается только догадываться.
Кстати, такое ускорение появляется при добавлении в параметрах компилятора -optimize. Так что - два варианта: компилятор проводит дикую оптимизацию либо, как говорил Иван Бондарев, оптимизирует JIT, а компилятор даёт ему на это разрешение.
GC.Collect добавляет недетерминизма. И такое ощущение, что уродливый паскалевский for неэффективнее сишного (там джампов больше).
OMP не было задействовано. Для Паскаля - стиль C# - чистый .NET.
Ну вы надеюсь паскалевскую программу с отключенной галочкой “генерировать отладочную информацию” компилировали?
Возможно, это ближе к истине.
Обижаете Она всегда отключена!
{$OMP Parallel For}
for Var y := 0 to Height - 1 do
Да, но это в нормализации изображения. Это не может давать разницу в 30 с лишним секунд, максимум 100 мс. В тех местах, где выполняются ресурсоёмкие операции стоит чистый .NET. Час назад обновил код - OMP заменён на .NET. От Паскаля остался лишь базовый синтаксис. FastNeuralColor.pas (55,7 КБ)
Кстати, касательно указателей, Паскаль и правда там темнит. Например - работа с динамическим массивом без фиксации по указателям не приводит к ошибкам из-за сборщика мусора, хотя в C# это происходит всегда.
Ну почему, для этого есть декомпиляторы.
Что то не складывается. Не может это происходить каждый раз - сборка мусора не так часто выполняется. Но и не может это вообще не происходить. Это так - раз в несколько сек/мин/часов, если бесконечный цикл поставить. Зависит, наверное, от того - сколько оперативной памяти загружено.
В Паскале не было НИ РАЗУ. Слава Богу.
Но вот дымовая завеса от PABCSystem несколько осложняет задачу…
Ну при чём тут она. Она в отдельном файле генерируется после декомпиляции)). Вы попробуйте, а потом уже говорите.