首页 > 系统相关 >python 多进程multiprocessing 内存占用 物理内存 虚拟内存 windows 分析

python 多进程multiprocessing 内存占用 物理内存 虚拟内存 windows 分析

时间:2024-11-27 12:43:59浏览次数:4  
标签:python torch device 内存 time print import 虚拟内存 cuda

 

只有

import time
time.sleep(10)

 

前边加上

from torch.utils.data import Dataset

 

 

 

import torch

# 检查是否支持 CUDA
if torch.cuda.is_available():
    print("CUDA is available!")
    print(f"Device count: {torch.cuda.device_count()}")
    print(f"Current device: {torch.cuda.current_device()}")
    print(f"Device name: {torch.cuda.get_device_name(torch.cuda.current_device())}")
else:
    print("CUDA is not available.")


import time
time.sleep(10)

 

这样看来

import torch和from torch.utils.data import Dataset占用的内存是一样的

 

 

 

from transformers import AutoModelForZeroShotImageClassification, AutoProcessor

# import torch
#
# # 检查是否支持 CUDA
# if torch.cuda.is_available():
#     print("CUDA is available!")
#     print(f"Device count: {torch.cuda.device_count()}")
#     print(f"Current device: {torch.cuda.current_device()}")
#     print(f"Device name: {torch.cuda.get_device_name(torch.cuda.current_device())}")
# else:
#     print("CUDA is not available.")
import time
time.sleep(10)

中间的torch取消注释后几乎不变

 

 

 

多进程测试

from transformers import AutoModelForZeroShotImageClassification, AutoProcessor
import time

def apply_test(s):
    time.sleep(3)
    print(s)

if __name__ == '__main__':
    import multiprocessing
    pool = multiprocessing.Pool(3)
    for i in range(3):
        res = pool.apply_async(apply_test, [i])


    time.sleep(20)

 

 

 

 

import time

def apply_test(s):
    time.sleep(3)
    print(s)

if __name__ == '__main__':
    from transformers import AutoModelForZeroShotImageClassification, AutoProcessor
    import multiprocessing
    pool = multiprocessing.Pool(3)
    for i in range(3):
        res = pool.apply_async(apply_test, [i])


    time.sleep(20)

 

标签:python,torch,device,内存,time,print,import,虚拟内存,cuda
From: https://www.cnblogs.com/hhdom/p/18572127

相关文章

  • 使用cython扩展python库
    什么是CythonCython是一种静态编译的编程语言,它结合了Python的易用性和C语言的高性能,并主要用于加速Python程序和与C/C++集成。它以一种接近Python的语法编写代码,并在编译过程中将其转换为高效的C代码,从而提高运行性能。Cython的主要用途性能优化:用于加速计算......
  • GaussDB内存过载分析
    问题现象数据库进程内存占比较高长时间占比较高观察监控平台内存占用的变化曲线,无论当前数据库是否有业务在运行,数据库进程内存占总机器内存的比例长时间处于较高状态,且不下降。执行作业期间占比较高数据库进程在没有业务执行时,内存使用持续处于较低的状态,当有业务执行时,内......
  • [Python手撕]二叉树的锯齿形层序遍历
    二叉树的锯齿形层序遍历给你二叉树的根节点root,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。示例1:输入:root=[3,9,20,null,null,15,7]输出:[[3],[20,9],[15,7]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root......
  • [Python手撕]岛屿的最大面积
    LCR105.岛屿的最大面积给定一个由0和1组成的非空二维数组grid,用来表示海洋岛屿地图。一个岛屿是由一些相邻的1(代表土地)构成的组合,这里的「相邻」要求两个1必须在水平或者竖直方向上相邻。你可以假设grid的四个边缘都被0(代表水)包围着。找到给定的二维数组中......
  • python 接口自动化面试宝典
    python接口基础语法(一)python中的tuplelistsetdict在测试中的应用1.Tuple(元组):元组是不可变的序列,这使得它非常适合在测试中表示固定的、不会改变的数据集2.List(列表):列表是可以修改的序列,因此它是进行各种算法和数据操作的好工具3.Set(集合):集合是无序且不重复元素的......
  • python中urllib库和requests库的选择
    python中urllib和requests是两个最常用的库。它们都能够发送HTTP请求,但在使用方式、功能和效率上存在一些差异。一、urllib库urllib是Python标准库中的一个模块,用于发送HTTP请求。它提供了一个简单的接口来发送GET、POST等请求,并获取响应。urllib提供了一些基本的HTTP请求方......
  • 大数据学习记录,Python基础(1)
    修改pip源由于直接从python服务器下载各种插件速度较慢,我们可以通过修改下载地址的方法提高下载速度修改pip源找到系统盘下C:\Users\用户名\AppData\Roaming,APPData可能是隐藏文件,需要将隐藏关闭;查看在Roaming文件夹下有没有一个pip文件夹,如果没有创建一个;进入pip文件夹,创建一......
  • python-enumerate枚举
    对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值enumerate多用于在for循环中得到计数 语法以下是enumerate()方法的语法:enumerate(sequence,[start=0])sequence--一个序列、迭代器或其他支持迭......
  • Python dlib下载
    1下载dlib前的准备工作1.1Python3我是以前下的1.2然后是Python官网推荐的包管理Guides-PythonPackagingUserGuide1.2.1pippip我以前也下过了(好像还换了源)没下的话,官网给了下载方式。下面是Windows系统的:py-mensurepip--default-pip1.2.2更新pip,se......
  • 【数据可视化入门】Python散点图全攻略:Matplotlib、Seaborn、Pyecharts实战代码大公开
    数据可视化入门-系列文章目录Python散点图全攻略:Matplotlib、Seaborn、Pyecharts实战代码大公开!文章目录数据可视化入门-系列文章目录Python散点图全攻略:Matplotlib、Seaborn、Pyecharts实战代码大公开!前言1.Matplotlib:基础绘图库2.Seaborn:基于Matplotlib的高级绘......