2010年9月17日金曜日

ウェブマスターツールの「サイトのパフォーマンス」画面 = ブログ読み込み時間の統計情報を見る方法 - Blogger

ウェブマスターツール
ブログの表示速度を改善しようと考えた時、表示速度の目安が欲しくなります。
そのような時は、Googleのウェブマスターツールの、「サイトのパフォーマンス」機能が便利です。


**** ウェブマスターツールの「サイトのパフォーマンス」画面で出来る事
o ページ読み込み時間の統計情報を見る(= 数か月分)
   + ページ読み込み時間の統計は、アクセス数が少ないと、精度が低いみたいです。
   + でも、ページ表示を高速化する時の、ある程度の目安になります。
o 自分のブログよりも遅いサイトの割合を見る
o 読み込み時間が早いサイト(上位20%)となる為の目標値を見る
   + 2010年9月現在、1.5秒程度でした。

o サイトを登録してから確認出来るようになるまで、何日か時間がかかります。
o でも、無料で、説明文が日本語、パソコンへのインストール不要という利点がありますので、他のツールよりは馴染み易いと思います。


**** 手順(2012年6月版)
o ウェブマスターツールにログインします。
   + Bloggerなどにログインしている場合は、自動認証されます。
   + 詳しくは、「ウェブマスターツールにログインする方法
o 確認したいサイトをクリックします。
   + サイトが見つからない時は、「サイトを追加」ボタンで追加します。
   + サイトを追加後、何日か経つと、統計情報を確認出来るようになります。
o 「ダッシュボード」画面に切り替わりますので、左のメニューから「Labs」-「サイトのパフォーマンス」


**** メモ
o HTML最適化に関する助言が欲しい時は、この画面の下の方で推奨している「Page Speed」プラグインを使う方法などがあります。
   + このプラグインは、2種類のブラウザーに対応しています。(Firefox と Google Chrome)
      + Firefox版「Page Speed」プラグインの実行には、「Firebug」プラグインも必要です。
   + 「サイトのパフォーマンス」ページの下の方から、ダウンロード出来ます。
   + 「Page Speed」プラグインの画面表示は、全部英語です。
      + 解析結果の一部が日本語化されています。

** その他
o このブログでは、ページ読み込み時間の上位50%以内に入る事を目標にしています。
o でも、トップページの居眠りミクさん(500KB)を外す予定はありません。


==
関連ページ:
    ▼ウェブマスターツール
    ▼Bloggerブログの分析とWebサービス連携
    ▼Blogger
    ▼制作メモ
    > ウェブマスターツールの「クロールエラー」画面 = 公開に失敗したページを確認する方法
    ウェブマスターツールの「検索クエリ」画面その1 = サイト訪問時に使ったWeb検索キーワードを確認する方法
    ウェブマスターツールの「検索クエリ」画面その2 = Google検索経由で表示された人気ページを確認する方法
(2012年6月2日変更。タイトル見直し。HTML最適化助言機能の削除対応)
(2012年6月1日変更。ログイン手順の変更対応)

2010年9月15日水曜日

AWKプログラムの中で、8進数や16進数を使う方法 - AWK

AWKの数値計算関数と関連機能
8進数や 16進数が大好きな方向けの情報です。

o 最低限の機能しかありませんので、不足している機能は自作します。
  + 実数を16進数表現する機能はありません。
  + 文字から文字コード(= 数値)に変換する機能もありません。


**** 手順
o 整数の値を16進数や8進数で書く方法(Gawk専用)
o 整数を16進数や8進数で表示する方法
o 16進数文字列を数値に変換する方法(Gawk専用)
o 文字列を文字コードで書く方法(= 注意事項あり)
o 文字1つを文字コードで書く方法(= 注意事項あり)


** 整数の値を16進数や8進数で書く方法(Gawk専用)
--------
v = 393; # 10進数表現

# Gawkの拡張機能
v = 0x189; # 393の 16進数表記
v = 0611; # 393の 8進数表記
--------



** 整数を16進数や8進数で表示する方法
--------
printf("%x\n", 393); # 16進数で表示
printf("%o\n", 393); # 8進数で表示
--------

o AからFを大文字にしたい時は、"%X"
o 16進数の場合、0x や 0Xを付けたい時は、"%#x" や "%#X"
o 8進数の場合、0 を付けたい時は "%#o"
o 文字にしたいだけの時は、printfの代わりに sprintfを使います。


** 16進数文字列を数値に変換する方法(Gawk専用)
o strtonum 関数を使います。
--------
v = "393" + 0; # 強制的に数値にしたい時、0と足し算します。

# Gawkの拡張機能
v = strtonum("0x189"); # 16進数表記を数値に変換
v = strtonum("0661"); # 8進数表記を数値に変換
--------

o 16進数表記の「0x」は、「0X」と書く事も出来ます。


** 文字列を文字コードで書く方法(= 注意事項あり)
o 16進数の場合「\x12」、8進数の場合「\123」の形で書きます。
o 2文字や3文字に満たない時は、数字の左を0で埋めます。
--------
v = "MikuSan";
v = "\x4d\x69\x6b\x75\x53\x61\x6e"; # 16進数表記
v = "\115\151\153\165\123\141\156"; # 8進数表記

v = "\t"; # タブ文字の場合
v = "\x09" # 16進数表記では、前ゼロを付けます。
v = "\011"; # 8進数表記でも、前ゼロを付けます。
--------

o この方法については、処理系によって制約がありますので、個別対応します。
o Gawkの場合(Gawk on Windows 3.1.7 / Gawk for Windows 3.1.6)
   + これらの処理系では、16進表記させた後に16進数となる文字が続くと、予想と異なる結果になります。
   + (例。"\x23a" は「#a」を期待して書くのですが、mawk以外では「:」コロン = 0x3a になりました。)
   + ですので、問題が起こる時は、16進数表記だけを変換して、変換結果を文字列として並べます。
o mawkの場合(mawk MBCS (32bit版) 1.3.3 / Mawk for Windows 1.3.3)
   + これらの処理系では、文字コードの 0 (= \x00)を入れると、強制終了もしくは異常終了します。
   + \x00 は、通常、目に見える文字ではありませんが、一部の文字コード(UTF-16)では、目に見える文字(= 2バイト以上あります)の一部として使用されています。
o original = the one true awk(updated May 1, 2007)の場合
   + Gawk と mawk の両方の問題を抱えています。


** 文字1つを文字コードで書く方法(= 注意事項あり)
--------
# 変数に入れる方法
v = sprintf("%c%c%c%c%c%c%c", 77,105,107,117, 83, 97,110); # 結果は MikuSan
v = sprintf("%c%c%c%c%c%c%c", 0x4d, 0x69, 0x6b, 0x75, 0x53, 0x61, 0x6e); # Gawk限定。結果は MikuSan

# 直接書き出す方法
printf("%c%c%c%c%c%c%c", 77,105,107,117, 83, 97,110); # 結果は MikuSan
--------

o 画面やファイルに書き出す時、改行コード 0x0aは、0x0d0a に自動変換されます。
   + mawkやGawkでは、変数 BINMODEを使って、この自動変換を無くす事が出来ます。
o 文字コード の 0(0x00)を文字列中に含める事が出来るのは、Gawkのみです。
   + mawkとオリジナルは、このコードを文字列変数の中に入れる事は出来ません。


==
関連ページ:
    ▼AWKの数値計算関数と関連機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > int = 実数や文字列を整数化する
    strtonum = 10進数、8進数、16進数の文字列を数値に変換する(Gawk専用)
    sqrt = 平方根を求める
    +
    AWKでバイナリ出力する方法(mawk, Gawk専用)
(2010年9月23日追加。文字1つを文字コードで書く方法)
(2010年9月16日追加。文字列を文字コードで書く時の、mawkの制限)

rshift = 整数を右にビットシフトする(Gawk専用) - AWK

AWKの数値計算関数と関連機能
○Gawk on Windows ○Gawk ×mawk32 ×Mawk ×awk
符号なし整数値であると解釈して、右にビットシフトします。(論理シフトに相当します。)
o 対応しているのは整数のみです。実数や文字列を直接演算する機能はありません。

**** 書式
--------
rshift( シフトしたい値, シフトするビット数 )
--------

o シフトしたい値 -- 整数を指定します。
   + 負の値を指定した場合、符号なし整数値であると解釈します。値は0よりも大きくなります。
o シフトするビット数 -- 正の整数を指定します。
   + 負の値を指定した場合、左シフトではなく、右に最後までシフトした所から逆算します。
o 戻り値 -- 演算結果です。符号なし整数の形になります。


**** 使用例
--------
BEGIN {
  print rshift(393, 1); # 結果は 196
  print rshift(3, 1); # 結果は 1
  print rshift(3, 2); # 結果は 0
  print rshift(0, 1); # 結果は 0
  print rshift(-1, 1); # 結果は 2147483647
  print rshift(-1, 2); # 結果は 1073741823
}
--------

o 行末のセミコロンは、C言語の書き方に合わせました。無くても動きます。


**** 機能
o 符号なし整数値であると解釈して、右にビットシフトします。(論理シフトに相当します。)
o ビットシフトして出来た左側の空きには、0が入ります。
o 負の値も指定出来ますが、結果は符号なし整数の形になります。
o 実数を指定すると、小数点以下を数学的に切り捨てます。
o 数値の後ろに文字列が続いていても、大丈夫です。
o 先頭に数値以外の文字がある場合
   + 半角空白は読み飛ばします。
   + それ以外の文字があると、0 とみなして演算します。
o この機能をサポートしていない処理系があります。

** 処理系に依存する動作
o 4294967295(= 32ビット =10桁程度)まで指定出来る処理系(= 32ビット整数)
   + Gawk on Windows 3.1.7
   + この処理系の場合、正しくシフト出来るのは 31ビットまでです。

o 4503599627370496(= 53ビット =16桁程度)まで指定出来る処理系(= おそらくdouble型に依存)
   + Gawk for Windows 3.1.6
   + この処理系の場合、正しくシフト出来るのは 52ビットまでです。


**** 確認した処理系
o Gawk on Windows 3.1.7
o Gawk for Windows 3.1.6
o mawk MBCS (32bit版) 1.3.3 -- 非対応
o Mawk for Windows 1.3.3 -- 非対応
o original = the one true awk(updated May 1, 2007) -- 非対応


==
関連ページ:
    ▼AWKの数値計算関数と関連機能▼ABC順
    ▼AWKプログラムを書く▼ABC順
    ▼AWK
    ▼制作メモ
    > OFMT = 数値から文字列への自動変換に使う書式その1。数値1つだけの時
    CONVFMT = 数値から文字列への自動変換に使う書式その2。数値と文字列を結合する時
    ?: = 条件演算子
    +
    and = AND演算する。整数をビット毎に論理積(Gawk専用)
    or = OR演算する。整数をビット毎に論理和(Gawk専用)
    xor = XOR演算する。整数をビット毎に排他的論理和(Gawk専用)
    compl = NOT演算する。整数の1の補数(Gawk専用)
    lshift = 整数を左にビットシフトする(Gawk専用)
    strtonum = 10進数、8進数、16進数の文字列を数値に変換する(Gawk専用)