none
Utilização de memória RRS feed

Respostas

  • Olha ta ai um negocio que existem varias maneiras mas também temos uma chuva de ideias de modos de se fazer, mas também depende da sua aplicação.

    Criando variaveis bem dimensiondas ou seja nada de criar variaveis desnecessarias ou com tipos de dados de qualquer jeito se for armazenar um integer verifique se será int , int16, int32 ... se for armazenar o valor 10 não precisa criar uma variavel int64 digo o mesmo para o tipo Single ou Double, variaveis Char.

    Verifique se você tem objetos por exemplo OledbCommand ou outros tipos que precisam ser instanciados
    OledbCommand cmd = new OledbCommand(); eu não faço assim eu geralmente faço assim

    OlebdCommand cmd = null;
    try {
        cmd = new OlebdCommand ...
    }
    Finally{
        if(cmd != null)
            cmd.Dispose();
    }

    OU utilize Using
    Using (OledbCommand cmd = new Oledbcommand())
    {

    }

    Para rotinas de processamento longo dependo caso a mesme trabalhe com Banco de Dados dependendo você pode colocar o processamento do lado do Banco de Dados como uma Stored Procedure e etc ....

    Para as variaveis procurar dar dispose nas que possuem o metodo.

    Verificar o uso de instruções de laço desnecessarias para grandes volumes de dados muitas vezes faz-se uma extração de informações do Banco de Dados para um DataTable por exemplo e depois faz-se um laço FOREACH por exemplo nesse DataTable e dentro desse laço colocamos uma outra rotina que executa instruções SELECT para retornar um outro valor nesse caso podemos analisar se não daria para fazer isso com apensa uma execução de query SQL as vezes em um unico SQL podemos matar o problema ou se fossemos utilizar 3 ou 4 SELECTS podemos diminuir para 1 ou 2

    Bom sempre é bom dar uma boa analisada uma boa dimensionada nas rotinas isso faz com que você poupe memória melhore o processamento da maquina.

    Bom eu procurei aqui dar uma contribuição mas o assunto é vasto e temos N formas e N procedimentos que podem ser adotados.

    Espero ter ajudado


    Junior

    • Marcado como Resposta Diézare sexta-feira, 14 de outubro de 2016 13:09
    quinta-feira, 13 de outubro de 2016 23:48
  • Tome muito cuidado com os métodos dispose muitas vezes você acaba gerando uma fila de espera e complicando ainda mais, o C# por sua arquitetura faz e muito bem o trabalho de se livrar do lixo.

    O método Try é ideal para tratar nossas possíveis exceções  e o método dispose não precisa necessariamente esta ali, com suas exceção bem tratada o dispose poderia estar fora da instrução.

    O melhor método para se livrar do lixo é realmente o using {}, tudo que estiver entre as chaves será finalizado quando terminar a instrução mas o método utilizado tem que possuir um método dispose para que funcione

     Se a resposta contribuiu com seu aprendizado por favor marque como Útil
    Se solucionou seu problema por favor marque como Resposta
    Atenção, se seu problema foi resolvido não deixe o post aberto 

    Visite : www.codigoexpresso.com.br
    • Marcado como Resposta Diézare sexta-feira, 14 de outubro de 2016 13:09
    sexta-feira, 14 de outubro de 2016 00:14

Todas as Respostas

  • Olha ta ai um negocio que existem varias maneiras mas também temos uma chuva de ideias de modos de se fazer, mas também depende da sua aplicação.

    Criando variaveis bem dimensiondas ou seja nada de criar variaveis desnecessarias ou com tipos de dados de qualquer jeito se for armazenar um integer verifique se será int , int16, int32 ... se for armazenar o valor 10 não precisa criar uma variavel int64 digo o mesmo para o tipo Single ou Double, variaveis Char.

    Verifique se você tem objetos por exemplo OledbCommand ou outros tipos que precisam ser instanciados
    OledbCommand cmd = new OledbCommand(); eu não faço assim eu geralmente faço assim

    OlebdCommand cmd = null;
    try {
        cmd = new OlebdCommand ...
    }
    Finally{
        if(cmd != null)
            cmd.Dispose();
    }

    OU utilize Using
    Using (OledbCommand cmd = new Oledbcommand())
    {

    }

    Para rotinas de processamento longo dependo caso a mesme trabalhe com Banco de Dados dependendo você pode colocar o processamento do lado do Banco de Dados como uma Stored Procedure e etc ....

    Para as variaveis procurar dar dispose nas que possuem o metodo.

    Verificar o uso de instruções de laço desnecessarias para grandes volumes de dados muitas vezes faz-se uma extração de informações do Banco de Dados para um DataTable por exemplo e depois faz-se um laço FOREACH por exemplo nesse DataTable e dentro desse laço colocamos uma outra rotina que executa instruções SELECT para retornar um outro valor nesse caso podemos analisar se não daria para fazer isso com apensa uma execução de query SQL as vezes em um unico SQL podemos matar o problema ou se fossemos utilizar 3 ou 4 SELECTS podemos diminuir para 1 ou 2

    Bom sempre é bom dar uma boa analisada uma boa dimensionada nas rotinas isso faz com que você poupe memória melhore o processamento da maquina.

    Bom eu procurei aqui dar uma contribuição mas o assunto é vasto e temos N formas e N procedimentos que podem ser adotados.

    Espero ter ajudado


    Junior

    • Marcado como Resposta Diézare sexta-feira, 14 de outubro de 2016 13:09
    quinta-feira, 13 de outubro de 2016 23:48
  • Tome muito cuidado com os métodos dispose muitas vezes você acaba gerando uma fila de espera e complicando ainda mais, o C# por sua arquitetura faz e muito bem o trabalho de se livrar do lixo.

    O método Try é ideal para tratar nossas possíveis exceções  e o método dispose não precisa necessariamente esta ali, com suas exceção bem tratada o dispose poderia estar fora da instrução.

    O melhor método para se livrar do lixo é realmente o using {}, tudo que estiver entre as chaves será finalizado quando terminar a instrução mas o método utilizado tem que possuir um método dispose para que funcione

     Se a resposta contribuiu com seu aprendizado por favor marque como Útil
    Se solucionou seu problema por favor marque como Resposta
    Atenção, se seu problema foi resolvido não deixe o post aberto 

    Visite : www.codigoexpresso.com.br
    • Marcado como Resposta Diézare sexta-feira, 14 de outubro de 2016 13:09
    sexta-feira, 14 de outubro de 2016 00:14