summaryrefslogtreecommitdiff
path: root/hw_linux.go
diff options
context:
space:
mode:
Diffstat (limited to 'hw_linux.go')
-rw-r--r--hw_linux.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/hw_linux.go b/hw_linux.go
new file mode 100644
index 0000000..d3cb116
--- /dev/null
+++ b/hw_linux.go
@@ -0,0 +1,32 @@
+package zoopb
+
+import (
+ "fmt"
+ "runtime"
+
+ "golang.org/x/sys/unix"
+)
+
+// simple memory and cpu count
+func (me *Machine) osGetMemory() {
+ // Get number of CPUs
+ numCPUs := runtime.NumCPU()
+
+ // Get total system memory
+ var sysInfo unix.Sysinfo_t
+ err := unix.Sysinfo(&sysInfo)
+ if err != nil {
+ fmt.Println("Error getting system info:", err)
+ return
+ }
+
+ // Convert memory from bytes to GB
+ m := float64(sysInfo.Totalram) * float64(sysInfo.Unit)
+ me.Memory = int64(m)
+ me.Cpus = int64(numCPUs)
+
+ // totalMemGB := float64(sysInfo.Totalram) * float64(sysInfo.Unit) / (1024 * 1024 * 1024)
+ // Print results
+ // fmt.Printf("Total Memory: %.2f GB\n", totalMemGB)
+ // fmt.Printf("Number of CPUs: %d\n", numCPUs)
+}