Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

Retrieving machine information

 [1/3] from: henrik::webz::dk at: 31-May-2004 19:56


Hi Is there any way to retrieve machine information such as CPU type, speed, memory, etc. within REBOL? Would be nice for benchmarking programs. -- Regards, Henrik Mikael Kristensen

 [2/3] from: atruter:labyrinth:au at: 1-Jun-2004 9:35


> Is there any way to retrieve machine information such as CPU type, > speed, memory, etc. within REBOL?
Not without using an OS specific API call. Note that some of the info you require might be available as environment variables, eg. (on WinXP):
>> get-env "PROCESSOR_ARCHITECTURE"
== "x86"
>> get-env "PROCESSOR_IDENTIFIER"
== "x86 Family 15 Model 2 Stepping 9, GenuineIntel"
>> get-env "PROCESSOR_LEVEL"
== "15"
>> get-env "PROCESSOR_REVISION"
== "0209" Regards, Ashley

 [3/3] from: greggirwin:mindspring at: 31-May-2004 17:52


Hi Henrik, HMK> Is there any way to retrieve machine information such as CPU type, HMK> speed, memory, etc. within REBOL? Under Windows you would use the GetSystemInfo API. Below is a quick mapping of it; I can flesh out the details to make it more useful if you need, just let me know (just short of time right at the moment or I'd do it now). -- Gregg REBOL [] kernel32.dll: load/library %kernel32.dll SYSTEM_INFO: make struct! SYSTEM_INFO-def: [ ;OemID [integer!] ; Obsolete; used for NT 3.51 and < WIndows 95 ProcessorArchitecture [short] ; \_ union with OemID Reserved [short] ; / PageSize [integer!] lpMinAppAddress [integer!] lpMaxAppAddress [integer!] ActiveProcessorMask [integer!] NumberOfProcessors [integer!] ProcessorType [integer!] ; Obsolete on NT. Still used on 95. AllocationGranularity [integer!] ProcessorLevel [short] ; Not used by 95. ProcessorRevision [short] ; Not used by 95. ] none GetSystemInfo: make routine! compose/deep/only [ lpSysInfo [struct! (SYSTEM_INFO-def)] ] kernel32.dll "GetSystemInfo" get-system-info: does [GetSystemInfo SYSTEM_INFO SYSTEM_INFO] probe get-system-info free kernel32.dll halt