[DUVIDA] Como funciona o compilamento do C#
5 participantes
Página 1 de 1
[DUVIDA] Como funciona o compilamento do C#
Olá gente, gostaria de saber como funciona o compilamento do c# em questão de otimização, eu já estava a um tempo procurando alterar meus scripts para jeitos mais leves e cosas do tipo. Então uma duvida me bateu é como é compilado um script no c#, mais especificadamente na questão da leituras de linha.
Teria alguma diferença de:
Gostaria muito de saber.
Teria alguma diferença de:
- Código:
if(blalbalbla = nnlalnla)
{
blublublu = null;
}
else
{
blublublu = true;
}
- Código:
if(blalbalbla = nnlalnla) { blublublu = null; }
else { blublublu = true; }
Gostaria muito de saber.
yurinogueira- Membro
- PONTOS : 2495
REPUTAÇÃO : 11
Respeito as regras :
Re: [DUVIDA] Como funciona o compilamento do C#
yurinogueira escreveu:Olá gente, gostaria de saber como funciona o compilamento do c# em questão de otimização, eu já estava a um tempo procurando alterar meus scripts para jeitos mais leves e cosas do tipo. Então uma duvida me bateu é como é compilado um script no c#, mais especificadamente na questão da leituras de linha.
Teria alguma diferença de:para:
- Código:
if(blalbalbla = nnlalnla)
{
blublublu = null;
}
else
{
blublublu = true;
}
- Código:
if(blalbalbla = nnlalnla) { blublublu = null; }
else { blublublu = true; }
Gostaria muito de saber.
Não há uma diferença na situação acima.
acho que seria melhor usar o operador ternário:
- Código:
blublublu = (blalbalbla = nnlalnla) ? null : true;
Magnatah- Instrutor
- PONTOS : 3548
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [DUVIDA] Como funciona o compilamento do C#
Obrigado, irei pesquisar sobre isso e começar a por em prática
yurinogueira- Membro
- PONTOS : 2495
REPUTAÇÃO : 11
Respeito as regras :
Re: [DUVIDA] Como funciona o compilamento do C#
A diferença seria bem inperceptível (isso se realmente existir), já que o no reconhecimento do código o compilador busca unicamente ler código da forma que ele está ordenado. Se não me engano o C# é uma linguagem secundaria que é traduzida para uma linguagem intermediária para ser lido em código de maquina seja em qual for a plataforma, sendo assim se o mesmo desprezar uma indentação(que são estes "Enters" que nós damos) fizesse ele demorar um fração de milésimo, seria preciso uma PENCA de enters para que haja algum efeito.
Tegh- Avançado
- PONTOS : 2654
REPUTAÇÃO : 97
Idade : 23
Respeito as regras :
Re: [DUVIDA] Como funciona o compilamento do C#
- Magnatah:
- Magnatah escreveu:yurinogueira escreveu:Olá gente, gostaria de saber como funciona o compilamento do c# em questão de otimização, eu já estava a um tempo procurando alterar meus scripts para jeitos mais leves e cosas do tipo. Então uma duvida me bateu é como é compilado um script no c#, mais especificadamente na questão da leituras de linha.
Teria alguma diferença de:- Código:
if(blalbalbla = nnlalnla)
{
blublublu = null;
}
else
{
blublublu = true;
}
- Código:
if(blalbalbla = nnlalnla) { blublublu = null; }
else { blublublu = true; }
Gostaria muito de saber.
Não há uma diferença na situação acima.
acho que seria melhor usar o operador ternário:- Código:
blublublu = (blalbalbla = nnlalnla) ? null : true;
Conforme o C# evoluiu foram implantados estes encurtamentos de código para melhores estruturas, mas por trás dos panos tem a mesma equivalência de um If normal. O Magnatah está correto, se for para verificar uma coisinha em uma linha, o ternário resolve.
Tegh- Avançado
- PONTOS : 2654
REPUTAÇÃO : 97
Idade : 23
Respeito as regras :
Re: [DUVIDA] Como funciona o compilamento do C#
Não importa quantos espaços e enters você dê no seu código para identá-lo, o compilador não considera isso, portanto não pesa mais nem menos.
O C# é compilado E interpretado, isso significa que ele compila em JIT (Just In Time), ou seja, ele compila em tempo de execução (enquanto a aplicação roda).
Por isso alguns erros aparecem em tempo de compilação (quando você compila e vê que tá faltando um ";" no código, ele te avisa e nem deixa você executar o programa). Mas também acusa erros em tempo de execução (runtime), quando por exemplo, no seu jogo você se esquece de verificar se um objeto é null:
Ele vai acusar um erro em tempo de execução.
Em C# a compilação ocorre da seguinte forma:
1. Seu código está em linguagem de alto nível (que nós humanos entendemos);
2. Compila o código fonte para uma linguagem intermediária;
3. Em tempo de execução, vai "traduzindo" o código intermediário para linguagem de máquina (Assembly, por exemplo) com um componente chamado CLR (Common Language Runtime).
Escrever:
Ou com operador ternário:
Não muda nada o tempo da performance na compilação, isso só é utilizado para melhorar a legibilidade do código mesmo.
Existem diversos métodos para melhorar a performance do seu código, como patterns de customização e refatoração de código, mas isso seria assunto para outro tópico.
Se ficou curioso em saber o que seria uma linguagem interpretada ou compilada: http://blog.academiadocodigo.com.br/2014/12/macas-e-laranjas-diferencas-entre-compilador-e-interpretator/
Compilação em JIT: https://pt.wikipedia.org/wiki/JIT
Linguagem de baixo nível (de máquina): http://www.cristiancechinel.pro.br/my_files/algorithms/bookhtml/node19.html
Mais sobre CLR: https://pt.wikipedia.org/wiki/Common_Language_Runtime
Espero ter ajudado.
O C# é compilado E interpretado, isso significa que ele compila em JIT (Just In Time), ou seja, ele compila em tempo de execução (enquanto a aplicação roda).
Por isso alguns erros aparecem em tempo de compilação (quando você compila e vê que tá faltando um ";" no código, ele te avisa e nem deixa você executar o programa). Mas também acusa erros em tempo de execução (runtime), quando por exemplo, no seu jogo você se esquece de verificar se um objeto é null:
- Código:
if (someObject != null)
// do something...
Ele vai acusar um erro em tempo de execução.
Em C# a compilação ocorre da seguinte forma:
1. Seu código está em linguagem de alto nível (que nós humanos entendemos);
2. Compila o código fonte para uma linguagem intermediária;
3. Em tempo de execução, vai "traduzindo" o código intermediário para linguagem de máquina (Assembly, por exemplo) com um componente chamado CLR (Common Language Runtime).
Escrever:
- Código:
if (num > 0)
res = "A";
else
res = "B";
Ou com operador ternário:
- Código:
res = num > 0 ? "A" : "B";
Não muda nada o tempo da performance na compilação, isso só é utilizado para melhorar a legibilidade do código mesmo.
Existem diversos métodos para melhorar a performance do seu código, como patterns de customização e refatoração de código, mas isso seria assunto para outro tópico.
Se ficou curioso em saber o que seria uma linguagem interpretada ou compilada: http://blog.academiadocodigo.com.br/2014/12/macas-e-laranjas-diferencas-entre-compilador-e-interpretator/
Compilação em JIT: https://pt.wikipedia.org/wiki/JIT
Linguagem de baixo nível (de máquina): http://www.cristiancechinel.pro.br/my_files/algorithms/bookhtml/node19.html
Mais sobre CLR: https://pt.wikipedia.org/wiki/Common_Language_Runtime
Espero ter ajudado.
Re: [DUVIDA] Como funciona o compilamento do C#
Nossa, obrigado de fato me deixou interessado, vou pesquisar isso!MayLeone escreveu:Não importa quantos espaços e enters você dê no seu código para identá-lo, o compilador não considera isso, portanto não pesa mais nem menos.
O C# é compilado E interpretado, isso significa que ele compila em JIT (Just In Time), ou seja, ele compila em tempo de execução (enquanto a aplicação roda).
Por isso alguns erros aparecem em tempo de compilação (quando você compila e vê que tá faltando um ";" no código, ele te avisa e nem deixa você executar o programa). Mas também acusa erros em tempo de execução (runtime), quando por exemplo, no seu jogo você se esquece de verificar se um objeto é null:
- Código:
if (someObject != null)
// do something...
Ele vai acusar um erro em tempo de execução.
Em C# a compilação ocorre da seguinte forma:
1. Seu código está em linguagem de alto nível (que nós humanos entendemos);
2. Compila o código fonte para uma linguagem intermediária;
3. Em tempo de execução, vai "traduzindo" o código intermediário para linguagem de máquina (Assembly, por exemplo) com um componente chamado CLR (Common Language Runtime).
Escrever:
- Código:
if (num > 0)
res = "A";
else
res = "B";
Ou com operador ternário:
- Código:
res = num > 0 ? "A" : "B";
Não muda nada o tempo da performance na compilação, isso só é utilizado para melhorar a legibilidade do código mesmo.
Existem diversos métodos para melhorar a performance do seu código, como patterns de customização e refatoração de código, mas isso seria assunto para outro tópico.
Se ficou curioso em saber o que seria uma linguagem interpretada ou compilada: http://blog.academiadocodigo.com.br/2014/12/macas-e-laranjas-diferencas-entre-compilador-e-interpretator/
Compilação em JIT: https://pt.wikipedia.org/wiki/JIT
Linguagem de baixo nível (de máquina): http://www.cristiancechinel.pro.br/my_files/algorithms/bookhtml/node19.html
Mais sobre CLR: https://pt.wikipedia.org/wiki/Common_Language_Runtime
Espero ter ajudado.
yurinogueira- Membro
- PONTOS : 2495
REPUTAÇÃO : 11
Respeito as regras :
Re: [DUVIDA] Como funciona o compilamento do C#
Complementando, ainda temos IL2CPP que é AOT e geralmente é mais rápido para cálculos matemáticos. O tempo de compilação AOT é maior em relação ao JIT, mas consome menos recursos do dispositivo final.
IL2CPP tem se mostrado mais rápido em dispositivos mais lentos.
IL2CPP tem se mostrado mais rápido em dispositivos mais lentos.
Tópicos semelhantes
» [DUVIDA] IA COMO FAZER UM BEM SIMPLES
» [Duvida]Como usar o Ienumerator ?
» [Duvida] Como Tocar em objetos
» [DUVIDA] como usar o KeyUP e key down
» <Duvida>().Como Fazer um WaitForSoconds?
» [Duvida]Como usar o Ienumerator ?
» [Duvida] Como Tocar em objetos
» [DUVIDA] como usar o KeyUP e key down
» <Duvida>().Como Fazer um WaitForSoconds?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos