Примеры оптимизаций — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Admin (обсуждение | вклад) (→Подстановка (inlining)) |
Admin (обсуждение | вклад) (→Подстановка (inlining)) |
||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | : [[Страница курса "Методы создания оптимизирующих компиляторов"|К странице курса]] | ||
+ | |||
===Подстановка (inlining)=== | ===Подстановка (inlining)=== | ||
{| | {| | ||
Строка 5: | Строка 7: | ||
|- | |- | ||
|<source lang="Csharp"> | |<source lang="Csharp"> | ||
− | + | double Sqr(double x) | |
− | + | { | |
− | + | return x*x; | |
+ | } | ||
+ | static void Main() | ||
+ | { | ||
+ | ... | ||
+ | double d = Sqr(y); | ||
+ | } | ||
+ | </source> | ||
+ | |<source lang="Csharp"> | ||
+ | static void Main() | ||
+ | { | ||
+ | ... | ||
+ | double d = y * y; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | // | ||
+ | </source> | ||
+ | |} | ||
+ | |||
+ | ===Подстановка (inlining)=== | ||
+ | {| | ||
+ | |'''До оптимизации''' | ||
+ | |'''После оптимизации''' | ||
+ | |- | ||
+ | |<source lang="Csharp"> | ||
+ | double Sqr(double x) | ||
+ | { | ||
+ | return x*x; | ||
+ | } | ||
+ | static void Main() | ||
+ | { | ||
+ | ... | ||
+ | double d = Sqr(y); | ||
+ | } | ||
+ | </source> | ||
+ | |<source lang="Csharp"> | ||
+ | static void Main() | ||
+ | { | ||
+ | ... | ||
+ | double d = y * y; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | // | ||
+ | </source> | ||
+ | |} | ||
+ | |||
+ | ===Подстановка (inlining)=== | ||
+ | {| | ||
+ | |'''До оптимизации''' | ||
+ | |'''После оптимизации''' | ||
+ | |- | ||
+ | |<source lang="Csharp"> | ||
+ | double Sqr(double x) | ||
+ | { | ||
+ | return x*x; | ||
+ | } | ||
+ | static void Main() | ||
+ | { | ||
+ | ... | ||
+ | double d = Sqr(y); | ||
+ | } | ||
+ | </source> | ||
+ | |<source lang="Csharp"> | ||
+ | static void Main() | ||
+ | { | ||
+ | ... | ||
+ | double d = y * y; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | // | ||
+ | </source> | ||
+ | |} | ||
+ | |||
+ | ===Подстановка (inlining)=== | ||
+ | {| | ||
+ | |'''До оптимизации''' | ||
+ | |'''После оптимизации''' | ||
+ | |- | ||
+ | |<source lang="Csharp"> | ||
+ | double Sqr(double x) | ||
+ | { | ||
+ | return x*x; | ||
+ | } | ||
+ | static void Main() | ||
{ | { | ||
... | ... | ||
− | + | double d = Sqr(y); | |
} | } | ||
</source> | </source> | ||
|<source lang="Csharp"> | |<source lang="Csharp"> | ||
− | + | static void Main() | |
− | |||
− | |||
{ | { | ||
... | ... | ||
− | + | double d = y * y; | |
} | } | ||
+ | |||
+ | |||
+ | |||
+ | // | ||
</source> | </source> | ||
|} | |} |
Текущая версия на 20:56, 31 августа 2014
Содержание
Подстановка (inlining)
До оптимизации | После оптимизации |
double Sqr(double x)
{
return x*x;
}
static void Main()
{
...
double d = Sqr(y);
} |
static void Main()
{
...
double d = y * y;
}
// |
Подстановка (inlining)
До оптимизации | После оптимизации |
double Sqr(double x)
{
return x*x;
}
static void Main()
{
...
double d = Sqr(y);
} |
static void Main()
{
...
double d = y * y;
}
// |
Подстановка (inlining)
До оптимизации | После оптимизации |
double Sqr(double x)
{
return x*x;
}
static void Main()
{
...
double d = Sqr(y);
} |
static void Main()
{
...
double d = y * y;
}
// |
Подстановка (inlining)
До оптимизации | После оптимизации |
double Sqr(double x)
{
return x*x;
}
static void Main()
{
...
double d = Sqr(y);
} |
static void Main()
{
...
double d = y * y;
}
// |