Página 1 de 1

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

Enviado: 19 Dez 2016 13:35
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,

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

Enviado: 19 Dez 2016 14:11
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

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

Enviado: 19 Dez 2016 15:39
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

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

Enviado: 19 Dez 2016 15:53
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,

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

Enviado: 19 Dez 2016 15:57
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}