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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, 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/
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, 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/
Responder