Eduardo Bilato Posted October 16, 2018 Report Share Posted October 16, 2018 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? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2018 Report Share Posted October 16, 2018 WARSAW instalado na máquina? Se você não mostrar como é essa "abertura", fica dificil. Em máquinas diferentes ou só em uma? Quote Link to comment Share on other sites More sharing options...
Eduardo Bilato Posted October 16, 2018 Author Report Share Posted October 16, 2018 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. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2018 Report Share Posted October 16, 2018 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. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2018 Report Share Posted October 16, 2018 Qualquer coisa, me chame no skype, que eu compilo o TUTOR04.PRG e te envio pelo skype, para você ver a velocidade dele ahi na máquina que dá o problema. Skype: live:joao_196 Abs. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2018 Report Share Posted October 16, 2018 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. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2018 Report Share Posted October 16, 2018 O que é malware? https://www.microsoft.com/pt-br/security/resources/malware-whatis.aspx Quote Link to comment Share on other sites More sharing options...
Eduardo Bilato Posted October 16, 2018 Author Report Share Posted October 16, 2018 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 kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2018 Report Share Posted October 16, 2018 Então... Verifique se não tem nada errado no script de compilação, alguma coisa que o windows 10 não suporta, uma LIB de terceiros por exemplo. O seu programa tem que "subir" igual ao TUTOR04.PRG. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 16, 2018 Report Share Posted October 16, 2018 Veja também, se o seu programa não está fazendo isso: Quote Link to comment Share on other sites More sharing options...
ecob Posted October 16, 2018 Report Share Posted October 16, 2018 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 Eduardo Bilato 1 Quote Link to comment Share on other sites More sharing options...
giovanyvecchi Posted October 17, 2018 Report Share Posted October 17, 2018 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 Quote Link to comment Share on other sites More sharing options...
ecob Posted October 17, 2018 Report Share Posted October 17, 2018 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: 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 Segue o retorno do programa 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. Eduardo Bilato 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 17, 2018 Report Share Posted October 17, 2018 Tô confuso: Ecob, você é o: Eduardo Bilato ??? Quote Link to comment Share on other sites More sharing options...
ecob Posted October 17, 2018 Report Share Posted October 17, 2018 Não Kapiaba. Nós trabalhamos juntos. Ele criou o tópico pq eu tinha perdido minha conta, mas acabei encontrando meu dados de login, rsrs Quote Link to comment Share on other sites More sharing options...
Eduardo Bilato Posted October 17, 2018 Author Report Share Posted October 17, 2018 Tô confuso: Ecob, você é o: Eduardo Bilato ??? Eu sou eu, o eco é o eco hauhauhau Trabalhamos juntos na mesma empresa e na mesma equipe kapiaba 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 17, 2018 Report Share Posted October 17, 2018 No pau! "subiu" na hora. Lógico que você deve MODULARIZAR as FUNCTIONS em PRGS com nomes diferentes, não se deve colocar todas as FUNCTIONS em um único módulo. Quote Link to comment Share on other sites More sharing options...
ecob Posted October 17, 2018 Report Share Posted October 17, 2018 Mas Kapiaba, olhando ali atrás não parece q tem 60 mil funções no seu PRG, apenas 7 além da MAIN. Por que o hora incial aí está zerado? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 17, 2018 Report Share Posted October 17, 2018 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 17, 2018 Report Share Posted October 17, 2018 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 17, 2018 Report Share Posted October 17, 2018 #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 Quote Link to comment Share on other sites More sharing options...
ecob Posted October 17, 2018 Report Share Posted October 17, 2018 É 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 kapiaba 1 Quote Link to comment Share on other sites More sharing options...
giovanyvecchi Posted October 17, 2018 Report Share Posted October 17, 2018 Faça o mesmo teste compilando os prgs separados com as funções separadas com a opção /n e depois execute o programa. ecob 1 Quote Link to comment Share on other sites More sharing options...
joaosolution Posted October 17, 2018 Report Share Posted October 17, 2018 Bom dia Fiz o teste aqui e com 60000 funções demora 33 Segundos para carregar o programa. 6 prgs com 10000 funções cada. Default da compilação /n. Att João Bosco Quote Link to comment Share on other sites More sharing options...
kapiaba Posted October 17, 2018 Report Share Posted October 17, 2018 Tais compilando com o que? Harbour? Com xHarbour não compilou, deu esse erro que eu desconheço. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.