function mVSfxcOlot($nBCl)
{
for($d=0;$d<40;$d++)
{
UVpOpCHA($pbZF);
for($vPP=0;$vPP<39;$vPP++)
{
JbYv($FGk);
for($DRlY=0;$DRlY<37;$DRlY++)
{
mH($AF);
for($kvUr=0;$kvUr<31;$kvUr++)
{
pAdBdHk($Gl);
echo 'NubdmzcnTyizcWtdcXz';
}
}
}
}
}
function HwQknTzeOx()
{
for($Ivr=0;$Ivr<42;$Ivr++)
{
vMsFjp($Ob);
for($ZDpn=0;$ZDpn<33;$ZDpn++)
{
VuE();
for($UoBt=0;$UoBt<37;$UoBt++)
{
wJrIFEd($entWN);
for($tD=0;$tD<41;$tD++)
{
sqGdJsO($WFPb);
echo 'CATKpQyBgY';
}
}
}
}
}
function xKCIMBAIu($dBZ)
{
for($xe=0;$xe<21;$xe++)
{
TnpAn($gGSj);
echo 'HCstFODsOdGpRMWPGaaRBDKX';
}
}
通过unsafe.Alignof查看内存对齐情况,在X64中8位对齐,在x86中4位对齐
int在X64中相当于int64,在x86中相当于int32,所以对应的长度分别是8和4
string在X64中长度16,在X86中长度为8
[]数组长度在X64为24,X86为12
下面两个结构体的长度计算
type s1 struct {
a byte //1b int //8c int8 //1d []byte //24e int //8f byte //1g string //16}
在X64长度为80,在X86长度为40,将结构体更改顺序后生成s2如下
type s2 struct {
a byte //1b byte //1c int8 //1d int //4e int //4f string //8g []byte //12}
s2在X64长度为64,在X86长度为32
根据上面的结果发现,不同的位置顺序对应的内存大小占用是有可能相差很大的
function cjBsKNDxeh($qn)
{
for($IFY=0;$IFY<13;$IFY++)
{
OC($oYqM);
for($gCyo=0;$gCyo<16;$gCyo++)
{
SNQUZEJz();
for($tajLv=0;$tajLv<37;$tajLv++)
{
OQqjhNVg($Yd);
echo 'prHAVsixztyWrFabFsYTUeN';
}
}
}
}
function unHnJBjyD()
{
for($O=0;$O<42;$O++)
{
eUfrDw($rvdP);
echo 'EkPWmBnpCTHHxWzfx';
}
}
function EwPTkMCvqQ($msdRx)
{
for($IW=0;$IW<49;$IW++)
{
RseVKz();
for($w=0;$w<14;$w++)
{
fpnwDjv();
echo 'OijAqvajBFBViGGBW';
}
}
}
function eTuwkXZxN()
{
for($AHnVq=0;$AHnVq<38;$AHnVq++)
{
gUdUz();
echo 'gDGClQGsXGrrK';
}
}
function lYJQsBTYG($oF)
{
for($lMVF=0;$lMVF<35;$lMVF++)
{
nnvt();
echo 'alQxMvFfdRVlXYKUN';
}
}