Opção -jobs=%NUMBER_OF_PROCESSORS% não está funcionando.

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Opção -jobs=%NUMBER_OF_PROCESSORS% não está funcionando.

Mensagem por rossine »

Olá,

Uso o harbour do Viktor e uso a definição abaixo em meu .hbp

Código: Selecionar todos

-jobs=%NUMBER_OF_PROCESSORS% 
Pelo que percebi, quando o harbour importa o valor de %NUMBER_OF_PROCESSORS% ela vem como tipo STRING e o valor que precisa ser definido na opção "-jobs" tem que NUMÉRICA.

Quando uso a opção: -jobs=%NUMBER_OF_PROCESSORS% na compilação consta assim:

Código: Selecionar todos

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Compilation threads: 1
E usando do modo normal -jobs=4 , fica assim:

Código: Selecionar todos

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Compilation threads: 4
Teria algum parâmetro no harbour para transformar esta importação em NUMÉRICA ?

Tipo:

Código: Selecionar todos

-jobs=val( %NUMBER_OF_PROCESSORS% )
Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Opção -jobs=%NUMBER_OF_PROCESSORS% não está funcionando.

Mensagem por JoséQuintas »

Pelo menos a tradução no Windows como string é válida.
Não sei do hbp, nem sei aonde mostra as threads que estão sendo usadas.

Código: Selecionar todos

d:\temp>echo -jobs=%NUMBER_OF_PROCESSORS%
-jobs=4
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/
Kapiaba
Colaborador
Colaborador
Mensagens: 1914
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Opção -jobs=%NUMBER_OF_PROCESSORS% não está funcionando.

Mensagem por Kapiaba »

Algo a ver com isto Rossine?

Código: Selecionar todos

#include "FiveWin.ch"

FUNCTION Main()

   ? " Computer Name:", GETENV( "COMPUTERNAME" )
   ? " Home Drive :", GETENV( "HOMEDRIVE" )
   ? " Home Path :", GETENV( "HOMEPATH" )
   ? " LogOn Server :", GETENV( "LOGONSERVER" )
   ? " Number of Processors :", GETENV( "NUMBER_OF_PROCESSORS" )
   ? " Processor Architecture :", GETENV( "PROCESSOR_ARCHITECTURE" )
   ? " Processor Identifier :", GETENV( "PROCESSOR_IDENTIFIER" )
   ? " Processor Level :", GETENV( "PROCESSOR_LEVEL" )
   ? " Processor Revision :", GETENV( "PROCESSOR_REVISION" )
   ? " OS :", GETENV( "OS" )
   ? " Session Name :", GETENV( "SESSIONNAME" )
   ? " User Domain :", GETENV( "USERDOMAIN" )
   ? " User Name :", GETENV( "USERNAME" )
   ? " User Profile :", GETENV( "USERPROFILE" )
   ? " Command Specification:", GETENV( "COMSPEC")
   ? " TEMP Folder :", GETENV( "TEMP" )
   ? " TMP Folder :", GETENV( "TMP" )
   ? " WINDOWS Folder :", GETENV( "WINDIR" )
   ? " Program Files Folder :", GETENV( "PROGRAMFILES" )
   ? " Prog. files extentions :", GETENV( "PATHEXT" )
   ? " Default Path :", GETENV( "PATH" )

RETURN NIL
Abs
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Opção -jobs=%NUMBER_OF_PROCESSORS% não está funcionando.

Mensagem por rossine »

Olá João,

Rodei seu exemplo aqui e me retornou correto , ou seja 4 núcleos:

Código: Selecionar todos

 Number of Processors : 4     <<<---------AQUI
 Processor Architecture : x86
 Processor Identifier : x86 Family 6 Model 23 Stepping 7, GenuineIntel
 Processor Level : 6
 Processor Revision : 1707
 OS : Windows_NT
 Session Name : Console
Eu devo estar fazendo confusão pois se eu seto no meu .HBP

Código: Selecionar todos

-jobs=16
na compilação ele mostra:

Código: Selecionar todos

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Compilation threads: 16
O Viktor me disse para setar esta variável assim:

Código: Selecionar todos

Hi Rossine,

%VARNAME% is batch file convention, it's not supported inside .hbp files. (But it will work on the command-line on systems that support is.)

Inside .hbp files, use this: -jobs=${VARNAME}

Mas mesmo assim a compilação fica em apenas 1 thread:

Código: Selecionar todos

hbmk2: Processando opções do ambiente: -comp=mingw
hbmk2: Compilation threads: 1
Talvez eu esteja enganado por associar o "-jobs" com "hbmk2: Compilation threads: ???" que é mostrado na hora da compilação, mas foi só um detalhe que observei, mas compila normalmente.

Obrigado,
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Opção -jobs=%NUMBER_OF_PROCESSORS% não está funcionando.

Mensagem por JoséQuintas »

Código: Selecionar todos

%VARNAME% is batch file convention, it's not supported inside .hbp files
Isso significa:

%VARNAME% é pra arquivos BAT, NÃO é aceito dentro de hbp.

Mas o texto adicional:

Código: Selecionar todos

Inside .hbp files, use this: -jobs=${VARNAME}
mostra que seria:

Código: Selecionar todos

-jobs=${NUMBER_OF_PROCESSORS}
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/
Responder