Size: a a a

2020 December 15

Y

YuS in Delphi & Lazarus
Ассемблерный код не смотрел, но подозреваю там при обращении к элементу массива еще проверка есть, а не вышли ли мы за пределы массива.
источник

SB

Sergey Bodrov in Delphi & Lazarus
В играх или научных вычислениях это будет заметно. А в обычных приложениях больше тормозов будет от отрисовки GUI и аллокатора памяти.
источник

k

kirillmaster4 in Delphi & Lazarus
kirillmaster4
Никлаус Вирт, создатель Pascal, считает иначе и я с ним согласен. Строгое типизирование необходимо для эффективной работы компилятора и предотвращения ошибок.
Тот же Си, в котором очень легко допустить утечки памяти
источник

Y

YuS in Delphi & Lazarus
Sergey Bodrov
В играх или научных вычислениях это будет заметно. А в обычных приложениях больше тормозов будет от отрисовки GUI и аллокатора памяти.
Так и есть. Для какойнить ардуины это еще может дать какой-то плюс.
источник

AS

Alexey Shumkin in Delphi & Lazarus
YuS
Накидал простенький цикл, и с включенной {$R+}/выключенной {$R-} показывает разницу во времени, у меня в 1,7 раза примерно.
Всё это синтетика :)
В обычном проекте, где есть  обращения к внешним устройствам (диски,... сетевые задержки, например)  - ниачём
источник

AS

Alexey Shumkin in Delphi & Lazarus
kirillmaster4
Никлаус Вирт, создатель Pascal, считает иначе и я с ним согласен. Строгое типизирование необходимо для эффективной работы компилятора и предотвращения ошибок.
Никто и не говорил про динамическую типизацию :)
источник

Y

YuS in Delphi & Lazarus
Да, я не спорю, что синтетика, и прекрасно понимаю что обработка всего другого по сравнению с массивами это мелочь на сегодняшний день.
источник

k

kirillmaster4 in Delphi & Lazarus
YuS
Так и есть. Для какойнить ардуины это еще может дать какой-то плюс.
Тут больше вопрос не критично ли это, а зачем такое вообще допускать? Безсмысленное разрешение повсюду ни к чему ни приводит.
источник

k

kirillmaster4 in Delphi & Lazarus
Ограничения созданы, чтобы помогать программисту, а не наоборот.
источник

Y

YuS in Delphi & Lazarus
kirillmaster4
Тут больше вопрос не критично ли это, а зачем такое вообще допускать? Безсмысленное разрешение повсюду ни к чему ни приводит.
Во времена 8Мгц компьютеров это было допустимо. Отладился в режиме с проверками а потом собрал уже в релизе без проверок.
источник

AS

Alexey Shumkin in Delphi & Lazarus
kirillmaster4
Ограничения созданы, чтобы помогать программисту, а не наоборот.
Чую, тебе Rust зайдёт :)
источник

k

kirillmaster4 in Delphi & Lazarus
Alexey Shumkin
Чую, тебе Rust зайдёт :)
Нееее
источник

Y

YuS in Delphi & Lazarus
или Go :)
источник

k

kirillmaster4 in Delphi & Lazarus
Си-подобные не люблю
источник

k

kirillmaster4 in Delphi & Lazarus
Oberon интересует, однако инфраструктура очень не развитая, да и мульти-оконность в приложениях далеко не везде нужна.
источник

SB

Sergey Bodrov in Delphi & Lazarus
Около 30 часов потратил на отладку TIpHtmlPanel (используется в браузере справки Lazarus). Там кромешный 3.14здец в плане оптимизации и потребления ресурсов. Каждый тег HTML - это отдельный класс с десятками свойств. Все тексты разбиваются на слова и пробелы. Каждое слово и пробел на странице это несколько классов. Но угадайте, какое одно слово нужно исправить, чтобы отрисовка стала в 3 раза быстрее?
источник

SB

Sergey Bodrov in Delphi & Lazarus
Подсказка - это метод TCanvas
источник

Y

YuS in Delphi & Lazarus
Sergey Bodrov
Около 30 часов потратил на отладку TIpHtmlPanel (используется в браузере справки Lazarus). Там кромешный 3.14здец в плане оптимизации и потребления ресурсов. Каждый тег HTML - это отдельный класс с десятками свойств. Все тексты разбиваются на слова и пробелы. Каждое слово и пробел на странице это несколько классов. Но угадайте, какое одно слово нужно исправить, чтобы отрисовка стала в 3 раза быстрее?
{$R-}🤣
источник

Y

YuS in Delphi & Lazarus
Sergey Bodrov
Подсказка - это метод TCanvas
какой-нить AutoRedraw
источник

SB

Sergey Bodrov in Delphi & Lazarus
TCanvas.TextRect() нужно заменить на TCanvas.TextOut(), он в 3 раза быстрее.
источник