Go语言编译的exe文件占用内存过大解决办法

打印 上一主题 下一主题

主题 1032|帖子 1032|积分 3096

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Go 语言编译好的exe文件, 没有界面,执行后直接打开cmd运行,发现内存占用100M左右,为了保证程序代码正常吗,随便的一个最简朴的代码如下,占用内存照旧很大:
  1. package main
  2. import (
  3.         "fmt"
  4. )
  5. func main() {
  6.         var key int
  7.         for {
  8.                 fmt.Print("input number: ")
  9.                 fmt.Scanln(&key)
  10.                 fmt.Println(key)
  11.         }
  12. }
复制代码
末了查找资料,说是设置最大核心数为1,并手动这是垃圾回收,但是没有任何作用:
在 Go 语言中,通常不需要手动设置利用的最大核心数和垃圾回收。Go 运行时会主动管理这些资源,以提供最佳性能。
增长的代码如下:
  1. func init() {
  2.         // 设置使用的最大核数
  3.         runtime.GOMAXPROCS(1)
  4.         // 手动回收垃圾
  5.         runtime.GC()
  6. }
复制代码
末了的解决办法:发现是盘算机权限的问题,利用管理员权限运行时,占用内存一下就小了很多
    
  在 Windows 体系上,程序以管理员权限运行和以普通用户权限运行大概会有差异的内存占用情况。这种现象大概是由于以下几个原因:
  

  • 体系资源访问权限:以管理员权限运行的程序大概有更多的权限访问体系资源,从而可以或许更有效地管理和利用这些资源。
  • 虚拟内存管理:Windows 操作体系大概会对差异权限级别的进程进行差异的虚拟内存管理计谋。以管理员权限运行的程序大概会有更高的优先级,从而得到更好的内存管理。
  • 安全软件干扰:某些安全软件大概会对普通用户权限的进程进行更多的监控和限制,从而导致内存占用增长。以管理员权限运行的程序大概会绕过这些限制。
  • 体系缓存和优化:以管理员权限运行的程序大概会触发体系的某些缓存和优化机制,从而淘汰内存占用。
  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表