W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
歷史上 Pillow 中有兩個圖像分配器:? ImagingAllocateBlock
? 和? ImagingAllocateArray
?. 第一種方法適用于小于16MB數(shù)據的圖像,并分配一大塊 ?im->linesize * im->ysize
?字節(jié)。第二個用于大圖像,并為每個掃描行的大小進行一次分配? im->linesize
?字節(jié)。這使得在一個分配和可能的數(shù)千個小分配之間實現(xiàn)了一個非常急劇的過渡,從而導致在過渡期間出現(xiàn)不可預測的性能損失。
?ImagingAllocateArray
?現(xiàn)在將圖像的空間分配為最大大小為16MB的塊鏈。如果存在內存分配錯誤,則返回到分配4KB塊,或至少一條掃描線。這現(xiàn)在是所有內部分配的默認值。
ImagingAllocateBlock 現(xiàn)在只在我們特別請求單個內存段與其他代碼共享時用于這些情況。
現(xiàn)在有一個內存池來包含最近釋放的塊的供應,然后可以重用這些塊,而不必返回操作系統(tǒng)進行新的分配。默認情況下,當前禁用自由塊的緩存,但可以使用三個環(huán)境變量啟用和調整:
??
PILLOW_ALIGNMENT
??,以字節(jié)為單位。指定內存分配的對齊方式。有效值是介于1和128之間(含1和128)的2的冪。默認值為1。?
PILLOW_BLOCK_SIZE
?,以字節(jié)、k或m為單位。指定 ?ImagingAllocateArray
?. 有效值為整數(shù),可選 k 或 m 后綴。默認為16M。?
PILLOW_BLOCKS_MAX
?指定為滿足將來的內存請求而保留的釋放塊數(shù)。超過此閾值的任何釋放塊都將立即返回到操作系統(tǒng)。默認值為0。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: