标签: sysinfo

sysinfo系统调用在linux上返回错误的加载平均值

我有一个C程序打印一些系统统计信息.

#include <sys/sysinfo.h>
#include <stdio.h>

int main() {
  int days, hours, mins;
  struct sysinfo sys_info;

  if(sysinfo(&sys_info) != 0)
    perror("sysinfo");

  // Uptime
  days = sys_info.uptime / 86400;
  hours = (sys_info.uptime / 3600) - (days * 24);
  mins = (sys_info.uptime / 60) - (days * 1440) - (hours * 60);

  printf("Uptime: %ddays, %dhours, %dminutes, %ldseconds\n",
                      days, hours, mins, sys_info.uptime % 60);

  // Load Averages for 1,5 and 15 minutes
  printf("Load Avgs: 1min(%ld) 5min(%ld) 15min(%ld)\n",
          sys_info.loads[0], sys_info.loads[1], sys_info.loads[2]);

  printf("Total Ram: %lluk\tFree: %lluk\n",
                sys_info.totalram …
Run Code Online (Sandbox Code Playgroud)

c linux sysinfo

7
推荐指数
1
解决办法
5627
查看次数

如何发现最终用户的系统性能设置?

如何发现最终用户的系统性能设置(视觉效果等)?我想让我的WPF应用程序与这些设置兼容.

是否有任何标准例程可以执行此操作,还是只需读取sysinfo?

c# wpf performance sysinfo

6
推荐指数
1
解决办法
128
查看次数

无法理解sysinfo返回的负载

要在linux中找到平均负载,我使用sys/sysinfo.h,其中包括linux/kernel.h,其中定义了以下结构:

struct sysinfo {
long uptime;            /* Seconds since boot */
unsigned long loads[3];     /* 1, 5, and 15 minute load averages */
unsigned long totalram;     /* Total usable main memory size */
unsigned long freeram;      /* Available memory size */
unsigned long sharedram;    /* Amount of shared memory */
unsigned long bufferram;    /* Memory used by buffers */
unsigned long totalswap;    /* Total swap space size */
unsigned long freeswap;     /* swap space still available */
unsigned short procs; …
Run Code Online (Sandbox Code Playgroud)

c sysinfo

6
推荐指数
2
解决办法
2777
查看次数

Golang 检索应用程序正常运行时间

我正在尝试检索我的Go应用程序的当前正常运行时间。

我已经看到有一个包syscall提供了type Sysinfo_t一个方法Sysinfo(*Sysinfo_t),它显然允许您检索正常运行时间(因为它是Sysinfo_t结构的一个字段)

到目前为止我所做的是:

sysi := &syscall.Sysinfo_t{}

if err := syscall.Sysinfo(sysi); err != nil {
    return http.StatusInternalServerError, nil
}
Run Code Online (Sandbox Code Playgroud)

问题是在编译时我得到了这个:

/path/to/file/res_system.go:43: undefined: syscall.Sysinfo_t
/path/to/file/res_system.go:45: undefined: syscall.Sysinfo
Run Code Online (Sandbox Code Playgroud)

我已经搜索了一点,显然该方法和类型仅在 Linux 上可用,我需要该应用程序在 Linux 和 OsX(我目前正在使用)上运行。

是否有一种交叉兼容的方式来检索应用程序正常运行时间?

注意:我宁愿不使用任何第三方库(除非它们是绝对必要的)

system-calls uptime cross-compiling go sysinfo

6
推荐指数
1
解决办法
6831
查看次数

Linux中"sysinfo.h"的Mac OS X等效头文件

sysinfo.h在Linux中是否有任何Mac OS X等效头文件.我正在将代码从Linux移植到Mac但是struct sysinfo找不到结构.

编辑:==更多信息==在Linux平台上,我使用的是一个<sys/sysinfo.h>在Mac中找不到的头文件.通过在Linux中包含标头,我执行以下操作: struct sysinfo s; sysinfo(&s);

结果给了我一些系统相关的信息.现在,当我将项目从Linux移植到Mac时,我想知道Mac是否有任何类似的功能.

请帮忙.

提前致谢.

linux macos porting sysinfo

4
推荐指数
1
解决办法
7273
查看次数

如何从 Mac 上的 Golang 代码获取总 RAM?

我在 golang 中有一些 Linux 代码:

import "syscall"

var info syscall.Sysinfo_t
err := syscall.Sysinfo(&info)
totalRam := info.Totalram
Run Code Online (Sandbox Code Playgroud)

我想将其移植到 Mac OS X。我看到 Sysinfo 在 Linux 上可用,但在 Mac 上不可用:

Linux:

$ go list -f '{{.GoFiles}}' syscall | sed -e "s/[][]//g" | xargs fgrep --color -Iwn Sysinfo
syscall_linux.go:962://sysnb    Sysinfo(info *Sysinfo_t) (err error)
zsyscall_linux_amd64.go:822:func Sysinfo(info *Sysinfo_t) (err error) {\
Run Code Online (Sandbox Code Playgroud)

苹果电脑:

$ go list -f '{{.GoFiles}}' syscall | sed -e "s/[][]//g" | xargs fgrep --color -Iwn Sysinfo
# No results
Run Code Online (Sandbox Code Playgroud)

在 Mac 上获取系统 RAM 信息的正确方法是什么?

macos go sysinfo

1
推荐指数
1
解决办法
504
查看次数

标签 统计

sysinfo ×6

c ×2

go ×2

linux ×2

macos ×2

c# ×1

cross-compiling ×1

performance ×1

porting ×1

system-calls ×1

uptime ×1

wpf ×1