当前位置: 首页 > 网络应用技术

Python代码的内存占用多少(Python内存职业)

时间:2023-03-06 15:16:03 网络应用技术

  简介:许多朋友询问了Python代码占有多少记忆。本文的首席执行官注释将为您提供详细的答案,以供您参考。我希望这对每个人都会有所帮助!让我们一起看看!

  我用来编写的Vscode还不错。笔记本中8G内存的主流笔记本基本上可以胜任。硬件不高

  您可以检测到它

  在工作中,您需要根据某个应用程序中的记忆力来决定执行某些操作,因此您需要编写一个小工具来模拟应用程序的应用程序。以下是我编写的Python脚本的实现。

  #!/usr/bin/python

  # - * - 编码:UTF-8 - * -

  导入系统

  导入

  导入时间

  def print_help():

  打印“用法:”

  打印“ Python Mem.py 100MB”

  打印“ Python Mem.py 1GB”

  如果__name__ ==“ __ -main __”:

  如果Len(sys.argv)== 2:

  模式= re.compile('^(d*)([m | g] b)$')

  match = pattern.match(sys.argv [1] .upper())

  如果匹配:

  num = int(match.group(1))

  单位= match.group(2)

  如果单位=='MB':

  s ='' *(num * 1024 * 1024)

  别的:

  s ='' *(num * 1024 * 1024 * 1024)

  时间。

  别的:

  print_help()

  别的:

  print_help()

  使用方法如下:

  python mem.py 100m

  Python Mem.py 1G1212

  这是对操作系统的限制,该操作系统与Python无直接相关,因为Python是无限的。

  32-位系统:Windows下的单个进程可以使用2G内存;Linux下的单个进程可以使用4G内存。

  64-位系统:

  Windows单进程基于Intel Itanium可以用于7TB,Windows 8.1和Windows Server 2012

  R2:可用128,其他版本TBX64:8 TB

  但是,Windows系统不同版本的最大物理内存号也受到限制。例如,64位Win7家族的基本版本只能识别8G内存,而专业版或更高版本可以识别192G的内存。

  Linux下的不同发布者或不同的内核编译参数也将具有不同的限制,但根据T进行计算。

  当我们有一个长长的任务队列(mission_list)和与阈值相对应的过程输入时,我们通常使用以下方法来处理:

  但是,如果此任务列表很长,并且处理功能很复杂(占用CPU),则通常需要长时间处理单个核心。目前,多进程可以大大提高我们程序的运行速度。相关内容可以大大改进。可以大大改进相关内容。请从基于Processes-Python 3.10.4的多处理中学习--- Python 3.10.4文档。

  在上述情况下,建议您使用最简单的进程池+地图方法进行处理。标准写作,大块必须从官方声明中学习,最好要变得更大:

  但是!InterectionSigntersectionIntertements如果我们的任务列表非常长,这将导致多过程在该过程破裂之前运行,并且该任务无法完成。目前,我们有几种优化方法:

  有三种开始过程的方法。您可以参考官方文件:

  [图片上传失败...(Image-48CD3C-165051153989)]]]

  在Linux环境中,使用Forkserver可以节省大量的内存空间,因为该过程启动了服务,该服务不会复制主过程的数据。

  使用IMAP将大大节省空间,它返回迭代器,即结果列表:

  但是请注意,在上面的写作中,您编写的结果的迭代必须写下来。或以另一种方式使用:

  还有最后一个。当您的任务列表太大时,它会导致您在生成任务列表时破坏内存。此时,您可以使用屈服字段将其封装为迭代器并将其传递到过程池中:

  这样,我们封装了Mission_List,这是一个迭代对象,在获取数据时将数据拉到内存中

  我将后两个方法组合在一起。原始的256G内存还不够,但是修改后的内存仅少于10克。

  您询问Python安装程序包。如果大约是29m,那就足够了,不足以占据内存。

  最大内存受到操作系统的限制,该操作系统与Python无直接相关,因为Python是无限的。

  ABC是一种由Guido.In Guido本人设计的教学语言,ABC的语言非常美丽和强大,是为非专业程序员设计的。但是,ABC语言尚未成功。出于原因,Guido认为它没有开放。Guido决心避免在Python中进行此错误。同时,他还想实现在ABC中闪烁但尚未实现的东西。

  扩展信息:

  一种和大多数其他语言(例如C)之间的区别在于,模块的边界是由每行在该线路位置的位置确定的(并且C语言使用一对物体{}为清除边界该模块与角色的位置无关)。这引起了争议。

  因为由于语言的诞生(例如C),语言的语法含义与字符的排列分开,这被认为是编程语言的进度。所有需要使用模块,例如if,for for function定义的地方)。

  参考信息来源:百度百科全书

  结论:以上是首席CTO注释的Python代码的全部内容,以占用记忆的Python代码。我希望这对每个人都会有所帮助。如果您想进一步了解这一点,请记住要收集对该网站的关注。