Lentidão aplicação em Harbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Lentidão aplicação em Harbour

Mensagem 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
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Lentidão aplicação em Harbour

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

Lentidão aplicação em Harbour

Mensagem 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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Lentidão aplicação em Harbour

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Lentidão aplicação em Harbour

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Lentidão aplicação em Harbour

Mensagem por JoséQuintas »

Já fiz muita virtualização, e sempre ficou mais rápido.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
tonicm
Usuário Nível 2
Usuário Nível 2
Mensagens: 55
Registrado em: 08 Mar 2016 21:51
Localização: Porto

Lentidão aplicação em Harbour

Mensagem 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 
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Lentidão aplicação em Harbour

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Lentidão aplicação em Harbour

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Lentidão aplicação em Harbour

Mensagem 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.
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
Avatar do usuário
dbsh
Usuário Nível 3
Usuário Nível 3
Mensagens: 128
Registrado em: 14 Jul 2004 14:19
Localização: ES

Lentidão aplicação em Harbour

Mensagem 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.
010011110010000001110011011101010110001101100101011100110111001101101111001000001110100100100000011000110110111101101110011100110111010001110010011101011110110101100100011011110010000001100001001000000110111001101111011010010111010001100101
01001101011000010111001001100011011011110111001100100000010000010110111001110100011011110110111001101001011011110010000001000100011001010010000001000010011011110110111001101001
0101010001100101011011000011101000100000001010000011001000110111001010010011100100101101001110010011100000110100001100110010110100110101001100100011100100110000
diegopego
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 29 Jul 2016 14:48
Localização: TEOFILO OTONI

Lentidão aplicação em Harbour

Mensagem 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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Lentidão aplicação em Harbour

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Lentidão aplicação em Harbour

Mensagem por alxsts »

Olá!

O Warsaw também é utilizado em Portugal? Creio que não...
[]´s
Alexandre Santos (AlxSts)
Responder