Página 1 de 1

Lentidão aplicação em Harbour

Enviado: 19 Jan 2023 09:22
por tonicm
Boas pessoal,
Tenho uma aplicação em harbour e que utiliza base de dados em Mysql e ainda tem algumas tabelas em .dbf.
O servidor está numa máquina virtual.
Versão: Harbour 3.2.0dev (r2011030937)

Ao executar o mesmo processo diariamente o tempo de execução varia.
O que poderá estar a originar esta variação de tempos?

Data inicio Data Fim Tempo
------------------------- -------------------------- -----------
01/01/2023 13:31:05 01/01/2023 13:34:29 00:03:24
02/01/2023 13:31:15 02/01/2023 13:34:21 00:03:06
03/01/2023 13:31:10 03/01/2023 15:55:44 02:24:34
04/01/2023 13:31:02 04/01/2023 13:57:14 00:26:12
05/01/2023 13:31:18 05/01/2023 15:11:06 01:39:48

Lentidão aplicação em Harbour

Enviado: 19 Jan 2023 10:41
por Itamar M. Lins Jr.
Olá!
DBF ou Mysql ?
Já é lento por conta da virtualização.
E o windows pode atualizar e deixar tudo ainda mais lento.

Instalei o windows em uma vm aqui para teste e não demorou ele fez uma atualização e pediu para reiniciar... Nesse processo eu percebi a maquina demorando para responder.

Saudações,
Itamar M. Lins Jr.

Lentidão aplicação em Harbour

Enviado: 19 Jan 2023 11:28
por carlaoonline
Bom dia!
tonicm escreveu:Ao executar o mesmo processo diariamente
Caso esse processo seja um único comando, daí complica um pouco encontrar o motivo, porém se esse processo é um conjunto de comandos/etapas então pode colocar em um arquivo de log (ou uma variável/array) os tempos individuais de cada etapa/comando desse processo, dessa forma chegaria mais perto do responsável pela demora.


"Dependendo o caso", em ambiente de rede o tempo de um comando pode demorar inúmeras vezes mais se o arquivo estiver sendo usado por muitos usuários simultaneamente. A quantidade de memória RAM também é crucial, pois acabando o limite ele começa a gravar em disco o que seria na memória, então nesse arquivo de log coloque a memória RAM disponível no momento tb.

Lentidão aplicação em Harbour

Enviado: 19 Jan 2023 20:44
por JoséQuintas
Máquina virtual não é problema.
O Windows funciona até melhor em máquina virtual, lógico, desde que seja uma máquina boa pra isso.
Uso Windows Server em máquina virtual há muitos anos.

Quanto ao processo, só depurando, colocando pontos indicativos referente cada etapa, etc.

Lentidão aplicação em Harbour

Enviado: 19 Jan 2023 22:56
por Itamar M. Lins Jr.
Olá!
Se for desses pagos ai da Amazon, Google... Ai tudo bem.
Como não foi especificado.
Mas virtualização degrada até a placa de rede... Ai já é outro papo.
Me referi a virtualização caseira. Sempre é mais rápido uma maquina só, do que uma dentro da outra.
Como não vi os fontes, não sei se é DBF, ou SQL... ai conforme o Carlos explicou já tá de bom grado.

Saudações,
Itamar M. Lins Jr.

Lentidão aplicação em Harbour

Enviado: 20 Jan 2023 01:05
por JoséQuintas
Já fiz muita virtualização, e sempre ficou mais rápido.

Lentidão aplicação em Harbour

Enviado: 20 Jan 2023 09:09
por tonicm
Realmente não sei que máquina virtual é utilizada, pois é administrada por um administrador de rede e eu não tenho acesso (regras da empresa).
O programa é executado em rede, com cerca de 15 pessoas a trabalhar na rede.
Trabalha em conjunto com .dbf e em MySQL.
Vou criar um log e acompanhar o processo para ver onde fica mais lento.

O ficheiro HBP:

Código: Selecionar todos

#
# $Id$
#

-3rd=hbide_version=1.0
-3rd=hbide_title=SoftSRI
-3rd=hbide_workingfolder=E:\SoftSRI
-3rd=hbide_output=SOFTSRI

-oMAIN
-inc
-lhbwin
-gui
-strip
-icon=E:\Recursos\Grupo_SRI.ico

MAIN.PRG
ERRORSYS.PRG

core.prg
ps32.hbc
xhb.hbc
hbct.hbc
hbblink.hbc
rddado.hbc
hbziparc.hbc
hbzebra.hbc
MAIN.rc
É compilado assim:

Código: Selecionar todos

C:\hb32\bin\hbmk2.exe E:\SoftSri\SOFTSRI.hbp -q -trace -info -lang=en -width=512 

Lentidão aplicação em Harbour

Enviado: 20 Jan 2023 11:24
por JoséQuintas
Veja se colocou Inkey() dentro dos DO WHILE.

Teoricamente isso deixaria mais lento, mas na prática não.

NÃO sei sobre RDDADO, por isso recomendo que verifique as conexões.
O pessoal que mexe com Linux não conhece bem o Windows, e muitas vezes gera problemas pra Windows.
Se ficar abrindo/fechando conexão, pode acabar trazendo lentidão e até travamento.

netstat -a | find /i "TCP"

Tente identificar quais se referem a MySQL, e que estão em estado de espera.

Lentidão aplicação em Harbour

Enviado: 20 Jan 2023 11:30
por JoséQuintas
Se testar no terminal, filtre porta 3306.

netstat -a | find /i "3306"

O normal?

Aqui é sempre UMA, não importa o quanto eu tente sobrecarregar.
Mais de uma só se abrir o aplicativo várias vezes, aí vai ser uma pra cada aplicativo aberto.

Lentidão aplicação em Harbour

Enviado: 22 Jan 2023 11:50
por dbsh
1 - Desative o antivírus quando estiver lento.
2 - verifique o tempo de resposta da conexão por rede
3 - verifique se tem alto consumo de rede, de memoria ou de processamento de algum programa, quanto o tempo de resposta estiver alto

Foi assim que descobri porque minha maquina virtual demorava algumas vezes a executar o sistema.

Lentidão aplicação em Harbour

Enviado: 22 Jan 2023 11:52
por dbsh
Faça o teste na maquina virtual e na física.
Se possível use mysql no Docker, funciona no Linux e no Windows.
Se vc compila para Linux use tbm Docker no sistema principal, se não tem tela grafica.

Lentidão aplicação em Harbour

Enviado: 03 Fev 2023 11:08
por diegopego
A variação do tempo é uma pista importante.

Tente escrever uma rotina de teste de leitura e gravação para o sql e outra para dbf, sem estragar seus dados de produção.

Eu acredito que o problema está na comunicação com o SQL. Uso virtualização com dbf há anos e nunca vi nada parecido.

Outra coisa a considerar é se é uma VM compartilhada. se for, você pode estar sofrendo pelo alto consumo de outros processos no servidor. mas ainda assim, os testes, isolados vão te ajudar.

Lentidão aplicação em Harbour

Enviado: 03 Fev 2023 19:56
por JoséQuintas
Houve atualização do MySQL ?
Há uma diferença entre 5.6 e 5.7, onde o 5.7 é mais sensível a codepage, falta de tratamento causa lentidão excessiva e até esgotamento de tempo.
Verifique também se não tem outros processos no MySQL causando demora/sobrecarga
E verifique no processo em questão, se é ele quem demora.

Por enquanto, pode ser qualquer coisa.

Lembrei de outro:
tem programa de segurança de banco que deixa tudo lento, até no meio do driver de rede ele entra.
Mesmo se o programa de banco não estiver em uso.
Geralmente é mostrado como WARSAW, no adicionar/remover programas.

Lentidão aplicação em Harbour

Enviado: 04 Fev 2023 01:21
por alxsts
Olá!

O Warsaw também é utilizado em Portugal? Creio que não...