Página 2 de 2

RUN

Enviado: 13 Jan 2017 03:52
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.

RUN

Enviado: 13 Jan 2017 13:46
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.

RUN

Enviado: 23 Fev 2017 09:04
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