タグ

ブックマーク / yohei-a.hatenablog.jp (4)

  • 大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog

    以下、長々と書いてますが、結論は ”私の環境で”大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablogに書いてます はじめに awk file より cat file|awk のほうが速いという以下のブログエントリが興味深いので調べてみました。 ちなみに cat file|awk が速くなる環境は稀で、巷では awk file のほうが速い環境のほうが多いようで、どちらが速いかは環境依存です。 [root@localhost sample]# cat command1 awk '$5 ~ /((26|27|28|29|30)\/Jun|(01|02|03)\/Jul)/{ print }' sample.txt > result1.txt (中略) [root@localhost sample]# time sh command1 real 0m53.92

    大きなテキストファイルをawkで処理するときにcatで投げ込むと速い理由 - ablog
  • perf + Flame Graphs で Linux カーネル内のボトルネックを特定する - ablog

    Linuxでddで1GBのファイルを作成し perf でプロファイリングし、Flame Graph (炎のグラフ?)にして可視化したものです。 Flame Graphs は perf(Linux)、SystemTap(Linux)、DTrace(Solaris、Oracle Linux(UEK)、Mac OS X、FreeBSD)、XPerf.exe(Windows) などでのプロファイリング結果を可視化して最も使われているコードパスを早く正確に特定することができます。実体はプロファイリング結果をグラフ(SVG)に変換する Perl スクリプトです。 下から上に行くほどコールスタックが深く、左から関数名のアルファベット順でソートされています。一番上で横幅が広い関数がCPUを長く使っています。今回は "_aesni_enc1" つまり暗号化がボトルネックになっていることがわかります。 システ

    perf + Flame Graphs で Linux カーネル内のボトルネックを特定する - ablog
  • sysのCPU使用率が高い場合にその内訳を調べる方法 - ablog

    OSレベルで sys のCPU使用率が高い場合に perf*1 を使って、何の処理の割合が高いか調べる方法です。 perf は 特定のプロセスだけでなくOS全体の統計を見れる カーネル(sys)とユーザー(user)の両方を見れる ところが非常に便利だと思う*2。 準備 ひたすら write システムコールを発行し続けるプログラムを作成する $ cat write_loop.c #include <unistd.h> int main(void) { while(1) { write(1, "foo\n", 4); } } コンパイルする $ gcc write_loop.c -o write_loop 実行権限を付与する $ chmod u+x write_loop 検証 ひたすらwriteシステムコールを発行するプログラムを実行する $ ./write_loop > /dev/null

    sysのCPU使用率が高い場合にその内訳を調べる方法 - ablog
  • 性能問題の切り分け方法について考えてみる - ablog

    つれづれなるままに、日ぐらしパソコンに向かひて、心にうつりゆくデータベースの性能問題の切り分け方法をそこはかとなく書き付くれば、あやしうこそ物狂ほしけれ。なエントリ(書きかけ)。一度、脳内をフラッシュしてからまとめるべし。 性能問題による影響 性能問題による影響を以下の2つに分類する。 システム全体が遅い 一部の処理が遅い 性能問題の原因 性能問題の原因を以下の2つに分類する。 交通量が多い 単純に交通量が多くて渋滞している 例)年末年始やお盆の帰省ラッシュやUターンラッシュ 経路の途中で詰まっている 車線減少や通行止めなどで渋滞している 例)年度末の工事による車線減少、飲酒の検問、交通事故による通行止めなどで経路のどこかで詰まっている 切り分け手順の分類 システム全体が遅いケースと一部の処理が遅いケースで切り分け手順は変わる。 切り分けはOSレイヤーとデータベースレイヤーの2つの観点から

    性能問題の切り分け方法について考えてみる - ablog
  • 1