Pesan kesalahan ini disajikan, ada saran?
Ukuran memori yang diizinkan dari 33554432 byte habis (mencoba mengalokasikan 43148176 byte) dalam php
php
memory-management
memory-limit
panidarapu
sumber
sumber
Jawaban:
Akhirnya saya menemukan jawabannya:
Cukup tambahkan baris di bawah ini sebelum baris Anda mendapatkan kesalahan dalam file Anda
ini_set('memory_limit', '-1');
Ini akan mengambil penggunaan server memori yang tidak terbatas, itu berfungsi dengan baik.
Terima kasih telah memberikan saran teman.
sumber
UNLIMITED
.Berikut adalah dua metode sederhana untuk meningkatkan batas hosting bersama:
Jika Anda memiliki akses ke file PHP.ini Anda, ubah baris dalam PHP.ini Jika baris Anda menunjukkan 32M coba 64M:
memory_limit = 64M ; Maximum amount of memory a script may consume (64MB)
Jika Anda tidak memiliki akses ke PHP.ini coba tambahkan ini ke file .htaccess:
php_value memory_limit 64M
sumber
Script Anda menggunakan terlalu banyak memori. Ini sering dapat terjadi dalam PHP jika Anda memiliki loop yang tidak terkendali dan Anda membuat objek atau menambahkan ke array pada setiap lintasan loop.
Periksa loop tak terbatas.
Jika bukan itu masalahnya, coba dan bantu PHP dengan menghancurkan objek yang Anda selesaikan dengan menyetelnya menjadi nol. misalnya.
$OldVar = null;
Periksa kode di mana kesalahan sebenarnya terjadi juga. Apakah Anda berharap saluran itu mengalokasikan sejumlah besar memori? Jika tidak, coba dan cari tahu apa yang salah ...
sumber
Melakukan:
tidak pernah baik. Jika Anda ingin membaca file yang sangat besar, ini adalah praktik terbaik untuk menyalinnya sedikit demi sedikit. Coba kode berikut untuk praktik terbaik.
sumber
while
loop:fclose($file)
Sayangnya mudah diprogram dalam PHP dengan cara yang menghabiskan memori lebih cepat dari yang Anda sadari. Menyalin string, array dan objek daripada menggunakan referensi akan melakukannya, meskipun PHP 5 seharusnya melakukan ini lebih otomatis daripada di PHP 4. Tetapi berurusan dengan set data Anda secara keseluruhan melalui beberapa langkah juga boros dibandingkan dengan memproses unit logis terkecil. pada suatu waktu. Contoh klasik bekerja dengan hasil yang besar dari database: kebanyakan programmer mengambil seluruh hasil ke dalam array dan kemudian mengulanginya satu atau lebih kali dengan
foreach()
. Jauh lebih efisien dalam menggunakanwhile()
loop untuk mengambil dan memproses satu baris pada satu waktu. Hal yang sama berlaku untuk memproses file.sumber
Jika Anda ingin membaca file besar, Anda harus membacanya sedikit demi sedikit alih-alih membacanya sekaligus.
Ini matematika sederhana: Jika Anda membaca file besar 1 MB sekaligus, maka dibutuhkan setidaknya 1 MB memori pada saat bersamaan untuk menyimpan data.
Jadi, Anda harus membacanya sedikit demi sedikit menggunakan
fopen
&fread
.sumber
$fh = fopen($folder.'/'.$filename, "rb") or die(); $buffer = 1024*1024; while (!feof($fh)) { print(fread($fh, $buffer)); flush(); } fclose($fh);
Saya menghadapi masalah yang sama di php7.2 dengan laravel 5.6. Saya hanya menambah jumlah variabel
memory_limit = 128M
di php.ini sesuai permintaan aplikasi saya. Mungkin 256M / 512M / 1048M ..... Sekarang berfungsi dengan baik.sumber
Saya juga mengalami masalah yang sama, mencari file phpinfo.ini, php.ini atau .htaccess tidak berhasil. Akhirnya saya melihat beberapa file php, membukanya dan memeriksa kode-kode di dalamnya untuk memori. Akhirnya solusi ini adalah apa yang saya hasilkan dan itu berhasil untuk saya. Saya menggunakan wordpress, jadi solusi ini mungkin hanya berfungsi untuk masalah batas ukuran memori wordpress. Solusi saya, buka file default-constants.php di folder / public_html / wp-include . Buka file itu dengan editor kode, dan temukan pengaturan memori di bawah
wp_initial_constants
cakupan, atau cukup Ctrl + F untuk menemukan kata "memori". Di sana Anda akan datangWP_MEMORY_LIMIT
danWP_MAX_MEMORY_LIMIT
. Tingkatkan saja, itu 64 MB dalam kasus saya, saya meningkatkannya menjadi 128 MB dan kemudian menjadi 200 MB.Btw, tolong jangan lakukan kode berikut, karena itu praktik buruk:
sumber
wp-config.php
sebagai gantinya, di mana mereka tidak akan ditimpa oleh pembaruan WordPress di masa mendatang. Juga, beberapa plugin keamanan (seperti WordFence, misalnya) akan mengeluh jika file WordPress 'inti' diubah ...wp-config.php
dan menambahkan dua baris di sana (i. E.define( 'WP_MEMORY_LIMIT', '200M' );
Dandefine( 'WP_MAX_MEMORY_LIMIT', '256M' );
. Tidak seperti file pada 'core' WP (yaitu, semuanya di bawahwp-includes
), yang akan ditimpa oleh upgrade WP,wp-config.php
tidak akan - itu ada di sana persis untuk tujuan yang tepat untuk mengesampingkan konstanta WP!-1
baik untuk proses jangka pendek. Misalnya wadah pembangun php yang digunakan untuk menjalankan pengujian unit atau pemasangan komposer / dll. Hanya saja, jangan menjalankan situs produksi Anda dengan itu diatur seperti itu.Anda dapat meningkatkan memori yang diizinkan untuk skrip php dengan mengeksekusi baris berikut di atas semua kode dalam skrip:
Dan juga de mengalokasikan variabel yang tidak diinginkan dalam skrip.
Periksa perpustakaan php ini: Membebaskan memori dengan PHP
sumber
sumber
Saya perhatikan banyak jawaban hanya mencoba untuk meningkatkan jumlah memori yang diberikan ke skrip yang memiliki tempat tetapi lebih sering itu berarti bahwa ada sesuatu yang terlalu liberal dengan memori karena jumlah volume atau ukuran yang tidak terduga. Jelas jika Anda bukan penulis skrip Anda atas belas kasihan penulis kecuali jika Anda merasa ambisius :) PHP docs bahkan mengatakan masalah memori disebabkan oleh " skrip yang ditulis dengan buruk "
Harus disebutkan bahwa
ini_set('memory_limit', '-1');
(tanpa batas) dapat menyebabkan ketidakstabilan server0 bytes free = bad things
. Alih-alih, temukan keseimbangan yang masuk akal dengan apa yang coba dilakukan skrip Anda dan jumlah memori yang tersedia pada mesin.Pendekatan yang lebih baik: Jika Anda adalah penulis skrip (atau ambisius), Anda dapat men-debug masalah memori tersebut dengan xdebug . Versi terbaru (2.6.0 - dirilis 2018-01-29) mengembalikan profil memori yang menunjukkan kepada Anda apa panggilan fungsi yang menghabiskan banyak memori. Itu memperlihatkan masalah dalam skrip yang sulit ditemukan. Biasanya, inefisiensi berada dalam satu lingkaran yang tidak mengharapkan volume yang diterimanya, tetapi setiap kasus akan dibiarkan sebagai latihan untuk pembaca :)
The dokumentasi Xdebug membantu, tapi itu bermuara pada 3 langkah:
apt-get
danyum
lain - lainxdebug.profiler_enable = 1
,xdebug.profiler_output_dir = /where/ever/
sumber
Jika Anda mencoba membaca file, itu akan memakan memori dalam PHP. Misalnya, jika Anda mencoba membuka dan membaca file MP3 (seperti, katakanlah, $ data = file (" http://mydomain.com/path/sample.mp3 ") itu akan menarik semuanya ke dalam memori .
Seperti yang disarankan Nelson, Anda dapat bekerja untuk meningkatkan batas memori maksimum jika Anda benar-benar perlu menggunakan memori sebanyak ini.
sumber
Kami memiliki situasi yang serupa dan kami mencoba memberikan di bagian atas jawaban ini_set ('memory_limit', '-1'); dan semuanya bekerja dengan baik, file gambar terkompresi lebih besar dari 1MB ke KB.
sumber
Menulis
ini_set('memory_limit', '-1');
di index.php Anda di bagian atas setelah membuka tag php
sumber
Saya menerima pesan kesalahan yang sama setelah beralih ke tema baru di Wordpress. PHP menjalankan versi 5.3 jadi saya beralih ke 7.2. Itu memperbaiki masalah.
sumber
Jika Anda menggunakan hosting bersama, Anda tidak akan dapat memaksakan kenaikan dalam batas ukuran php.
Cukup buka cpanel Anda dan tingkatkan versi php Anda ke 7.1 dan di atasnya maka Anda bisa melanjutkan.
sumber
pengguna wordpress menambahkan baris:
@ini_set('memory_limit', '-1');
di wp-settings.php yang dapat Anda temukan di folder root diinstal wordpress
sumber
Saya belum memperbarui hosting saya dan database-nya hanya baca. Joomla perlu menulis sesi dan tidak bisa melakukannya.
sumber
Saya memiliki masalah yang sama dengan menjalankan php pada command line. Baru-baru ini, saya mengubah file php.ini dan melakukan kesalahan saat mengganti php.ini
Ini untuk php7.0
Saya telah menetapkan
memory_limit = 256
(yang berarti256 bytes
)alih-alih
memory_limit = 256M
(yang berarti256 Mega bytes
).Setelah saya memperbaikinya, proses saya mulai berjalan dengan baik.
sumber
Jalankan perintah ini di direktori root Magento Anda
php -d memory_limit=4G bin/magento
sumber
jika Anda menggunakan laravel maka gunakan cara ini
public function getClientsListApi(Request $request){ print_r($request->all()); //for all request print_r($request->name); //for all name }
dari pada
public function getClientsListApi(Request $request){ print_r($request); // it show error as above mention }
sumber