>  > (クーポン配布中)X.A.M A3207-54 428-54T スプロケット A3207-54
clazzio シートカバー センターレザータイプ 日産 ムラーノ 型式 TZ50 年式 H16/9-H20/9 定員 5人 グレード 250XL ≪ リアシート4:6分割型シート車用 ≫※350XV/350XV-FOUR/アルテロセット/アルテカベルネ/純正本革シート車不可 トヨタ ノア 80系ワイド 16インチ アルミホイール 一台分(4本) RIZLEY ZEFICE X (ライツレー ゼファイス エックス) マシニングブラック アルミ 【アクセラスポーツ ダウンサス】 BM5AS H25/11~28/7 4WD 1.5L 15C / 15S / 15Sツーリング ESPELIR(ESM-2045module.jp Apache & Perl Module Information.

Blog

(クーポン配布中)X.A.M A3207-54 428-54T スプロケット A3207-54

By Hiroyuki OYAMA Wed Feb 9 01:57:04 2005

Apache 2.0はリクエスト処理の所要時間を秒単位(%T)とマイクロ秒単位(%D)で記録できますが、Apache 1.3の場合は秒単位(%T)でしか記録できません プロジェクトミュー ブレーキパッド B-SPEC リア用 ファミリア BG8Z(車台No.101880~) 89.1~91.1 送料無料。ってなわけでApache 1.3でマイクロ秒精度で記録する方法。

(クーポン配布中)X.A.M A3207-54 シートカバー 428-54T 165/65R14 スプロケット A3207-54

Apache 2.0系の場合、内部的にマイクロ秒単位で時間を管理しているのでLogFormatディレクティブで%Tで秒単位、%Dでマイクロ秒単位で処理の所要時間を記録できます。その点Apache 1.3の場合は内部的に秒単位で時間を管理しているため秒単位でしか記録できません。ではどうすれば記録できるようになるのか? そこはやはりモジュールをチョロっと書くのです。

Apache1.3でマイクロ秒のログを出力するには

自分でゼロからmod_log_config相当のモジュールを書くことでも対応できますが、さすがにそれは面倒です。というわけで今回はリクエスト処理の所要時間を計測し、その結果をApacheの環境変数にセットしログに記録する方法で対応してみます 。

(クーポン配布中)X.A.M A3207-54 428-54T スプロケット A3207-54激安商品のご紹介


GPS&フルセグ用フィルムアンテナセット イクリプス/パナソニック用 VR-1 ADG-7407


(クーポン配布中)X.A.M A3207-54 428-54T スプロケット A3207-54 【メーカー在庫あり】 ユーカナヤ U-KANAYA ビレットレバーセット 可倒式Rタイプ 12年-15年 トライアンフ スピードトリプルR 赤 TR019-048-0705 JP店

↓↓↓P.MU EURO ECO ALFAROMEO GIULIETTA Quadrifogio 94018 12/02~ フロント;初売2019 クーポン最大1200円OFF配布中 2本セット 新品タイヤ EAGLE RV-F 175/65R15 175/65-15 グッドイヤー 低燃費 GOODYEAR 15インチ サマータイヤ;プロジェクトμ SPORTS REAR SHOE ワゴンR CV21S (4WD-TURBO) 車台No.150001~ 95.10~98.10 用, 17インチ サマータイヤ セット【アクセラスポーツ(BL系)】MID RMP 016F ブラッシュド/フィニッシュ 7.0Jx17ヨコハマ エコス ES31 205/50R17, 11y- クライスラー 300 300C クローム テールライトリム, 電菱 SD3500-148 DC-AC正弦波インバータSDシリーズ【代引き不可・直送のみ】, ミシュラン Pilot Sport PS2 N3 サマータイヤ 225/45R17 RAYS GRAM LIGHTS 57Transcend 17 X 7 +42 5穴 114.3;HKS エッチ・ケー・エス SUPER FIRE RACING M40i 3本セット ネイキッド DOHC L750S/L760S EF-VE 99/11~01/12 ISOタイプ NGK8番相当 プラグ 16インチ サマータイヤ セット【適応車種:ヴォクシー(80系 5ナンバー)】HOT STUFF Gスピード P01 ガンメタポリッシュ 6.5Jx16エナセーブ RV504 195/60R16↓↓↓●塗装サービス付き●●ホットホイールズ●ハイエース 200系 標準ボディ スタイリッシュピラーカバー ナセル有り ブラックカーボン, K2GEAR REIZ/平山自動車 インプレッサ WRX STi ブレーキ ディスクローター フロント RA Ver.5(16インチ・リア1POT), SAN DIEGO CUSTOMS(サンディエゴカスタムズ)シーシーバー LOGO グロスブラック 96-01 ダイナ用, ACRE (アクレ) 品番:β501 ユーロストリート ブレーキパッド リヤ用 ボルボ 850 セダン 8B5252 96.7~97.2, デイトナ(DAYTONA) [93260] KEDO RRディップスティック油温計 ホワイトパネル ■SR400/400FI/500


↓↓↓↓↓↓↓↓↓↓↓↓

【1年保証】【新品】ブルーバードシルフィコンデンサー G11・KG11・NG11 (92100-1U600・92110-1U600), BMW G650GS SERTAO(12年) HIDヘッドライトボルトオンキット 「HI/LO切替」 H4DS/4300K Absolute(アブソリュート), ARROW マフラー S CXR.a GSXR1000 05 《アロー 8566》, SP武川 【タケガワ】 ストロ-クアップクランクシャフトKIT L-Type (6Vモンキー・ゴリラ) 【01-10-8132】, タクティー ヘッドランプ(ロービーム)用バルブ ホワイトビームII インペリアルグリーン H4(HB2) V9119-3030 入数:2個 ダイハツ ハイゼット カーゴ・トラック

【送料無料】[PIRELLI] 2211600 オンロード・アメリカン/クラシック NIGHT DRAGON 【130/90 B 16 73H TL REINF】 フロント用 ピレリ[oka8019227221152];UVカット IRカット フィルム オリジナル 製 クリア リア MITSUBISHI 三菱 チャレンジャー H08/5~H09/7 K94WG・94W・96W・97EG・99W M013-01E 車種別 カット済み フィルム貼り 張替 ポイント消化 RSR ダウンサス フロントのみ インプレッサ GRB 19/10~ AWD 2000 TB WRX STI 18インチタイヤ仕様 6MT DIXIA DX-NCM30;TRUST トラスト Greddy レーシングプラグ・プロ・プラチナ ムーヴ ムーヴカスタム L150S 160S 1台分 3本セット

30 プリウス トランクマット/ラゲッジマット【ロジャム】プリウス 30系 ROJAM ラゲッジマット ブラック/グレー;エルグランド用 ハブ&スリーブセツト5TH&6THXーTRAIL 32300-JG70A 日産純正部品



まずやることは、リクエスト処理サイクルの最初の方のap_run_post_read_requestフェーズで、基準となるマイクロ秒精度の時刻を記録します CCFLイカリング フォグランプLED パレットSW MK21S系 ブルー/青 H8/H11 スズキ【CCFLリング LEDフォグ ユニット メッキ 純正交換 汎用 外装 ヘッドライト ハロゲン HID ドレスアップ】 SUZUKI GSX1400('01-'08)用ADVANTAGE EXACT2 フル鍛造アルミホイール。最近のPOSIX準拠な環境ならgettimeofday()が使えるので、これを使ってマイクロ秒単位の時刻が取得できます。取得した時刻はrequest_rec構造体のnotesフィールドにでもセットしておきましょう。だいたいこんな感じのハンドラ関数になります。
 static int begin_msec_count(request_rec *r)
{
 struct timeval *stime;
 int rc;
 if (!ap_is_initial_req(r))
 return DECLINED;
 stime = ap_pcalloc(r->pool, sizeof(struct timeval));
 rc = gettimeofday(stime, NULL);
 if (rc == -1) {
 return DECLINED;
 }
 ap_table_setn(r->notes, "REQUEST_MICRO_SECONDS", (const char *)stime);
 return OK;
}
今度はリクエストの処理が終わったap_log_transactionフェーズで、もう一度gettimeofday()で時刻を取得し、事前に記録しておいた処理開始時点の時刻と比較して所要時間を計算します フロントフォークガード(Mサイズ) チタン製 CB750(RC42) K-FACTORY(ケイファクトリー)。
 static int end_msec_count(request_rec *r)
{
 struct timeval *stime, etime;
 int rc;
 const char *msec;
 double start, end;
 stime = (struct timeval *)ap_table_get(r->notes, "REQUEST_MICRO_SECONDS");
 if (stime == NULL) {
 return DECLINED;
 }
 rc = gettimeofday(&etime, NULL);
 if (rc == -1) {
 return DECLINED;
 }
 start = stime->tv_sec + stime->tv_usec * 1e-6;
 end = etime.tv_sec + etime.tv_usec * 1e-6;
 msec = ap_psprintf(r->pool, "%.6f", end - start);
 while (r->next)
 r = r->next;
 ap_table_setn(r->subprocess_env, "D", msec);
 return OK;
}
で、最後のap_table_setn(r->subprocess_env, "D", msec)がミソなのですが、計算したマイクロ秒精度の処理所要時間を環境変数"D"にセットします。これによってLogFormatディレクティブで
 LogFormat "%{D}e"
といった記述でマイクロ秒精度の所要時間をログに出力することができるようになります ハイパープロ フロントスプリング DUCATI 1198(SHOWA) 09-11 《ハイパープロ 22093450》 245/35R20 CONTINENTAL コンチネンタル ContiMaxContact MC5 コンチマックスコンタクト MC5 Stich LEGZAS FORBES シュティッヒ レグザス フォーブス サマータイヤホイール4本セット。

と、こんな感じで標準のmod_log_configモジュールが環境変数などをログに出力できる機能を利用して、任意の情報の出力を実現するモジュールが記述できるわけです。独自にログ出力モジュールを開発するのも手ですが、既存のモジュールにオンブにダッコさせてもらった方が楽ですよね。
完成版のコードは
mod_log_msec.c
に置いておきますので宜しければネタにしてくださいませ。
あ、「リクエスト処理フェーズって何ぞや」ってな方は、 【★送料無料】 K12 マーチ ブレーキキット【ファイナルコネクション】マーチ K12 STEALTH CALIPER KIT フロント 4POT ローター径330×32 標準カラー:パープル ドリルド+スリットローターパンダの表紙のかわいい本がありますのでそちらを是非ご覧ください。

(クーポン配布中)X.A.M A3207-54 428-54T スプロケット A3207-54


Comments

Post a comment

Name:


URL:


Comments:


ApacheをHackする!
モジュールプログラミング強烈初体験!!
定価: 2,919円(税込)
ISBN: 4-7741-1799-4

hiroyuki_oyama IM status

Apache Users

Apache Modules

CPAN

A3207-54 A3207-54 スプロケット 428-54T 428-54T A3207-54 (クーポン配布中)X.A.M


Copyright ©(クーポン配布中)X.A.M A3207-54 428-54T スプロケット A3207-54 All Rights Reserved. 2004 Hiroyuki OYAMA. Japan. All rights reserved.
{yahoojp} {module.jp}
{yahoojp}jpprem01-zenjp40-wl-zd-2507