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

Go 语言编译好的exe文件, 没有界面,执行后直接打开cmd运行,发现内存占用100M左右,为了保证程序代码正常吗,随便的一个最简单的代码如下,占用内存还是很大:

Go 复制代码
package main

import (
	"fmt"
)

func main() {
	var key int
	for {
		fmt.Print("input number: ")
		fmt.Scanln(&key)
		fmt.Println(key)
	}

}

最后查找资料,说是设置最大核心数为1,并手动这是垃圾回收,但是没有任何作用:

在 Go 语言中,通常不需要手动设置使用的最大核心数和垃圾回收。Go 运行时会自动管理这些资源,以提供最佳性能。

增加的代码如下:

Go 复制代码
func init() {
	// 设置使用的最大核数
	runtime.GOMAXPROCS(1)
	// 手动回收垃圾
	runtime.GC()
}

最后的解决办法:发现是计算机权限的问题,使用管理员权限运行时,占用内存一下就小了很多

在 Windows 系统上,程序以管理员权限运行和以普通用户权限运行可能会有不同的内存占用情况。这种现象可能是由于以下几个原因:

  1. 系统资源访问权限:以管理员权限运行的程序可能有更多的权限访问系统资源,从而能够更有效地管理和使用这些资源。
  2. 虚拟内存管理:Windows 操作系统可能会对不同权限级别的进程进行不同的虚拟内存管理策略。以管理员权限运行的程序可能会有更高的优先级,从而获得更好的内存管理。
  3. 安全软件干扰:某些安全软件可能会对普通用户权限的进程进行更多的监控和限制,从而导致内存占用增加。以管理员权限运行的程序可能会绕过这些限制。
  4. 系统缓存和优化:以管理员权限运行的程序可能会触发系统的某些缓存和优化机制,从而减少内存占用。
相关推荐
苏三说技术1 小时前
聊聊Redisson最常见的8个坑
后端
Funlang1 小时前
给机器写的 JavaScript 造个笼子
开发语言·javascript·ecmascript
普通人61 小时前
PHP文件读写完全指南
开发语言·php·1024程序员节
坤坤子吖2 小时前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习
一晌小贪欢2 小时前
Python基础:第 09 篇 · while 循环:重复直到不满足
开发语言·c++·python·数据可视化·面向对象·python办公
xiaoye-duck3 小时前
《C++ 项目:手写大模型接入 SDK》LLMManager架构设计与实现
开发语言·网络·c++·语言模型
一条大祥脚3 小时前
CuTe 与 CuTe DSL:从 C++ 模板元编程到 Python DSL 的 GPU 编程演进
开发语言·c++·python·cutlass·cute·cute dsl
学长毕设4 小时前
基于SpringBoot的野生动物公益保护平台设计与实现-附源码
java·spring boot·后端
梦里寻码4 小时前
我用 NestJS + Vue3 写了一套完整的研发管理系统(58 表 / 229 API / 130 项断言,全开源
前端·后端·算法
FRing034 小时前
vue2干货总结8(路由模块封装、router-link、声明式导航、路由重定向、编程式导航)
开发语言·前端·vue.js·vue2