Вы можете писать всё что угодно. Мои приложения достаточно быстродействующие и написаны они именно на Pascal. Я специально код посредством ассемблера не оптимизировал, и его почти нет у меня (хотя и можно было).
Но всё банально просто, вы свои приложения можете оптимизировать, убрав промежуточные звенья оптимизации, которые вы используете в других ЯП. Вы очень любите делать код как в других ЯП (где-то хотите меньше писать, а где-то пишите наоборот больше), а Pascal этого "не любит", и не оптимизирует нормально такой код.
Думаете в других ЯП этого нет? То же самое творится. Просто люди использующие другие ЯП, не задумываются об простейшей оптимизации, которую за них выполнит компилятор в 100-200-300 (а может и более) проходов.
И это я не говорю об оптимизации вообще! Это я говорю, что вы просто не видите банальных вещей! Например:
type
TMyObj = record
n: integer;
m: single;
myStr: string;
end;
var
thisMyObj: TMyObj;
пример конечно больше для классов подойдёт, но кто знает о чём я пишу, поймёт. Вы пишите:
и ждёте хорошего выполнения кода. Pascal не оптимизирует этот код, хотя может выполнить. Зато, если вы напишите:
то этот код будет выполняться в несколько раз быстрее. Задумайтесь! В несколько раз! Просто потому, что вы указали точно, что именно надо приравнять.
Проблема не в ЯП, проблема в вас! Особенно, если вы не хотите этого понимать.
И я уже говорил, что компилятору достаточно помочь, чтоб он сделал вам более более оптимизированный код. Тут даже не надо специально задумываться об оптимизации.
Тот код, что скидывал
Lenny33, был оптимизирован мной меньше чем за 20 минут и я ускорил его более чем в два раза. Только потому, что я убрал промежуточные звенья.
Код я не менял!Надеюсь ни кого не обидел!
-------------------------------------------------------------------
Google translate:
You can write whatever you want. My applications are fast enough and they are written in Pascal. I didn't optimize the code using assembler on purpose, and I almost don't have it (although it was possible).
But it's all trivially simple, you can optimize your applications by removing the intermediate optimization links that you use in other PLs. You really like to write code like in other PLs (somewhere you want to write less, and somewhere, on the contrary, write more), but Pascal "doesn't like" this, and doesn't optimize such code properly.
Do you think other PLs don't have this? The same thing is happening. People who use other PLs just don't think about the simplest optimization that the compiler will do for them in 100-200-300 (or maybe more) passes.
And I'm not even talking about optimization in general! This is me saying that you simply do not see banal things! For example:
type
TMyObj = record
n: integer;
m: single;
myStr: string;
end;
var
thisMyObj: TMyObj;
of course, the example is more suitable for classes, but those who know what I'm writing about will understand. You write:
and expect good code execution. Pascal does not optimize this code, although it can execute it. But if you write:
then this code will execute several times faster. Think about it! Several times! Simply because you specified exactly what needs to be equated.
The problem is not in the PL, the problem is in you! Especially if you do not want to understand this.
And I already said that it is enough to help the compiler so that it makes you more optimized code. You don't even need to think about optimization here.
The code that
Lenny33 posted was optimized by me in less than 20 minutes and I sped it up more than twice. Only because I removed the intermediate links.
I didn't change the code!I hope I didn't offend anyone!