Sou um programador primário de VB, somente para atender necessidades pessoais e eventualmente resolver pequenas questões profissionais, por isso espero não atrapalhá-los com meus questionamentos, e caso tenha incomodado alguém fugindo do escopo do fórum, antecipadamente peço desculpas.
Tive que fazer um programa para encontrar máximo de funções, num trabalho de simulação, que trabalharia com um numero diversificado de variáveis, de 1 a 10. Assim, o programa funcionou perfeitamente, sendo apenas um encadeamento de "for" e alguns "ifs".
Acontece que o tempo para obter as respostas cresce exponencialmente em função do número de variáveis, assim, para 2 variáveis, o tempo é da ordem de alguns microssegundos, para 3, alguns milissegundos, para 4 alguns minutos, e para 5 variáveis, perto de 3 horas.
Fiz algumas estudos e, por extrapolação, verifiquei que para 6 variáveis o tempo cresceria para algo perto de 8 dias... para 10 acho que daria o tempo da criação do universo!!!
Alguns dos processos envolvidos, "for" e "if" utilizados variam em repetições em função de 2^c - em que c é o número de variáveis - o que explicaria o comportamento exponencial do tempo de processamento.
Conversando com um amigo, com boa experiência em programação, fui informado que, por características e questões de reserva de memória do Win, como espaço para execução e outros, apesar de utilizar um computador com 400 M de ram, pouco desta memória é utilizado, ele passava a utilizar o HD e assim o desempenho cairia sensivelmente.
Considerando que:
1. A declaração das variáveis está adequada
2. O algoritmo está razoavelmente bem definido, sem redundâncias e ajustado.
3. A máquina é adequada.
Perguntaria:
a. vocês consideram que há uma solução em VB para a execução em tempo razoável, ou acham, como foi me recomendado, que este seria um trabalho para Pascal, Delphi etc?(Sinceramente, os resultados foram desanimadoras que chego a duvidar que atingiria os objetivos em outra linguagem, ou se melhoraria muito pouco, mantendo o programa ainda inviável, apesar de terem me informado que de ram para hd, salto do nano para o mili, que é uma variação sensível)
b. Há como eu reserva espaço de memória ram exclusiavemente para o meu programa, tentando desta forma melhorar o desempenho?
c. Há alguma outra alternativa que vocês me recomendariam?
Pergunta
ventania
Senhores,
Sou um programador primário de VB, somente para atender necessidades pessoais e eventualmente resolver pequenas questões profissionais, por isso espero não atrapalhá-los com meus questionamentos, e caso tenha incomodado alguém fugindo do escopo do fórum, antecipadamente peço desculpas.
Tive que fazer um programa para encontrar máximo de funções, num trabalho de simulação, que trabalharia com um numero diversificado de variáveis, de 1 a 10. Assim, o programa funcionou perfeitamente, sendo apenas um encadeamento de "for" e alguns "ifs".
Acontece que o tempo para obter as respostas cresce exponencialmente em função do número de variáveis, assim, para 2 variáveis, o tempo é da ordem de alguns microssegundos, para 3, alguns milissegundos, para 4 alguns minutos, e para 5 variáveis, perto de 3 horas.
Fiz algumas estudos e, por extrapolação, verifiquei que para 6 variáveis o tempo cresceria para algo perto de 8 dias... para 10 acho que daria o tempo da criação do universo!!!
Alguns dos processos envolvidos, "for" e "if" utilizados variam em repetições em função de 2^c - em que c é o número de variáveis - o que explicaria o comportamento exponencial do tempo de processamento.
Conversando com um amigo, com boa experiência em programação, fui informado que, por características e questões de reserva de memória do Win, como espaço para execução e outros, apesar de utilizar um computador com 400 M de ram, pouco desta memória é utilizado, ele passava a utilizar o HD e assim o desempenho cairia sensivelmente.
Considerando que:
1. A declaração das variáveis está adequada
2. O algoritmo está razoavelmente bem definido, sem redundâncias e ajustado.
3. A máquina é adequada.
Perguntaria:
a. vocês consideram que há uma solução em VB para a execução em tempo razoável, ou acham, como foi me recomendado, que este seria um trabalho para Pascal, Delphi etc?(Sinceramente, os resultados foram desanimadoras que chego a duvidar que atingiria os objetivos em outra linguagem, ou se melhoraria muito pouco, mantendo o programa ainda inviável, apesar de terem me informado que de ram para hd, salto do nano para o mili, que é uma variação sensível)
b. Há como eu reserva espaço de memória ram exclusiavemente para o meu programa, tentando desta forma melhorar o desempenho?
c. Há alguma outra alternativa que vocês me recomendariam?
Agradeço qualquer ajuda.
Um abraço.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.