相変わらずデフォルトで LTE が使えないので
いつものあいつをダウンロード
http://appldnld.apple.com/iOS6.1/041-6487.20130128.Ihb56/iPhone5,2_6.1_10B143_Restore.ipsw
2013年1月29日火曜日
2013年1月2日水曜日
php の 変数と定数の比較2
Writeに引き続き
Readを検証
■ 検証2 Read
以下のコードで検証を行う
比較を行わせることで READ を発生させる
DEFINE read_test1.php
変数 read_test2.php
結果
メモリの使用量が違うのは前回の検証結果でわかっていたこと
参照時は変数のほうが早いことがわかった
ループの中での条件判定等でDEFINE参照するよりも
外側でいったん変数に格納しループ内判定処理に持ち込むのがよいと思われる
Readを検証
■ 検証2 Read
以下のコードで検証を行う
比較を行わせることで READ を発生させる
DEFINE read_test1.php
<?php
define('VALUE', 99999999);
for ($i = 0; $i < 1000000; $i++) {
if ($i < VALUE) {
}
}
echo memory_get_usage();
?>
変数 read_test2.php
<?php
$VALUE = 99999999;
for ($i = 0; $i < 1000000; $i++) {
if ($i < $VALUE) {
}
}
echo memory_get_usage();
?>
結果
$ time php read_test.php 620600 real 0m0.289s user 0m0.281s sys 0m0.008s
$ time php read_test2.php 620328 real 0m0.164s user 0m0.153s sys 0m0.010s
メモリの使用量が違うのは前回の検証結果でわかっていたこと
参照時は変数のほうが早いことがわかった
ループの中での条件判定等でDEFINE参照するよりも
外側でいったん変数に格納しループ内判定処理に持ち込むのがよいと思われる
php の 変数と定数の比較
あけましておめでとうございます。
phpの書初め?がてら先日ふと気になったことがあったので検証してみました。
変数で値を持つのと定数(DEFINE)で値を持つとなにが違うのかと・・・
■ 検証1 Write
以下のコードを用いて検証
DEFINE (test1.php)
変数 (test2.php)
結果
Writeの部では DEFINE のほうが早いようです。ただし反面して
変数定義のほうがメモリ使用量が少ないことが判明
変数の長さとか関係あるのかな?と思い以下コードも念のため実行
DEFINE
変数
結果
引き続き readの検証に移ります
phpの書初め?がてら先日ふと気になったことがあったので検証してみました。
変数で値を持つのと定数(DEFINE)で値を持つとなにが違うのかと・・・
■ 検証1 Write
以下のコードを用いて検証
DEFINE (test1.php)
<?php
define('P_1','1');
define('P_2','2');
define('P_3','3');
define('P_4','4');
define('P_5','5');
define('P_6','6');
define('P_7','7');
define('P_8','8');
define('P_9','9');
define('P_10','10');
define('P_11','11');
・・・10万まで繰り返す・・・
define('P_100000','100000');
echo memory_get_usage();
?>
変数 (test2.php)
<?php $P_1 = 1; $P_2 = 2; $P_3 = 3; $P_4 = 4; $P_5 = 5; $P_6 = 6; $P_7 = 7; $P_8 = 8; $P_9 = 9; $P_10 = 10; $P_11 = 11; ・・・10万まで繰り返す・・・ $P_100000 = 100000; echo memory_get_usage(); ?>
結果
$ time php test1.php 53942304 real 0m0.513s user 0m0.465s sys 0m0.047s
$ time php test2.php 38990512 real 0m11.841s user 0m11.800s sys 0m0.030s
Writeの部では DEFINE のほうが早いようです。ただし反面して
変数定義のほうがメモリ使用量が少ないことが判明
変数の長さとか関係あるのかな?と思い以下コードも念のため実行
DEFINE
<?php
define('P_000001','000001');
define('P_000002','000002');
define('P_000003','000003');
define('P_000004','000004');
define('P_000005','000005');
define('P_000006','000006');
define('P_000007','000007');
define('P_000008','000008');
define('P_000009','000009');
define('P_000010','000010');
define('P_000011','000011');
define('P_000012','000012');
・・・10万まで繰り返す・・・
define('P_100000','100000');
echo memory_get_usage();
?>
変数
<?php $P_000001 = 000001; $P_000002 = 000002; $P_000003 = 000003; $P_000004 = 000004; $P_000005 = 000005; $P_000006 = 000006; $P_000007 = 000007; $P_000008 = 000008; $P_000009 = 000009; $P_000010 = 000010; $P_000011 = 000011; ・・・10万まで繰り返す・・・ $P_100000 = 100000; echo memory_get_usage(); ?>
結果
$ time php test3.php 53942304 real 0m0.507s user 0m0.453s sys 0m0.054s
$ time php test4.php 38990512 real 0m12.174s user 0m12.133s sys 0m0.029sはい、変わりませんでした~
引き続き readの検証に移ります
2012年12月9日日曜日
SQUID: Your cache is running out of filedescriptors
SQUID で 以下のエラーが出た場合・・・
Your cache is running out of filedescriptors
要はファイルでスクリプタが足りませんよ~というエラー
1. 現在のSquidの状態を確認
# squidclient -p 8080 mgr:info | grep ‘file descri’
Maximum number of file descriptors: 1024
Available number of file descriptors: 1010
Reserved number of ile descriptors: 100
大概、ここの Maximum に引っかかっている
2. 調整 squid.conf
max_filedesc 数値
を追記
保存後 Squid を restart すれば 新しい値にて設定される
3. ついでに OS側も調整
/etc/sysctl.conf
に
fs.file-max = 数値(大体 65536)
を追記
sysctl -p
にて 設定を適用する
Your cache is running out of filedescriptors
要はファイルでスクリプタが足りませんよ~というエラー
1. 現在のSquidの状態を確認
# squidclient -p 8080 mgr:info | grep ‘file descri’
Maximum number of file descriptors: 1024
Available number of file descriptors: 1010
Reserved number of ile descriptors: 100
大概、ここの Maximum に引っかかっている
2. 調整 squid.conf
max_filedesc 数値
を追記
保存後 Squid を restart すれば 新しい値にて設定される
3. ついでに OS側も調整
/etc/sysctl.conf
に
fs.file-max = 数値(大体 65536)
を追記
sysctl -p
にて 設定を適用する
2012年12月2日日曜日
kernel: Clocksource tsc unstable
CentOS 6.3 仮想のゲストOSで
/var/log/messages に大量の
kernel: Clocksource tsc unstable (delta = XXXXXXXXX ns). Enable clocksource failover by adding clocksource_failover kernel parameter.
というログが出ていた。
仮想サーバーが 時刻同期のためにCPUのクロックカウンターをベースにしている故に発生するもののようです
最近のCPUはターボブーストやらスピードステップやらとクロック変動させるため
unstabe = 不安定だよ!って出ているみたいです
解決策:
以降のメッセージにあるとおり
Enable clocksource failover
をすればいいわけであり
代替のclocksource を用意すればいいってことですね
clocksource は 以下
# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
kvm-clock tsc acpi_pm
自分は acpi_pm を使うので
ゲストOS上の
/etc/grub.conf のカーネルパラメーターに clocksource_failover=acpi_pm を追加
kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg_web01-lv_root rd_NO_LUKS rd_LVM_LV=vg_web01/lv_root rd_NO_MD crashkernel=auto clocksource_failover=acpi_pm KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_web01/lv_swap LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
/var/log/messages に大量の
kernel: Clocksource tsc unstable (delta = XXXXXXXXX ns). Enable clocksource failover by adding clocksource_failover kernel parameter.
というログが出ていた。
仮想サーバーが 時刻同期のためにCPUのクロックカウンターをベースにしている故に発生するもののようです
最近のCPUはターボブーストやらスピードステップやらとクロック変動させるため
unstabe = 不安定だよ!って出ているみたいです
解決策:
以降のメッセージにあるとおり
Enable clocksource failover
をすればいいわけであり
代替のclocksource を用意すればいいってことですね
clocksource は 以下
# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
kvm-clock tsc acpi_pm
自分は acpi_pm を使うので
ゲストOS上の
/etc/grub.conf のカーネルパラメーターに clocksource_failover=acpi_pm を追加
kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/mapper/vg_web01-lv_root rd_NO_LUKS rd_LVM_LV=vg_web01/lv_root rd_NO_MD crashkernel=auto clocksource_failover=acpi_pm KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_web01/lv_swap LANG=ja_JP.UTF-8 rd_NO_DM rhgb quiet
登録:
投稿 (Atom)