RUN

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

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

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 4666
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Curtiu: 1 vez
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