解決PHP陣列記憶體耗用太多的問題

2021-07-11 12:33:55 字數 593 閱讀 3175

一般來說,php陣列的記憶體利用率只有 1/10, 也就是說,乙個在c語言裡面100m 記憶體的陣列,在php裡面就要1g。

特別是在php作為後台伺服器的系統中,經常會出現記憶體耗費太大的問題。

因為這個是語言的問題,常規方案比較難以解決。下面是一種通過string 解決的方案。

$total

=100000

;$double=""

;for($i

=0; $i

<

$total

; $i++)

for($i=

0; $i<

$total

; $i++)

這個例子用乙個string 儲存乙個double 的陣列。然後在使用的時候unpack出來。

當然,這會影響效能。要看具體的需求。

比如這樣的情況下:

你有10個陣列,每個陣列10m (1百萬資料左右),那麼十個要花費 100m記憶體。

再加上10個人併發的話,記憶體就會嚴重不夠了。

然後,在10個陣列,不是每次都同時使用的。你可以,把他們儲存成string

然後,在使用的時候,unpack某乙個string變成乙個陣列。

memmove 解決記憶體拷貝時記憶體重疊的問題

記憶體重疊 拷貝的目的位址在源位址範圍內。所謂記憶體重疊就是拷貝的目的位址和源位址有重疊。在函式strcpy和函式memcpy都沒有對記憶體重疊做處理的,使用這兩個函式的時候只有程式設計師自己保證源位址和目標位址不重疊。使用memmove函式可解決記憶體重疊問題。memmove函式對記憶體重疊做了處...

PHP 解決PHP和MySQL的中文亂碼問題

php連線資料庫的時候經常會出現中文亂碼,一般只需要檢查編碼是否統一就可以解決亂碼問題。1.資料庫的字元編碼 可以將將所有編碼設定為utf 8。這樣在資料庫中就能正常顯示中文了,phpadmin預設的就是utf 8編碼。2.頁面檔案的字元編碼 在編輯器中右擊,選擇編碼方式也為utf8即可。3.php...

解決記憶體不可read和written的問題

解決記憶體不能為read的工具 收錄大家解決系統記憶體不能為 read 的方法 最後我再強調一下,不是所有的電腦問題我們普通人都能搞得清摸得透的,以上的的方法即使都已試過,誰也不能保證一定能夠解決你的問題,因為電腦的問題的確很複雜,不能為read 這僅僅是乙個症狀,單憑這乙個小小的症狀是很難一下子找...