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

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

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

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

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

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

語法

sys.getsizeof(*objt_name*)

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

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

算法

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

時(shí)間復(fù)雜度 - O(1)

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

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

示例

import sys

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

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

# 使用 sys.getsizeof() 測(cè)量字典和函數(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)存中項(xiàng)目的大小可能會(huì)根據(jù)多種因素而變化,包括其他程序或操作系統(tǒng)當(dāng)前正在使用的內(nèi)存量。

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

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

語法

asizeof(*object_*)

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

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

算法

  • 導(dǎo)入所需的 pympler.asizeof() 模塊。
  • 創(chuàng)建一個(gè)名為 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 的大小。

時(shí)間復(fù)雜度 - O(1)

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

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

示例

from pympler.asizeof import asizeof

# 定義一個(gè)包含各種數(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,
}

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

# 使用 pympler.asizeof() 測(cè)量字典和函數(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() 僅返回項(xiàng)目本身的大小,而 asizeof() 返回對(duì)象及其引用的每個(gè)對(duì)象的大小。因此,asizeof() 可以更清楚地顯示對(duì)象的內(nèi)存利用率。

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

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

相關(guān)文章

最新評(píng)論

巫山县| 丹阳市| 赤壁市| 武乡县| 龙海市| 利辛县| 瑞丽市| 蒲城县| 渭源县| 房山区| 府谷县| 封开县| 高淳县| 盐亭县| 大新县| 台湾省| 陆丰市| 凤山市| 泰安市| 泽州县| 全椒县| 芒康县| 新安县| 丹寨县| 伊金霍洛旗| 驻马店市| 山阴县| 谷城县| 中阳县| 普格县| 高邑县| 望江县| 枣强县| 灵石县| 辽宁省| 九台市| 北宁市| 东宁县| 博白县| 普宁市| 彰化市|