Jump to content
Fivewin Brasil

Demora para iniciar o sistema


Eduardo Bilato

Recommended Posts

Caros, bom dia

Tenho um sistema que atingiu o tamanho de 32mb.

Ao chamar esse sistema, leva cerca de 40 segundos para exibir a tela de login.

Cheguei a retirar todas as funções chamadas antes da tela de login pra verificar se era uma delas que interferia na inicialização, mas mesmo chamando somente a tela de login levou 40 segundos.

Utilizei o UPX.exe pra compactar o executável e o tempo de aparição da tela de login continuou os mesmos 40 segundos.

Alguém já passou por esse problema? Sabem alguma forma de diminuir esse tempo de inicialização?

Link to comment
Share on other sites

 

WARSAW instalado na máquina? 

Não

 

Se você não mostrar como é essa "abertura", fica dificil.

Aqui, independe da função chamada, vai levar 40 segundos pra aparecer...

Imagine que o sistema não faça nada além de exibir uma msginfo('Teste') na função principal, sem vínculo nenhum com as funções do sistema.

Ao chamar o sistema, a mensagem 'Teste' vai levar 40 segundos pra ser exibida.

Por essa razão digo que não tem relação com o que estou fazendo na inicialização do sistema, mas sim com o tamanho do executável ou com número de funções que existem no sistema ou qualquer outra coisa.. não sei...

O interessante é que no gerenciador de tarefas o sistema é carregado imediatamente, mas demora para exibir a primeira tela

 

Em máquinas diferentes ou só em uma? 

Em máquinas diferentes.

Link to comment
Share on other sites

Windows 10 de 64 Bits? o tamanho do .EXE, não influi em nada, já que o código em C, é transformado em  binário(linguagem de máquina), então não tem nada a ver com o .EXE e sim, virus, RAM ou o anti vírus. Desabilite o ant virus e teste.

Compile o TUTOR04.PRG  e execute, tem que "subir" instantaneo, se não subir, tem coisa errada com o compilador ou com o BCC ou com a máquina. O problema é onde você compila, não com .EXE, a velocidade com .exe compactado, tem que ser mesma do não compactado pois é binário puro, a diferença do compactado, é que ele está sem os espaços em branco.

Link to comment
Share on other sites

Instale também, essas seguranças para o seu PC e dos seus clientes:

https://www.iobit.com/en/advancedsystemcarefree.php

Instale o Advanced e faça uma varredura completa na sua máquina( Não demora ).


https://www.iobit.com/en/malware-fighter.php?s

Instale o Iobit Malware Fighter e faça uma varredura completa( demora pra kcte, mas vale a pena ).

Abs.

Link to comment
Share on other sites

 

Windows 10 de 64 Bits? o tamanho do .EXE, não influi em nada, já que o código em C, é transformado em  binário(linguagem de máquina), então não tem nada a ver com o .EXE e sim, virus, RAM ou o anti vírus. Desabilite o ant virus e teste.

Compile o TUTOR04.PRG  e execute, tem que "subir" instantaneo, se não subir, tem coisa errada com o compilador ou com o BCC ou com a máquina. O problema é onde você compila, não com .EXE, a velocidade com .exe compactado, tem que ser mesma do não compactado pois é binário puro, a diferença do compactado, é que ele está sem os espaços em branco.

Win 10 64 bits - original

Compilei e "subiu" instantaneamente

Link to comment
Share on other sites

Pessoal, o problema é o tamanho do executável/quantidade de funções, independente do Windows ser o 10, 8, 7, ser 32 ou 64bits, tudo isso já foi testado em dezenas de máquinas diferentes, em empresas, cidades e estados diferentes. Não é anti vírus, não é vírus, não é falta de RAM, não é processador, etc.

 

Hoje o executável final está ficando com 33mb, mais de 900 programas fontes (PRG's), o número de funções então, é altíssimo, e esse número elevado de funções, gera lentidão para que o executável execute sua primeira instrução.

 

Um teste que deixa isso claro, que acabei de fazer, é criar um projeto novo, só com um PRG com um Hello World. Criei nele, 60 mil funções, que não são usadas para nada, e isso já faz esse simples projeto demorar cerca de 16 segundos para exibir a mensagem de "Hello World".

 

Caso alguém puder fazer um teste como o relatado acima, agradeço.

 

Olha o exemplo do fonte que estou citando:

 

#include "Fivewin.ch"

FUNCTION Inicio()

?'Hello World'

RETURN



FUNCTION ECOTESTE000100001() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE000200002() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE000300003() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE000400004() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE000500005() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE000600006() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE000700007() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE000800008() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE000900009() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001000010() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001100011() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001200012() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001300013() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001400014() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001500015() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001600016() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001700017() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001800018() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE001900019() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE002000020() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE002100021() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE002200022() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE002300023() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE002400024() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE002500025() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE002600026() ; MSGINFO('','') ; RETURN
FUNCTION ECOTESTE002700027() ; MSGINFO('','') ; RETURN
.
.
.
.
.

continua até ter 60 mil funções

 

Link to comment
Share on other sites

Não tem problemas se você colocar 300, 2000 PRGs. O problema é a quantidade de variáveis publicas e privadas que são carregadas ao executar o programa.

Para resolver este problema você deve usar variáveis STATIC e LOCAL e compilar o programa com /n /w1 (eu uso /w2). Desta forma o sistema não carregará todos os módulos já que eles não possuem vinculo de variáveis para carregar. 

Você pode tratar as variáveis ambiguas compilando com /a, só que você deve tomar cuidado que se voce tem uma variavel tipo assim cNomecli e ela for criada sem declaração em vários pontos do programa, o compilador vai entender que esta variável é apenas uma e não trabalhara do ponto que foi criado para os prgs antes do ponto de criação. 

As variáveis publicas são as piores para consumir memória e atolar o gerenciamento de pilha do programa. Sem falar que as variáveis publicas pode evitar o descarregamento de um modulo do programa após voce sair ou fechar o procedimento.

Para saber como seu sistema esta compile com as opções /n /w1 e poste o resultado aqui. Se voce ja faz assim o problema pode estar no sistema de recursos. 

Tente usar somente variáveis LOCAL E STATIC     

Link to comment
Share on other sites

Oi Giovany, obrigado por responder.

 

Estou compilando via xdev V0.70.

 

Olha o projeto que criei, com um único PRG. Só existe UMA variável local no projeto e um parâmetro, o mais simples possível.

Deixando somente a função MAIN no PRG, a execução é instantânea. Deixando 10 mil funções no PRG, a execução é praticamente instantânea ainda.

Mas deixando 60 mil funções no PRG, a execução demora 32 segundos.

 

Segue o projeto completo:

Screen-Shot1192.png

 

Segue abaixo o fonte completo do programa

#include 'fivewin.ch'
*
*
*
*
FUNCTION Main(cTime01)

LOCAL cTime02:=TIME()

DEFAULT cTime01:=''

cTime01:=SUBSTR(cTime01,1,AT(',',cTime01)-1)

cTime01:=STRZERO(VAL(SUBSTR(cTime01,1,AT(':',cTime01)-1)),2) + SUBSTR(cTime01,AT(':',cTime01))

IF EMPTY(cTime01)
   RETURN
ENDIF

?'Hora inicial: '+cTime01,'Hora que EXE realmente carregou: '+cTime02,'Demora para abrir EXE: '+ELAPTIME(cTime01,cTime02)

RETURN

FUNCTION TESTFUNC_00001() ; MSGINFO('','') ; RETURN
FUNCTION TESTFUNC_00002() ; MSGINFO('','') ; RETURN
FUNCTION TESTFUNC_00003() ; MSGINFO('','') ; RETURN
FUNCTION TESTFUNC_00004() ; MSGINFO('','') ; RETURN
FUNCTION TESTFUNC_00005() ; MSGINFO('','') ; RETURN
.
.
.
FUNCTION TESTFUNC_60000() ; MSGINFO('','') ; RETURN

 

Segue como estou fazendo a chamada do programa

Screen-Shot1193.png

 

Segue o retorno do programa

Screen-Shot1194.png

 

 

Caso alguém possa replicar esse teste e postar os resultados, agradeço. Fiz o mesmo em C#, e não tive o problema descrito, somente em Fivewin.

Link to comment
Share on other sites

Não importa a quantidade de funções, desde que estejam MODULARIZADAS. Vou postar meu script de compilação para voces estudarem ai:  CX.BAT e CX.LNK usando FWH1701.

 

REM @Echo Off
@Echo On
Cls
Echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo ³ FiveWin For xHarbour 17.01 Dec. 2017         xHarbour Development Power    ³Ü
Echo ³ (c) FiveTech, 1993-2016      For Microsoft Windows 95/98/NT/2000/ME And XP ³Û
Echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
Echo ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
	Echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
Echo ³ FiveWin For xHarbour 17.01 Jan. 2017           Contato Sistemas Ltda.      ³Ü
Echo ³ Aguarde um Momento, Compilando Aplica‡Æo 32 Bits, Processamento Demorado   ³Û
Echo ³ CopyRight(c) JoÆo@2017 - Todos os Direitos Reservados.  WINORCAM 32 Bits.  ³Û
Echo ³ Agradecimentos Especiais - Gilmer Tavares - Virtual Objects Informatica    ³Û
Echo ³ vendas@fivewin.com.br - suporte@fivewin.com.br - gilmer@fivewin.com.br     ³Û
Echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
Echo ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
	Echo  .
Echo  Aguarde... Compilando os Modulos do Programa... Processamento Demorado
Echo  Gerando o Arquivo ERRO.LOG, em Caso de Duvidas, Consulte-o. Borland C.
	
Rem Localizacao dos Paths
Set hdir=C:\XHBBCC72
Set bcdir=C:\bcc72
Set fwhdir=C:\FwH1701
	rem @If Exist *.Bak      Del *.Bak
@If Exist *.Obj      Del *.Obj
@If Exist *.Log      Del *.Log
@If Exist *.Map      Del *.Map
@If Exist *.PPO      Del *.Ppo
@If Exist *.TDS      Del *.TDS
@If Exist *.Bc       Del *.bc
@If Exist *.C        Del *.C
@If Exist *.HC       Del *.HC
	If Exist WINORCAM.Exe Del WINORCAM.Exe
	REM -> Area dos Arquivos com Extensao *.PRG Gerados em FiveWin
%hdir%\bin\harbour WINORCAM /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p      > Erro.log 2>  ERROS.LOG
%hdir%\bin\harbour FUNCOES  /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CHAMADO  /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour PROPOSTA /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CRIARDBF /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour REINDEXA /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGRUPO /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADORSER /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADFERRA /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADMANUT /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPPAG /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPREF /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPLIM /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPMAN /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPREC /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPVAS /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPMAO /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPPOD /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGPFOR /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADFOROB /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADPODOB /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGARAN /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADGARPL /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour PMSPOBS  /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour RESPONSA /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADPAISA /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour ORCAMENT /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour MICHIGAN /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour APROVAR  /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CADNECES /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour PRODUNFE /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour ABERTURA /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
REM CLASSES DE TERCEIROS
%hdir%\bin\harbour ANIMABMP /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour DSAY     /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour SSAY     /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CALEND   /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour TCALENDA /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour CALCULAD /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
%hdir%\bin\harbour TLISTGET /m/n /i%fwhdir%\include;%hdir%\include;%bcdir%\include /w0 /p     >> Erro.log 2>> ERROS.LOG
	%bcdir%\bin\bcc32 -M -c -v -O2 -eWINORCAM.exe -I%hdir%\include -I%bcdir%\include WINORCAM.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eFUNCOES.exe  -I%hdir%\include -I%bcdir%\include FUNCOES.C    >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -ePROPOSTA.exe -I%hdir%\include -I%bcdir%\include PROPOSTA.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCRIARDBF.exe -I%hdir%\include -I%bcdir%\include CRIARDBF.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eREINDEXA.exe -I%hdir%\include -I%bcdir%\include REINDEXA.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGRUPO.exe -I%hdir%\include -I%bcdir%\include CADGRUPO.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPPAG.exe -I%hdir%\include -I%bcdir%\include CADGPPAG.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPREF.exe -I%hdir%\include -I%bcdir%\include CADGPREF.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPLIM.exe -I%hdir%\include -I%bcdir%\include CADGPLIM.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPMAN.exe -I%hdir%\include -I%bcdir%\include CADGPMAN.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPREC.exe -I%hdir%\include -I%bcdir%\include CADGPREC.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPVAS.exe -I%hdir%\include -I%bcdir%\include CADGPVAS.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPMAO.exe -I%hdir%\include -I%bcdir%\include CADGPMAO.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPPOD.exe -I%hdir%\include -I%bcdir%\include CADGPPOD.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGPFOR.exe -I%hdir%\include -I%bcdir%\include CADGPFOR.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADFOROB.exe -I%hdir%\include -I%bcdir%\include CADFOROB.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADPODOB.exe -I%hdir%\include -I%bcdir%\include CADPODOB.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGARAN.exe -I%hdir%\include -I%bcdir%\include CADGARAN.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADGARPL.exe -I%hdir%\include -I%bcdir%\include CADGARPL.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -ePMSPOBS.exe  -I%hdir%\include -I%bcdir%\include PMSPOBS.C    >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eRESPONSA.exe -I%hdir%\include -I%bcdir%\include RESPONSA.C   >> Erro.log 2>> ERROS.LOG
	%bcdir%\bin\bcc32 -M -c -v -O2 -eCADPAISA.exe -I%hdir%\include -I%bcdir%\include CADPAISA.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADORSER.exe -I%hdir%\include -I%bcdir%\include CADORSER.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADFERRA.exe -I%hdir%\include -I%bcdir%\include CADFERRA.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADMANUT.exe -I%hdir%\include -I%bcdir%\include CADMANUT.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCHAMADO.exe  -I%hdir%\include -I%bcdir%\include CHAMADO.C    >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eORCAMENT.exe -I%hdir%\include -I%bcdir%\include ORCAMENT.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eMICHIGAN.exe -I%hdir%\include -I%bcdir%\include MICHIGAN.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eAPROVAR.exe  -I%hdir%\include -I%bcdir%\include APROVAR.C    >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCADNECES.EXE -I%hdir%\include -I%bcdir%\include CADNECES.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -ePRODUNFE.EXE -I%hdir%\include -I%bcdir%\include PRODUNFE.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eABERTURA.EXE -I%hdir%\include -I%bcdir%\include ABERTURA.C   >> Erro.log 2>> ERROS.LOG
	REM CLASSES DE TERCEIROS
%bcdir%\bin\bcc32 -M -c -v -O2 -eANIMABMP.exe -I%hdir%\include -I%bcdir%\include ANIMABMP.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eDSAY.exe     -I%hdir%\include -I%bcdir%\include DSAY.C       >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eSSAY.exe     -I%hdir%\include -I%bcdir%\include SSAY.C       >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCALEND.exe   -I%hdir%\include -I%bcdir%\include CALEND.C     >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eTCALENDA.exe -I%hdir%\include -I%bcdir%\include TCALENDA.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eCALCULAD.exe -I%hdir%\include -I%bcdir%\include CALCULAD.C   >> Erro.log 2>> ERROS.LOG
%bcdir%\bin\bcc32 -M -c -v -O2 -eTLISTGET.exe -I%hdir%\include -I%bcdir%\include TLISTGET.C   >> Erro.log 2>> ERROS.LOG
	If ErrorLevel 1 Type Erro.log | More
If ErrorLevel 1 Goto Exit
	REM %bcdir%\bin\bcc32 -M -c -O2 -eWINORCAM.exe -I%hdir%\include WINORCAM.c
	%bcdir%\bin\BRC32.EXE -R XPLOOK.RC
	:ENDCOMPILE
	REM ERA ASSIM: MUDEI EM: 09/10/2017 - Joao
REM %bcdir%\bin\ilink32 -Gn -aa -Tpe -s @Cx.Lnk
	REM http://fivewin.com.br/index.php?/topic/27264-prompt-dos/
REM Mude para:
	%bcdir%\bin\ilink32 -aa -Gn -Tpe -s -v @CX.LNK
	Echo .
IF ERRORLEVEL 1 GOTO LINKERROR
Cls
Echo .
Echo * Aplicacao Foi Desenvolvida Com Sucesso
Echo .
Echo * Aguarde um Momento, Compactando Aplicacao, Usando o PEC2.EXE
Echo .
REM C:\PECOMPACT\PEC2 /NB /EMP:Y /TM:Y /CR:Y /MC WINORCAM.EXE
rem  --compress-resources=0
REM C:\UPX\UPX WINORCAM.exe --compress-exports=0 --lzma --force --no-reloc --compress-resources=0
Echo .
Echo * Aplicativo Foi Compactado Com Sucesso - Aguarde Execucao.
Echo .
Echo * Aguarde, Executando o Aplicativo, Gerado Com Sucesso Absoluto *
WINORCAM
GOTO EXIT
	:LINKERROR
PAUSE * Applicacao Nao Foi Desenvolvida Com Sucesso. Veja ERRO.LOG *
GOTO EXIT
Echo .
cls
	:EXIT


 

Link to comment
Share on other sites

CX.LNK - Veja que está todo modularizado e sobre na hora em qualquer rWindows.

C:\bcc72\lib\c0w32.Obj               +
WINORCAM.OBJ                         +
FUNCOES.OBJ                          +
PROPOSTA.OBJ                         +
CRIARDBF.OBJ                         +
REINDEXA.OBJ                         +
CADGRUPO.OBJ                         +
CADGPPAG.OBJ                         +
CADGPREF.OBJ                         +
CADGPLIM.OBJ                         +
CADGPMAN.OBJ                         +
CADGPREC.OBJ                         +
CADGPVAS.OBJ                         +
CADGPMAO.OBJ                         +
CADGPPOD.OBJ                         +
CADGPFOR.OBJ                         +
CADFOROB.OBJ                         +
CADPODOB.OBJ                         +
CADGARAN.OBJ                         +
CADGARPL.OBJ                         +
PMSPOBS.OBJ                          +
RESPONSA.OBJ                         +
CADPAISA.OBJ                         +
CADORSER.OBJ                         +
CADFERRA.OBJ                         +
CADMANUT.OBJ                         +
CHAMADO.OBJ                          +
ORCAMENT.OBJ                         +
MICHIGAN.OBJ                         +
APROVAR.OBJ                          +
CADNECES.OBJ                         +
PRODUNFE.OBJ                         +
ABERTURA.OBJ                         +
ANIMABMP.OBJ                         +
CALEND.OBJ                           +
TCALENDA.OBJ                         +
CALCULAD.OBJ                         +
TLISTGET.OBJ                         +
DSAY.OBJ                             +
SSAY.OBJ,                            +
WINORCAM.EXE,                        +
WINORCAM.MAP,                        +
C:\FWH1701\lib\FiveHX.lib            +
C:\FWH1701\lib\FiveHC.lib            +
C:\XHBBCC72\lib\hbzip.Lib            +
C:\XHBBCC72\lib\zlib.Lib             +
C:\XHBBCC72\lib\rtl.Lib              +
C:\XHBBCC72\lib\vm.Lib               +
C:\XHBBCC72\lib\gtgui.Lib            +
C:\XHBBCC72\lib\lang.Lib             +
C:\XHBBCC72\lib\macro.Lib            +
C:\XHBBCC72\lib\rdd.Lib              +
C:\XHBBCC72\lib\dbfntx.Lib           +
C:\XHBBCC72\lib\dbfcdx.Lib           +
C:\XHBBCC72\lib\common.Lib           +
C:\XHBBCC72\lib\tip.Lib              +
C:\XHBBCC72\lib\pp.Lib               +
C:\XHBBCC72\lib\dbffpt.Lib           +
C:\XHBBCC72\lib\codepage.Lib         +
C:\XHBBCC72\lib\HbSix.Lib            +
C:\XHBBCC72\lib\PcRepos.Lib          +
C:\XHBBCC72\Lib\ct.Lib               +
C:\XHBBCC72\Lib\png.Lib              +
C:\BCC72\lib\cw32.Lib                +
c:\BCC72\lib\uuid.lib                +
c:\BCC72\lib\ws2_32.lib              +
C:\BCC72\lib\psdk\msimg32.Lib        +
C:\BCC72\lib\psdk\odbc32.Lib         +
C:\BCC72\lib\psdk\rasapi32.Lib       +
C:\BCC72\lib\psdk\nddeapi.Lib        +
C:\BCC72\lib\psdk\psapi.Lib          +
c:\BCC72\lib\psdk\gdiplus.lib        +
C:\BCC72\lib\psdk\iphlpapi.Lib       +
c:\BCC72\lib\psdk\shell32.lib        +
C:\BCC72\lib\import32.Lib,
AMBIENTY.RES                         +
IMAGENS.RES

Link to comment
Share on other sites

wrdVaDc.png

#include 'fivewin.ch'
	FUNCTION Main( cTime01 )
	   LOCAL cTime02 := TIME()
	   // VOCE ERRO ECOB
   DEFAULT cTime01 := ''
	   cTime01 := TIME()
	   // cTime01 := SUBSTR( cTime01, 1, AT( ',',cTime01 ) - 1 )
	   cTime01 := STRZERO( VAL( SUBSTR(cTime01,1,AT(':',cTime01 ) - 1 ) ), 2 ) + SUBSTR( cTime01, AT( ':',cTime01 ) )
	   IF EMPTY( cTime01 )
      RETURN NIL
   ENDIF
	   ?'Hora inicial: ' + cTime01, 'Hora que EXE realmente carregou: ' + cTime02, 'Demora para abrir EXE: ' + ELAPTIME( cTime01, cTime02 )
	RETURN NIL
	FUNCTION TESTFUNC_00001() ; MSGINFO( '', '' ) ; RETURN NIL
	FUNCTION TESTFUNC_00002() ; MSGINFO( '', '' ) ; RETURN NIL
	FUNCTION TESTFUNC_00003() ; MSGINFO( '', '' ) ; RETURN NIL
	FUNCTION TESTFUNC_00004() ; MSGINFO( '', '' ) ; RETURN NIL
	FUNCTION TESTFUNC_00005() ; MSGINFO( '', '' ) ; RETURN NIL
	FUNCTION TESTFUNC_60000() ; MSGINFO( '', '' ) ; RETURN NIL


 

Link to comment
Share on other sites

É isso que você não está entendendo Kapiaba. O número de funções importa sim. 

Pegue um editor de texto e crie 60 mil funções, exatamente como estou falando, e faça o teste.

 

Eu deixei 10 mil funções em cada PRG, e a demora continua a mesma. A demora vai ser a mesma se eu tiver 500 PRG's com 120 funções cada. 

 

O seu projeto é muito pequeno, por isso sobe na hora. Nosso projeto é modularizado como vc fala, isso que mandei é só um teste, por isso joguei tudo no mesmo fonte.

 

Compila exatamente o fonte em anexo e me diga quanto tempo demora...... qualquer coisa, pegue de 5 em 5 mil funções e joga em novos PRG's e me diga se melhorará a velocidade.

 

Link do fonte: https://drive.google.com/open?id=1zYEplqHHPSWvVOgSoG_mkO3-1PsLfWLZ

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...