RUN

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

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

RUN

Mensagem por JoséQuintas »

Mais um teste, mas este só funciona com Blinker extended.

gerei 400 módulos com 2.000 linhas cada, total de quase 1.000.000 de linhas de fonte

Código: Selecionar todos

PROCEDURE Main

   LOCAL nCont

   FOR nCont = 1 TO 400
      CreatePrg( nCont )
   NEXT
   CreateLink()

   RETURN

FUNCTION CreatePrg( nNumPrg )

   LOCAL nCont

   ? nNumPrg

   SET ALTERNATE TO ( "MODU" + StrZero( nNumPrg, 4 ) + ".PRG" )
   SET ALTERNATE ON
   SET CONSOLE OFF
   ? [PROCEDURE MODU]  + StrZero( nNumPrg, 4 )
   FOR nCont = 1 TO 2000
      ? [? ] + StrZero( nCont, 6 )
   NEXT
   ? [RETURN]
   SET ALTERNATE OFF
   SET ALTERNATE TO
   SET CONSOLE ON

   RETURN NIL

FUNCTION CreateLink()

   LOCAL nCont

   SET ALTERNATE TO ( "TEST.LNK" )
   SET ALTERNATE ON
   SET CONSOLE OFF
   FOR nCont = 1 TO 400
      ? [FILE MODU] + StrZero( nCont, 4 )
   NEXT
   ? [BLINKER EXECUTABLE EXTENDED]
   ? [BLINKER EXECUTABLE ALIGNMENT 256]
   ? [LIB CLIPPER, EXTEND]
   ? [SEARCH BLXCLP52]
   SET CONSOLE ON
   SET ALTERNATE OFF
   SET ALTERNATE TO
   RETURN NIL
mais um bat de compilação

Código: Selecionar todos

FOR %%A IN (*.PRG) DO CLIPPER %%A -m -n
BLINKER @test.lnk
O resultado:
Um EXE com 10.024.704 bytes, totalmente funcional.
Descobri que também precisa ajustar esse BLINKER EXECUTABLE ALIGNMENT pra aceitar EXEs maiores

Como o problema está num EXE de 3MB, este teste com 10MB mostra que o problema estará resolvido.

Notas:

Se usar a opção BLINKER EXECUTABLE COMPRESS, esse mesmo EXE passa a ter 1.569.536

Overlay ou outra alternativa pode ser solução, até o aplicativo aumentar novamente.
Então, é usar Blinker e nunca mais se preocupar com isso.
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
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

RUN

Mensagem por rochinha »

Amiguinhos,

Realmente, bLinker deixou saudades.

E em relação as funções SWAP? Acho que o bLinker dava esta opção.

Esta funções retiravam o aplicativo da memória para executar o segundo aplicativo chamado e quando este terminava retornava ao aplicativo chamador.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

RUN

Mensagem por juniorcamilo »

JoséQuintas escreveu:? "blinker clipper symbol off" // 20/06
02       ? "blinker executable clipper F250"
03       ? "blinker environment override"
04       ? "blinker executable extended"
05       ? "blinker executable compress"
06       ? "blinker incremental off"
07       ? "blinker procedure depth 120"
08       ? "blinker executable alignment 128"
09       ? "blinker extmem limit 8000"
10       ? "blinker lowmem reserve 32"
11       ? "blinker message wink"
add no linha de linkagem o executavel foi de 3.123 kb foi pra 1.354 kb, esta certo isso?

ficou assim (obs:Devstudio v0.57):
Text := "BLINKER EXECUTABLE EXTENDED"+CRLF
Text += "blinker clipper symbol off"+CRLF
Text += "blinker environment override"+CRLF
Text += "blinker executable compress"+CRLF
Text += "blinker procedure depth 120"+CRLF
Text += "blinker extmem limit 8000"+CRLF
Text += "blinker lowmem reserve 32"+CRLF
Text += "blinker message wink"+CRLF
Text += "BLINKER EXECUTABLE ALIGN 256"+CRLF
Text += "BLINKER INCREMENTAL OFF"+CRLF
Text += "BLINKER EXECUTABLE NODELETE"+CRLF
Text += "BLINKER EXECUTABLE CLIPPER /F:255 /DYNF:8 /SWAPK:65535 /SWAPPATH:'\' /TEMPPATH:'\'"+CRLF
Text += ""+CRLF
Responder