Compilando/linqueditando mais rápido

Projeto [x]Harbour - Compilador de código aberto compatível com o 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

Compilando/linqueditando mais rápido

Mensagem por JoséQuintas »

Fiz um teste aqui, e a diferença de compilação/linquedição foi tremenda.
Como uso um quadcore, acrescentei a opção -jobs=4 no hbp, pra usar os 4 núcleos.
A diferença é muuuuuito grande.
Nem com Clipper não conseguia compilar tão rápido.
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/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Compilando/linqueditando mais rápido

Mensagem por alxsts »

Olá!

Informação interessante. Você colocou esse parâmetro para cada prg dentro do Hbp?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Compilando/linqueditando mais rápido

Mensagem por JoséQuintas »

Estou usando assim:

arquivo BAT

Código: Selecionar todos

@echo off
hbmk2 jpa.hbp -comp=msvc %1 %2 %3 %4 %5 %6
Arquivo hbp

Código: Selecionar todos

*.prg
*.c
-lhbtip
-lhbct
-lhbziparc
-lminizip
-lhbmzip
-lhbhpdf
-llibhpdf
-lpng
-lhbwin
jpa.rc

-compr
-winuni
-workdir=d:\temp
-oJPA
-gui
-gtwvt
-lgtwvt
-inc
-quiet
-es2
-w3
-strip
-m
-n
-jobs=4
Até os erros dos fontes são intercalados, porque está compilando ao mesmo tempo.
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
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Compilando/linqueditando mais rápido

Mensagem por Maligno »

Quem trabalha com multitasking também pode se beneficiar dos benefícios dos processadores multi-core. O passo inicial é pesquisar a função SetProcessAffinityMask() da API do Windows, que permite direcionar o processamento para outros cores. Um bom sistema de análise e balanceamento de carga pode fazer alguns tipos de softwares ficarem muito mais rápidos. Aí vai da imaginação de cada um. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Compilando/linqueditando mais rápido

Mensagem por asimoes »

Fiz um teste aqui, a compilação é extremamente rápida! muito útil para quem tem muitos prg para compilar que é o meu caso aqui um sistema com mais de 200 prgs.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
sambomb
Usuário Nível 3
Usuário Nível 3
Mensagens: 250
Registrado em: 24 Out 2008 17:02
Localização: Itaocara - RJ - Brasil

Compilando/linqueditando mais rápido

Mensagem por sambomb »

sabe dizer se tem algo semelhante para o BCC?
Imagem

Rca Sistemas - Itaocara - RJ
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Compilando/linqueditando mais rápido

Mensagem por lucimauro »

Testei aqui e realmente fica 2X o mais rapido a compilacao ou mais.!
Obrigado por compartilhar essa dica.
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Compilando/linqueditando mais rápido

Mensagem por fladimir »

Cara demais... fui pesquisar uma informação e cai nesse tópico q passou desapercebido e é TOP essa dica...

Muito mais rápido....

vlw
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Compilando/linqueditando mais rápido

Mensagem por asimoes »

Fladimir,

Você pode usar assim também:

A variável de ambiente %NUMBER_OF_PROCESSORS% se encarrega de pegar o número de processadores

-jobs=%NUMBER_OF_PROCESSORS%
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Compilando/linqueditando mais rápido

Mensagem por JoséQuintas »

Não sei se foi alterado, mas antes só no Harbour 3.2 é que o default era 1 único job por fez.

Talvez usando multithread seja interessante alterar o formato das mensagens de erro.

Código: Selecionar todos

 -ge[<mode>]      error output <mode>: 0=Clipper (default)
                                       1=IDE friendly
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
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Compilando/linqueditando mais rápido

Mensagem por asimoes »

alguém já usou -fixcase na compilação e o que faz?
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Compilando/linqueditando mais rápido

Mensagem por JoséQuintas »

Boa pergunta.
Pode ser pra Linux, pra não ter conflito.
Ou pode ser pra exportar em DLL pra outras linguagens, já que DLL costuma ser case sensitive.
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
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Compilando/linqueditando mais rápido

Mensagem por fladimir »

Vlw Alexandre e Quintas... obrigado pelas dicas.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Compilando/linqueditando mais rápido

Mensagem por asimoes »

Pessoal,

Fiz um teste aqui com fixcase

o uso é assim hbmk2 *.prg -fixcase ou hbmk2 seuprg.prg -fixcase

O que eu percebi é que troca os nomes das funções, por exemplo: CHR para Chr, SUBSTR para SubStr e por ai vai.
O fixcase adota um padrão, que pode não ser o ideal pra gente, tudo é uma questão de gosto.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Responder