• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > golang如何限制内存

golang如何限制内存

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了golang 内存泄漏,golang 内存,golang,golang语言,golang教程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:golang 如何限制内存
描述:


package main import ( "fmt" "syscall" ) func f(i int) int { if i < 10000 { i++ fmt.Println(i) a := make([]byte, 100) a = append(a, byte(1)) b := f(i) return b } else { return i } } func main() { var rlimit syscall.Rlimit rlimit.Cur = 1 rlimit.Max = 2 //syscall.Setrlimit(syscall.RLIMIT_CPU, &rlimit) rlimit.Cur = 100 //以字节为单位 rlimit.Max = rlimit.Cur + 1024 err := syscall.Setrlimit(syscall.RLIMIT_STACK, &rlimit) if err != nil { panic(err) } f(0) /* for i := 0; i < 1000000; i++ { for j := 0; j < 100000; j++ { for q := 0; q < 1000; q++ { a = append(a, []byte{1, 2, 3}...) } } } */ }

我想要用rlimit系统调用限制进程的资源.
如果去掉注释,可以限制时间,但是不知道为什么限制不了内存.
go的内存似乎是在堆上分配的,怎样统计比较合适呢?
另外:golang下面没有ptrlimit调用,如果要限制子进程的资源的话应该怎么办?


解决方案1:

要统计内存,可以使用 runtime.MemProfile。

go 完全不使用 stack,所有内存都在堆上分配,有可能你 Setrlimit 是因为这个原因不工作,不过我不太确定。

prlimit 也许是因为无法跨平台才没有的吧,你如果需要自己用 cgo 写一个,go 和 c 语言集成极度的方便,你可以看看文档自己写一下。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • golang如何限制内存

相关文章

  • 2017-06-05 CSR蓝牙MESH网络开发
  • 2017-06-05 现在智能手环很火,如何设计啊
  • 2017-06-05 WinCE60不能安装pocketSOAParmCAB
  • 2017-06-05 菜鸟求助I2C,V4L2,找不到设备
  • 2017-06-05 wince启动慢,运行慢的原因?
  • 2017-06-05 从打开记事本输入几字母到保存,这中间都发生了什么、
  • 2017-06-05 为什么我的红外避障装置的两个指示灯通上电以后就会都亮着
  • 2017-06-05 如何把驱动程序文件打包成方便使用的安装文件呢?!
  • 2017-06-05 Workbench30_VxWorks66如何删除干净
  • 2017-06-05 关于。exe文件在wince60自启动的问题

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 我写了个66的矩阵键盘程序,没按下的时候怎么显示有键按下,内有程序和原理图
    • 请各位专家来帮助我下谢谢
    • 大神help,串口通信在笔记本上一直没有问题,台式机就是不对
    • vxworks以太网协议栈问题
    • 电信与网通各放一台服务器,一个域名,怎么实现访问的
    • 关于GSMPDU发送模式的问题
    • stm32中的程序是在RAM里还是flash里执行?
    • ARM板自身的四通道ADC采集的声音波形怎么会这样?
    • NTDDK编译的驱动注册后无法启动
    • 请教下串口的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有