最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

查找Python中對象使用的內(nèi)存量的兩種方法

 更新時間:2025年12月26日 10:02:20   作者:qq_25153359  
本文介紹了兩種測量Python對象內(nèi)存使用的方法,包括sys.getsizeof()和pympler.asizeof(),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

計算機系統(tǒng)中的內(nèi)存通常設置為一系列二進制數(shù)字或位。每個字節(jié)都有一個唯一的內(nèi)存位置,可用于讀取或?qū)懭胱止?jié)的值。字節(jié)可以解釋為字符、整數(shù)、浮點數(shù)或其他數(shù)據(jù)類型,用于將數(shù)據(jù)存儲在內(nèi)存中。您可以借助 pympler 內(nèi)置的 sys.getsizeof() 和 asizeof() 等工具來測量 Python 中的內(nèi)存使用情況。

方法 1:使用 Getsizeof() 函數(shù)

可以使用此函數(shù)確定對象或數(shù)據(jù)結(jié)構(gòu)所需的內(nèi)存量。需要測量其內(nèi)存大小的對象是唯一的參數(shù)。任何類型的對象(包括用戶指定的類和實例)都可以作為參數(shù)傳遞。

語法

sys.getsizeof(*objt_name*)

*objt_name* 可以接受任何對象 - 整數(shù)、字符串、函數(shù)等。

該函數(shù)以字節(jié)為單位返回給定對象的大小。

算法

  • 導入所需的 sys 模塊。
  • 創(chuàng)建一個包含各種數(shù)據(jù)類型的字典,例如字符串、整數(shù)、浮點數(shù)、列表和函數(shù)。
  • 創(chuàng)建一個函數(shù),將整數(shù) n 作為輸入并返回從 0 到 n-1 的整數(shù)列表。
  • 使用sys.getsizeof() 查找方法 create_nmbr_list 和 my_dictn 的大小。
  • 打印值。

時間復雜度 - O(1)

空間復雜度 - O(n),其中 n 是字典的大小。

以下示例說明如何創(chuàng)建一個包含列表和 lambda 函數(shù)以及其他數(shù)據(jù)類型的字典。使用 getsizeof() 函數(shù)生成長整數(shù)列表的函數(shù)。

示例

import sys

# 定義一個包含各種數(shù)據(jù)類型的字典
my_dictn = {
   "string": "Tutorials Point",
   "integer": 662,
   "float": 3.14,
   "list": [12, 22, 32, 42, 52],
   "function": lambda x: x ** 2
}

# 定義一個創(chuàng)建整數(shù)列表的函數(shù)
def create_nmbr_list(n):
    return [i for i in range(n)]

# 使用 sys.getsizeof() 測量字典和函數(shù)的大小
print("Size of dictionary using sys.getsizeof(): ", sys.getsizeof(my_dictn))
print("Size of function using sys.getsizeof(): ", sys.getsizeof(create_nmbr_list))

輸出

Size of dictionary using sys.getsizeof(): 232
Size of function using sys.getsizeof(): 144

注意 - 內(nèi)存中項目的大小可能會根據(jù)多種因素而變化,包括其他程序或操作系統(tǒng)當前正在使用的內(nèi)存量。

方法 2:使用 Asizeof( ) 函數(shù)

此函數(shù)由 Pympler 包提供,用于內(nèi)存分析和優(yōu)化。與內(nèi)置的 getsizeof() 函數(shù)不同,asizeof() 會考慮目標對象引用的所有對象的內(nèi)存使用情況。

語法

asizeof(*object_*)

*object_* 可以接受任何對象 - 整數(shù)、字符串、函數(shù)、布爾值等

該函數(shù)以字節(jié)為單位返回給定對象及其引用的大小。

算法

  • 導入所需的 pympler.asizeof() 模塊。
  • 創(chuàng)建一個名為 my_dict2 的字典,其中包含不同的數(shù)據(jù)類型。
  • 創(chuàng)建函數(shù)以生成整數(shù)列表。
  • My_dict2 和 create_int_list 的大小可以是使用 asizeof 函數(shù)記錄。
  • 使用變量 dictn_size_pympler 和 fnct_size_pympler,打印 my_dict2 和 create_int_list 的大小。

時間復雜度 - O(1)

空間復雜度 - O(n),其中 n 是字典的大小。

以下程序說明了使用 lambda 函數(shù)和其他數(shù)據(jù)類型的字典,使用 asizeof 函數(shù)查找對象使用的內(nèi)存。

示例

from pympler.asizeof import asizeof

# 定義一個包含各種數(shù)據(jù)類型的字典
my_dict2 = {
   "string": "Hello Viewers",
   "integer": 42,
   "float": 3.14,
   "list": [1, 2, 3, 4, 5],
   "set": {10, 20, 30, 40, 50},
   "boolean": True,
   "function": lambda x: x ** 2,
}

# 定義一個創(chuàng)建大型整數(shù)列表的函數(shù)
def create_int_list(i):
    return [x for x in range(i)]

# 使用 pympler.asizeof() 測量字典和函數(shù)的大小
dictn_size_pympler = asizeof(my_dict2)
fnct_size_pympler = asizeof(create_int_list)

# 打印結(jié)果
print("Size of dictionary using pympler.asizeof: ", dictn_size_pympler)
print("Size of function using pympler.asizeof: ", fnct_size_pympler)

輸出

Size of dictionary using pympler.asizeof: 384
Size of function using pympler.asizeof: 152

結(jié)論

Sys.getsizeof() 僅返回項目本身的大小,而 asizeof() 返回對象及其引用的每個對象的大小。因此,asizeof() 可以更清楚地顯示對象的內(nèi)存利用率。

雖然 sys.getsizeof() 僅返回對象本身的大小,但 asizeof() 返回程序已導入和使用的每個模塊的大小。根據(jù)所使用的 Python 版本,sys.getsizeof() 可能會做出不同的反應。

到此這篇關(guān)于查找Python中對象使用的內(nèi)存量的兩種方法的文章就介紹到這了,更多相關(guān)Python查找對象內(nèi)存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

宜兴市| 台湾省| 齐河县| 定远县| 五寨县| 新龙县| 砀山县| 库尔勒市| 柳林县| 铁岭市| 平阴县| 吴旗县| 玉龙| 遂川县| 若尔盖县| 正定县| 福海县| 樟树市| 和龙市| 星子县| 太湖县| 霍林郭勒市| 永吉县| 龙井市| 寿宁县| 双江| 济宁市| 方城县| 六盘水市| 泸定县| 吉安市| 天津市| 延津县| 铜鼓县| 庆阳市| 嘉峪关市| 梧州市| 当阳市| 无锡市| 丽江市| 苗栗市|