Примеры оптимизаций — различия между версиями

Материал из Вики ИТ мехмата ЮФУ
Перейти к: навигация, поиск
(Новая страница: «===Подстановка (inlining)=== {| |До оптимизации |<source lang="Csharp"> int x,y; x = y; </source> |- |После оптимизаци…»)
 
(Подстановка (inlining))
 
(не показано 10 промежуточных версий этого же участника)
Строка 1: Строка 1:
 +
: [[Страница курса "Методы создания оптимизирующих компиляторов"|К странице курса]]
 +
 
===Подстановка (inlining)===
 
===Подстановка (inlining)===
 
{|
 
{|
  |До оптимизации
+
  |'''До оптимизации'''
 +
|'''После оптимизации'''
 +
|-
 +
|<source lang="Csharp">
 +
double Sqr(double x)
 +
{
 +
  return x*x;
 +
}
 +
static void Main()
 +
{
 +
  ...
 +
  double d = Sqr(y);
 +
}
 +
</source>
 
  |<source lang="Csharp">
 
  |<source lang="Csharp">
int x,y;
+
static void Main()
x = y;
+
{
 +
  ...
 +
  double d = y * y;
 +
}
 +
 
 +
 
 +
 
 +
//
 
</source>
 
</source>
 +
|}
 +
 +
===Подстановка (inlining)===
 +
{|
 +
|'''До оптимизации'''
 +
|'''После оптимизации'''
 
  |-
 
  |-
|После оптимизации
 
 
  |<source lang="Csharp">
 
  |<source lang="Csharp">
int x,y;
+
double Sqr(double x)
x = y;
+
{
 +
  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>
 
</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;
}



//