• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Dotinho

Performance em VB

11 mensagens neste tópico

Boas, como voces sabem a performance é essencial, então eis a minha questão:

Em tempos tinhs um programa que em ligangem tipo assembly e que compilava em dos, era um bocadinho limitado, mas dava uma perfonance espetacular.

O VS2008 em VB que faz muita coisa, os aplicativos nao tem tanta performance, por exemplo:

em VB demora ai uma 4 seg a incrementar um numero de 0 a 5000 e a escrever numa label.

No antigo programa era praticamente instantanio, so numeros de 0 qte 50000000 é qe demorava um bocadinho...

Algumas dicas ou sugestões para aumentar a performance em vb?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Também tem há ver com o VB em sí a monitorizar o que estás a fazer, lembra-te que estás em debug e se alguma coisa corre mal, o VB vai parar a tua aplicação e apontar-te para a linha com o erro, ou seja, está a correr o programa passo a passo...

Experimenta correr directamente a aplicação (o executável) fora do VB.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas, como voces sabem a performance é essencial, então eis a minha questão:

Em tempos tinhs um programa que em ligangem tipo assembly e que compilava em dos, era um bocadinho limitado, mas dava uma perfonance espetacular.

O VS2008 em VB que faz muita coisa, os aplicativos nao tem tanta performance, por exemplo:

em VB demora ai uma 4 seg a incrementar um numero de 0 a 5000 e a escrever numa label.

No antigo programa era praticamente instantanio, so numeros de 0 qte 50000000 é qe demorava um bocadinho...

Algumas dicas ou sugestões para aumentar a performance em vb?

Assembly não tem visualização gráfica como o vb.net tem. A execução é rápida, a visualização é que é um pouco mais demorada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E já agora, faz uma comparação mais justa, tenta criar um executável em VB sem interface gráfica (CLI ou Console application).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

hm então como posso desligar a monitorização do vb? por exemplo, o programa ta feito e testado, ja posso desligar? como fasso isso?

cmps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Faz Build ao projecto, depois vai à pasta release e tens lá o exe optimizado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não te esqueças que entre o DOS e o Windows ou Linux há uma grande diferença.

No DOS só estava a correr o teu programa.

No Windows ou Linux estão a correr vários programas e serviços ao mesmo tempo e os recursos do computador são partilhados por todos, pelo que num determinado momento tiveres um programa (ou um conjunto de programas) a gastar 100% do CPU os restantes (incluindo o teu que estás a testar) ficam há espera ou extremamente lentos, baixando consideravelmente a performance.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma Console Application em C# faz esse incremento rapidamente:

Experimentem:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication2

{

    class Program

    {

        static void Main(string[] args)

        {

            DateTime inicio = DateTime.Now;

            for (int i = 0; i < 5001; i++)

            {

                Console.WriteLine(i);

            }

            Console.WriteLine("-----------------------------");

           

            Console.WriteLine("Demorou: {0}", DateTime.Now - inicio);

        }

    }

}

Depois comentem a linha:                Console.WriteLine(i);

e vejam a diferença.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimentei em Windows: (Vista)

Sem Comentário: 0.8 segundos

Com Comentário: 0.006 segundos

Em Linux, mono: (Ubuntu 9.04)

Sem Comentário: 0.2 segundos

Com Comentário: 0.03 segundos

Isto valores médios depois de uma série de testes.

A consola do windows demora muito mais tempo a mostrar os valores, mas é mais rapido a processa-los.

No entanto a minha consola do windows tem um buffer maior, o q faz ter mais linha, logo perder algum tempo aí.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora