RUN
Moderador: Moderadores
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
RUN
boa tarde!!
estou tentando diminuir o tamanho do exe!! com isso to separando em 2 exe!! quando chamo um exe com o comando run XXX.exe de dentro do executável ele pisca a tela!!! a pergunta é: Tem uma forma de não pisca a tela?
estou tentando diminuir o tamanho do exe!! com isso to separando em 2 exe!! quando chamo um exe com o comando run XXX.exe de dentro do executável ele pisca a tela!!! a pergunta é: Tem uma forma de não pisca a tela?
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
RUN
amigos..
amigos quando compilei sem o debug parou de piscar!!!juniorcamilo escreveu:boa tarde!!
estou tentando diminuir o tamanho do exe!! com isso to separando em 2 exe!! quando chamo um exe com o comando run XXX.exe de dentro do executável ele pisca a tela!!! a pergunta é: Tem uma forma de não pisca a tela?
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
RUN
Amiguinhos,
juniorcamilo, você ainda usa RTLink? Já usa bLinker? Já usa Exospace(Clipper 5.3 acima)? Tá criando somente um executável? Conhece .OVL, Conhece .PLL?
juniorcamilo, você ainda usa RTLink? Já usa bLinker? Já usa Exospace(Clipper 5.3 acima)? Tá criando somente um executável? Conhece .OVL, Conhece .PLL?
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RUN
Opções:
- RTLINK: usa até 640KB memória, fazendo "rodízio" de rotinas
- EXOSPACE: usa até 8MB de memória, carregando tudo de uma vez
- BLINKER 7: usa até 16MB de memória, carregando tudo de uma vez, e também permite compactar EXE
Nota do RTLINK:
De nada adianta ter rodízio de rotinas, se compilar tudo junto, usando CLP, porque o tamanho da rotina será gigante.
Pra melhor aproveitamento do rtlink, é compilar os PRGs isoladamente, e depois linqueditar tudo.
Separar EXEs tem vantagens e desvantagens.
Mas convém separar somente se necessário mesmo.
Lembrando que dependendo do trabalho, o Harbour poderia ser uma opção pra resolver tudo de uma vez.
- RTLINK: usa até 640KB memória, fazendo "rodízio" de rotinas
- EXOSPACE: usa até 8MB de memória, carregando tudo de uma vez
- BLINKER 7: usa até 16MB de memória, carregando tudo de uma vez, e também permite compactar EXE
Nota do RTLINK:
De nada adianta ter rodízio de rotinas, se compilar tudo junto, usando CLP, porque o tamanho da rotina será gigante.
Pra melhor aproveitamento do rtlink, é compilar os PRGs isoladamente, e depois linqueditar tudo.
Separar EXEs tem vantagens e desvantagens.
Mas convém separar somente se necessário mesmo.
Lembrando que dependendo do trabalho, o Harbour poderia ser uma opção pra resolver tudo de uma vez.
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/
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/
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
RUN
usava muito o blinker, e com ovl´s e dll´s que facilitavam muito minha vida
e usava o comando do proprio blinker swruncmd("meuaplicativo.exe")
achava melhor que o comando run....
e usava o comando do proprio blinker swruncmd("meuaplicativo.exe")
achava melhor que o comando run....
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
RUN
uso blinker e swruncmd("meuaplicativo.exe")
estou usado agora 2 .exe, ficou melhor,, separei os Relatórios do corpo principal do Sistema!!
agora estou trabalhando para separa a NFE do corpo principal do Sistema!!
o sistema estava passando de 3 Mb!!
estou usado agora 2 .exe, ficou melhor,, separei os Relatórios do corpo principal do Sistema!!
agora estou trabalhando para separa a NFE do corpo principal do Sistema!!
o sistema estava passando de 3 Mb!!
- juniorcamilo
- Usuário Nível 3

- Mensagens: 343
- Registrado em: 10 Nov 2006 09:12
- Localização: Pará
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RUN
Overlay (OVL) é do tempo do PLINK6.
PLL nunca cheguei a usar.
BLINKER com overlay é péssimo, fica limitado a 640kb
BLINKER em modo extendido é a melhor opção.
Outra opção também, com BLINKER, é usar DLL.
Sim, DLL, mas DLL pra ser usada em programas usando Blinker.
Ao invés de 2 EXEs, um EXE usando DLLs.
A mesma vantagem de programas Windows: Pode trocar PARTE do programa, ao invés do programa inteiro, bastando trocar a DLL.
Cheguei a usar por um tempo.
Só carrega a DLL quando precisar.
e so compila o que está na DLL quando quiser.
É diferente de overlay: na overlay, você recompila tudo.
Usando DLL, separa o EXE em pedaços, e pode compilar cada DLL/pedaço individualmente, QUANDO quiser.
Mas como eu disse antes, se é pra se aprofundar, melhor se aprofundar no Harbour, e resolver tudo de vez.
Se não tiver outro jeito, ainda tem essas opções com Blinker.
Aliás... ultrapassar o limite do Blinker em modo extendido é difícil, talvez só se o EXE tiver mais de 10MB, o que em Clipper é dificil.
Se menos que isso tiver problema, sinal de que está usando Blinker de forma ERRADA, sem tirar proveito do modo extendido.
PLL nunca cheguei a usar.
BLINKER com overlay é péssimo, fica limitado a 640kb
BLINKER em modo extendido é a melhor opção.
Outra opção também, com BLINKER, é usar DLL.
Sim, DLL, mas DLL pra ser usada em programas usando Blinker.
Ao invés de 2 EXEs, um EXE usando DLLs.
A mesma vantagem de programas Windows: Pode trocar PARTE do programa, ao invés do programa inteiro, bastando trocar a DLL.
Cheguei a usar por um tempo.
Só carrega a DLL quando precisar.
e so compila o que está na DLL quando quiser.
É diferente de overlay: na overlay, você recompila tudo.
Usando DLL, separa o EXE em pedaços, e pode compilar cada DLL/pedaço individualmente, QUANDO quiser.
Mas como eu disse antes, se é pra se aprofundar, melhor se aprofundar no Harbour, e resolver tudo de vez.
Se não tiver outro jeito, ainda tem essas opções com Blinker.
Aliás... ultrapassar o limite do Blinker em modo extendido é difícil, talvez só se o EXE tiver mais de 10MB, o que em Clipper é dificil.
Se menos que isso tiver problema, sinal de que está usando Blinker de forma ERRADA, sem tirar proveito do modo extendido.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RUN
Isso pra Blinker não é nada.o sistema estava passando de 3 Mb!!
Use modo extendido.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RUN
É direto do meu gerenciador de compilação, pra gerar o LINK.
Na parte das LIBs, acrescente as que usar (se usar)
Seu EXE pode ter até 8MB ou mais, e continua funcionando normalmente.
Apesar que tem a compactação... que vai deixar menor.
Na parte das LIBs, acrescente as que usar (se usar)
Código: Selecionar todos
? "blinker clipper symbol off" // 20/06
? "blinker executable clipper F250"
? "blinker environment override"
? "blinker executable extended"
? "blinker executable compress"
? "blinker incremental off"
? "blinker procedure depth 120"
? "blinker executable alignment 128"
? "blinker extmem limit 8000"
? "blinker lowmem reserve 32"
? "blinker message wink"
...
FI nomearquivo
fi nomearquivo
...
? "file \cdrom\fontes\lib\apporign" // Maligno AppPath
? "file \cdrom\fontes\lib\volsernr" // Maligno Vol.Serial
? "file \cdrom\fontes\lib\crc32clc" // Maligno CRC32
? "lib \cdrom\fontes\lib\OsLib" // não usar 100% CPU
? "lib Super"
// ? "file blxclp52" // no caso de rodar DLL
? "search blxclp52"
? "search six3"
? "file \cdrom\fontes\lib\sixuk"
// ? "file \cdrom\fontes\lib\sixcdx" // usa somente sixcdx
Apesar que tem a compactação... que vai deixar menor.
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RUN
Até rodei num XP virtual aqui.
Repare o retorno de Memory(0), 4.6MB de memória
Isso vai confirmar se está usando modo extendido ou não.
Senão o retorno vai ser uns míseros kbytes....
Sem blinker modo extendido, nem um programa vazio não retorna isso.
Repare o retorno de Memory(0), 4.6MB de memória
Isso vai confirmar se está usando modo extendido ou não.
Senão o retorno vai ser uns míseros kbytes....
Sem blinker modo extendido, nem um programa vazio não retorna isso.
Código: Selecionar todos
? Memory(0)
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RUN
um teste mais completo:
E na minha compilação limitava a 8mb só por precaução, mas nunca tive nenhum problema.
Está aí a diferença entre blinker modo extendido e os demais linqueditores/modos.
Acabei de fazer o teste usando Clipper 5.2 e um XP virtual.
Blinker 7.10
de 400 kb pra 65.500 kb.... a diferença é grande....
Nota: com certeza o tamanho do EXE é relacionado com a memória disponível. com 65MB disponível... o EXE pode ficar bem "grandão".... rs
Configurei o XP do zero, só indicar aonde estão os EXEs, LIBs, e OBJs do blinker (apesar que pra esse exemplo nem precisou da pasta OBJ):
SET PATH=%PATH%;\cl52\bin;\blinker\bin
SET LIB=\cl52\lib;\blinker\lib
SET OBJ=\blinker\obj
Código: Selecionar todos
? memory(0)
Falei até errado. O limite do blinker é maior do que eu mencionei.clipper test
rtlink fi test
test
427
clipper test
blinker fi test
test
410
clipper test
exospace fi test
test
1886
clipper test
blinker fi test blinker executable extended lib blxclp52
test
65.515
E na minha compilação limitava a 8mb só por precaução, mas nunca tive nenhum problema.
Está aí a diferença entre blinker modo extendido e os demais linqueditores/modos.
Acabei de fazer o teste usando Clipper 5.2 e um XP virtual.
Blinker 7.10
de 400 kb pra 65.500 kb.... a diferença é grande....
Nota: com certeza o tamanho do EXE é relacionado com a memória disponível. com 65MB disponível... o EXE pode ficar bem "grandão".... rs
Configurei o XP do zero, só indicar aonde estão os EXEs, LIBs, e OBJs do blinker (apesar que pra esse exemplo nem precisou da pasta OBJ):
SET PATH=%PATH%;\cl52\bin;\blinker\bin
SET LIB=\cl52\lib;\blinker\lib
SET OBJ=\blinker\obj
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/
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RUN
E pra ficar mais completo ainda, com Harbour:
hbmk2 test
test
2097151
Não sei porque, só retornou 2.097.151kb, deveria ter retornado 4.000.000...
Comparado aos 400kb do Clipper... seria o fim de problemas com memória.
Se precisar mais que 4.000.000 kb... só com Windows e Harbour 64 bits.... rs
hbmk2 test
test
2097151
Não sei porque, só retornou 2.097.151kb, deveria ter retornado 4.000.000...
Comparado aos 400kb do Clipper... seria o fim de problemas com memória.
Se precisar mais que 4.000.000 kb... só com Windows e Harbour 64 bits.... rs
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/
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/
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
RUN
Amiguinhos,
JoseQuintas
Não me recordo direito mas o bLinker permitia criar as .OVLs tanto internas como externas. Meu executável antigo em DOS tinha várias .OVLs.
No exemplo acima o DEFBEGIN..DEFEND permitiam um trabalho mais folgado na memória. Criava um único executável de 1.072.000bytes.
JoseQuintas
Não me recordo direito mas o bLinker permitia criar as .OVLs tanto internas como externas. Meu executável antigo em DOS tinha várias .OVLs.
Código: Selecionar todos
BLINKER INCREMENTAL OFF
BLINKER CLIPPER SYMBOL OFF
BLINKER CACHE XMS 50%,1024
BLINKER CACHE EMS 50%,1024
MAP A,S
PACKCODE
PACKDATA
DEFBEGIN
name FiveWin
description 'Clipper for Windows library'
#exetype Windows 3.1
code moveable discardable
data preload moveable
stacksize 17000
heapsize 2048
segment 'PLANKTON_TEXT' nondiscardable
segment 'EXTEND_TEXT' nondiscardable
segment 'OM_TEXT' nondiscardable
segment 'OSMEM_TEXT' nondiscardable
segment 'SORTOF_TEXT' nondiscardable
segment 'STACK_TEXT' nondiscardable
DEFEND
NOBELL
OUT NFDP.EXE
LIB VISUAL,NFLIB,NANFOR,BLXCLP52,DBFNTX
FILE NFDP #,NFDPARQ,NFDPARQ2 #,NFDPSOS,MYALERT,ERRORSYS
FILE NFDPINC,NFDPI01,NFDPC01,NFDPC05,NFI27,NFI10,NFDPPLAN
FILE NFDPI02,NFDPI03,NFDPI04,NFDPI05,NFDPI06,NFDPI07,NFDPI08,NFDPI10,NFDPI061,NFDPI062
FILE NFDPI11,NFDPI12,NFDPI13,NFDPI13a,NFDPI14,NFDPI14a,NFDPI15,NFDPI16,NFDPI17,NFDPI18,NFDPI19,NFDPc20,NFDPI81
FILE NFDPR01,NFDPR011,NFDPR012,NFDPR02,NFDPR03,NFDPR04,NFDPR041,NFDPR05,NFDPR061,NFDPR062,NFDPRTXT
FILE NFDPR04p,NFDPR05p,NFDPR05a,NFDPRPA
FILE CETAI01,CETAC01
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.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
RUN
Sim, mas com blinker e overlay fica até pior.
BLINKER: tem a do Clipper e a versão em separado
PLINK86: tem a do Clipper e a versão em separado
Os recursos são diferentes, é lógico.
O RTLINK faz overlay automática, o PLINK86 e BLINKER fazem manualmente.
OVL era apenas a questão do arquivo em separado, não significa que está ou não usando overlay.
No caso de overlay manual, dá pra retirar partes do Clipper também pra overlay.
Necessita de um pequeno estudo sobre o que pode ou não ficar em overlay.
Também dá pra otimizar os fontes, transformando o máximo de variáveis pra LOCAL, porque PUBLIC e PRIVATE utilizam a tabela geral, "fora da overlay".
Tambem transformando funções em STATIC, pra serem carregadas somente junto com o módulo.
No RTLInk, os módulos praticamente viram overlay automaticamente.
Neste caso, os módulos devem ser o menor possiveis, porque são reservadas áreas de memória de tamanho suficiente pra carregar um módulo.
(No caso de overlays em geral, não apenas rtlink).
Ao compilar usando CLP, juntando vários fontes, o tamanho total para o CLP será reservado na memória, por isso o melhor é compilando cada fonte em separado.
Mas é tudo muito trabalho pra pouca coisa, comparado ao blinker.
Pra que brigar por talvez uns míseros 100kb, se com blinker você apenas usa e libera 65.000kb ?
Por mais que seja feita otimização, overlay, etc. nada supera o uso de blinker em modo extendido.
Overlay vai ajudar por determinado tempo, depois vai precisar de revisões, e revisões e revisões....
A propaganda do Blinker era verdadeira: "use Blinker e esqueça problemas de memória".
Se dá pra usar isto e ter 65.000kb de memória livre:
Pra que arriscar com isto, e ter só uns 200kb a mais:
BLINKER: tem a do Clipper e a versão em separado
PLINK86: tem a do Clipper e a versão em separado
Os recursos são diferentes, é lógico.
O RTLINK faz overlay automática, o PLINK86 e BLINKER fazem manualmente.
OVL era apenas a questão do arquivo em separado, não significa que está ou não usando overlay.
No caso de overlay manual, dá pra retirar partes do Clipper também pra overlay.
Necessita de um pequeno estudo sobre o que pode ou não ficar em overlay.
Também dá pra otimizar os fontes, transformando o máximo de variáveis pra LOCAL, porque PUBLIC e PRIVATE utilizam a tabela geral, "fora da overlay".
Tambem transformando funções em STATIC, pra serem carregadas somente junto com o módulo.
No RTLInk, os módulos praticamente viram overlay automaticamente.
Neste caso, os módulos devem ser o menor possiveis, porque são reservadas áreas de memória de tamanho suficiente pra carregar um módulo.
(No caso de overlays em geral, não apenas rtlink).
Ao compilar usando CLP, juntando vários fontes, o tamanho total para o CLP será reservado na memória, por isso o melhor é compilando cada fonte em separado.
Mas é tudo muito trabalho pra pouca coisa, comparado ao blinker.
Pra que brigar por talvez uns míseros 100kb, se com blinker você apenas usa e libera 65.000kb ?
Por mais que seja feita otimização, overlay, etc. nada supera o uso de blinker em modo extendido.
Overlay vai ajudar por determinado tempo, depois vai precisar de revisões, e revisões e revisões....
A propaganda do Blinker era verdadeira: "use Blinker e esqueça problemas de memória".
Se dá pra usar isto e ter 65.000kb de memória livre:
Código: Selecionar todos
blinker executable extended lib blxclp52
Código: Selecionar todos
#
# CL520MAX.LNK - 03/22/93 Version 1.0
#
# Blinker link script for CA-Clipper 5.2
#
# This script may help with very tight memory situations, and when using the
# Clipper debugger (CLD) with large programs.
#
# For ease of use this script should be stored in your library directory,
# (the directory pointed to by the LIB environment variable), which will allow
# Blinker to find the script without you having to specify a full path.
#
# This script MUST be included outside of any BEGINAREA / ENDAREA commands
# and after all libraries except the RDDs and LLIBCA if it is being used.
#
# example:
#
# FILE one
# BEGINAREA
# FILE two
# FILE three
# FILE four
# ENDAREA
# @CL520MAX
# LIB DBFCDX
# LIB LLIBCA # (if used)
#
# Modules within CLIPPER.LIB are, by their nature, called very frequently
# within any CLIPPER application. Therefore, overlaying these routines
# will almost certainly result in some performance degradation, which can
# be minimised by increasing the OVERLAY OPSIZE.
#
# You may also wish to consider using BLINKER OVERLAY PAGEFRAME ON to expand
# the overlay pool to 64K, and remove it from conventional memory, to both
# increase available memory and performance.
#
# ie BLINKER OVERLAY PAGEFRAME ON
#
# Blinker 2.0+ users will find that specifying an overlay cache will increase
# execution speed significantly.
#
# eg BLINKER CACHE XMS 128
# BLINKER CACHE EMS 128
#
# The amount of performance degradation will vary from application to
# application, - it may be necessary to modify this script by commenting
# out some MODULE statements to increase performance to an acceptable level
# in some areas.
#
# Please note that some third party libraries may replace or modify routines
# in the CLIPPER library, so that they are no longer overlayable. The link
# time command BLINKER MESSAGE DUPLICATES may help in determining such
# conflicts or replacements.
#
#
# mod tbrowse0 # Uncomment these three lines
# mod tbrowse1 # to speed up TBROWSE by forcing
# mod linelen # it into the root.
#
lib clipper
beginarea
mod ACCEPT # .c
mod ACOPY # .c
mod ADEL # .c
mod AEVAL # .c
mod AINS # .c
mod APPEXIT # .c
mod APPINIT # .c
mod ATAIL # .c
mod BOX # .c
mod COLOR # .c
mod DATE # .c
mod DBCMD0 # .c
mod DBCMD1 # .c
mod DBCMD2 # .c
mod DBCMD3 # .c
mod DBCMD4 # .c
mod DBCMD5 # .c
mod DBCREATE # .c
mod DBF0 # .c
mod DBF1 # .c
mod DBFDYN # .asm
mod DBGAPI # .c
mod DBGSHADO # .c
mod DBJUNCT # .c
mod DBNUBS # .asm
mod DBSTRUCT # .c
mod DELIMDYN # .asm
mod DISKIO # .c
mod DLM0 # .c
mod DLM1 # .c
mod EMMALLOC # .asm
mod EMMCOUNT # .asm
mod EMMFREE # .asm
mod EMMINST # .asm
mod EMMPAGE # .asm
mod EMMREALL # .asm
mod EMMSTAT # .asm
mod EMMVERS # .asm
mod ERRORSYS # Clipper
mod ERRSYS0 # .c
# mod ERRSYS1 # .c (Overlay if not using PS ERROR)
mod EXACTCMP # .c
mod FGET # .c
mod FIELD # .c
mod FILESYS # .asm
mod GETENV # .c
mod GETS0 # .c
mod GETS1 # .c
mod GETS2 # .c
mod INITEXIT # .c
mod INSTD # .asm
mod JOINLIST # .c
mod LUPDATE # .c
mod MAIN # .c
mod MAXROW # .c
mod MEMORY # .c
mod MRELEASE # .c
mod MSAVE # .c
mod NET # .c
mod OLDBOX # .c
mod OLDCLEAR # .c
mod OSDATE # .asm
mod OUTSTD # .c
mod PHILES # .c
mod PICT # .c
mod RDDORD # .c
mod RDDSVR # .c
mod RUN # .c
mod SAVEREST # .c
mod SCROLL # .c
mod SDF0 # .c
mod SDF1 # .c
mod SDFDYN # .asm
mod SEND # .c
mod SET # .c
mod SETCURS # .c
mod SORTBLOC # .c
mod SORTOF # .c
mod SQUAWK # .asm
mod STARTSYM # .asm
mod TB # .c
mod TSUPPORT # .c
# mod TXOPEN # .c (Overlay if not using NETLIB)
mod VERSION # .c
mod WORKAREA # .c
mod _AFIELDS # Clipper
mod _APPINI # Clipper
mod _ATPROMP # Clipper
mod _CENTURY # Clipper
mod _DBCOPY # Clipper
mod _DBDELIM # Clipper
mod _DBF # Clipper
mod _DBFLIST # Clipper
mod _DBGBROW # Clipper
mod _DBGHELP # Clipper
mod _DBGINSP # Clipper
mod _DBGMENU # Clipper
mod _DBJOIN # Clipper
mod _DBLIST # Clipper
mod _DBLOCAT # Clipper
mod _DBSDF # Clipper
mod _DBSORT # Clipper
mod _DBSTRUX # Clipper
mod _DBTOTAL # Clipper
mod _DBUPDAT # Clipper
mod _DELIM # Clipper
mod _ERRSYS # Clipper
mod _FLEDIT # Clipper
mod _GETMSG # Clipper
mod _GETSYS # Clipper
mod _HELPKEY # Clipper
mod _INPUT # Clipper
mod _RDDORD # Clipper
mod _READVAR # Clipper
mod _SAVESCR # Clipper
mod _SETFUNC # Clipper
mod _SETTA # Clipper
mod _TEXT # Clipper
mod _WAIT # Clipper
lib extend
endarea
lib terminal
lib dbfntx
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/
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/