内存耗尽(最小脚本)

问题描述 投票:9回答:1

这是以前从未发生过的事情。

我收到Allowed memory size of X bytes exhausted但我的脚本几乎没有使用任何记忆。

我用最少的代码创建了一个小的测试脚本,但它仍然失败了!

$ cat x.php
#!/usr/bin/env php
<?php

function ha($msg) {

}

ha("Hi");

$ ./x.php

Fatal error: Allowed memory size of 62914560 bytes exhausted (tried to allocate 1081028648 bytes) in x.php on line 4

有趣的是,如果我删除函数的$msg参数,它不会发出警告。如上所述,我以前从未发生过这种情况。 php.ini也是正常的。

系统信息:

$ php -v
PHP 5.6.19 (cli) (built: Jun 22 2016 20:13:44)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
$ php -m
[PHP Modules]
bcmath
calendar
Core
ctype
date
dom
ereg
exif
filter
gd
hash
json
libxml
mbstring
openssl
pcntl
pcre
PDO
pdo_sqlite
posix
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]
$ df -h
Filesystem                Size      Used Available Use% Mounted on
ubi0:rootfs             362.9M    122.2M    240.7M  34% /
tmpfs                    40.0K         0     40.0K   0% /mnt/.splash
none                      1.0M    116.0K    908.0K  11% /dev
/dev/sda1                56.8G      5.4G     48.5G  10% /media/sda1
tmpfs                    50.0M     72.0K     49.9M   0% /var/volatile
tmpfs                   123.9M         0    123.9M   0% /dev/shm
tmpfs                    20.0M         0     20.0M   0% /media/ram
$ cat /proc/meminfo
MemTotal:         253712 kB
MemFree:          179720 kB
php
1个回答
2
投票

哇我从没想过我会遇到这样的事情。

发生这种情况的原因是因为在二进制文件中有一点(!!)被翻转。

我用新的二进制代替了二进制文件,它再次起作用。

这是两个二进制文件的区别:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.