タグ

パフォーマンスに関するytotoyのブックマーク (30)

  • perfの使いかた

    概要 Linuxのパフォーマンス解析ツールであるperfの使いかたの紹介 背景 個人的にperfよくできてると思うので紹介したいというのと、 パフォーマンスカウンタの読み方ってあんまり知られてないみたいなので、 それの解説を書きたい。 構成 perf について説明したあと、パフォーマンスカウンタの読みかた、見かた、を説明する。 perfとは何か Linuxに付いてくるプロファイラ。 man perf によると、 NAME ---- perf - Performance analysis tools for Linux と、書いてある。名前がひどいのでなんとかしてほしい。 perf の特徴 個人的には、手軽に使えるのが素晴らしいと思う。 2.6.31以降カーネルに標準で付いてる。(Ubuntuだとlinux-tools-common(TODO:あとで確認)で入るはず) 特殊な設定が必要無く、

  • さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)

    先日のももクロハッカソンで出会った wantedly を作ってる仲さんが と言ってたので、面白そうなので wantedly を速くしてみました。 wantedly ちなみにデータが数百万オーダーもなさそうなのに、どのページもログインすると2-5秒ぐらいかかっていたので、確実に速くできそうだなぁという感覚はやる前からありました。 アプリケーションサイドのチューニング 初心者*1にありがちな問題として SQL に適切にインデックス張ってない キャッシュすべき場所をキャッシュしていない 無駄なデータを引きすぎてる ことがよくあります。ので順に実装を見ていきました。 SQLに適切なインデックスを張ってない 張ってありました!びっくり!\(^o^)/ キャッシュすべき場所をキャッシュしていない Facebook API を利用したアプリケーションなんですが、ユーザのデータの取得を毎回馬鹿正直に HT

    さいきんの Rails サービスを高速化をしてみた - 2nd life (移転しました)
  • JavaScriptの文字列を反転する10の方法とそのパフォーマンス - 風と宇宙とプログラム

    はじめに JavaScriptで文字列を反転する10の方法を(無理矢理?)思いついたので、ちょっと簡単に紹介したい。また、それぞれについて、各ブラウザでパフォーマンスを測定してみたので、その結果も合わせて載せる。 文字列のStringオブジェクトには、部分切り出し(substring, slice)や置換(replace)、連結(concat)など豊富な機能があるのに、反転(reverse)機能はない。Arrayのreverseはあるのに、Stringのreverseがないのはどうしてなのだろうか。 各ブラウザとそのバージョンは以下の通り: Chrome Firefox Opera Safari IE 13.0.782.112 m 6.0 11.50 5.1(7534.50) 8.0.7600.16335 rev01: C言語的発想 空の配列を作って、そこに元の文字列の後ろから1文字つづ入

    JavaScriptの文字列を反転する10の方法とそのパフォーマンス - 風と宇宙とプログラム
  • Webデザイナーでもできる、サイトのパフォーマンスをあげる5つの方法

    Webデザイナーでもできる、サイトのパフォーマンスをあげる5つの方法 2011-08-28 Webデザイナーが、Webサイトのパフォーマンスを重視する傾向はあまり無いように感じますが重要なことです。 Googleでは、0.5秒遅くなると、検索数が20%減少する amazonでは、0.1秒遅くなると、売り上げが1%減少する という報告もあるようです。Webサイトのパフォーマンスはコンバージョンにも影響する大切な部分。 今回はWebサイトのパフォーマンスを上げる方法を取り上げます。 パフォーマンスアップの前に 応答時間の限界 0.1秒までなら、結果はコンピューターではなく、ユーザーによって引き起こされたように感じる。 1秒までなら、"遅れている"と感じるが、ユーザーの思考は途切れずに、自由に動いていると感じる。 10秒までになると、ユーザーがコンピューターに振り回されている気持ちになり、ストレ

    Webデザイナーでもできる、サイトのパフォーマンスをあげる5つの方法
  • 色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)

    PHPフレームワークの速度比較では、HelloWorldを表示するのみの単純なアプリを用いた計測を元に比較表が作られることが多いです。特に後発のフレームワークは分かりやすい特徴付けとして速度をアピールする傾向にあるため、その比較表を元に N倍速いというアピールをしています。 PHPフレームワークを使うということは、DBまで絡めたWebアプリを作ることがほとんどなため、HelloWorldアプリの比較よりは、DBからレコード取得して表示するまでの処理速度を比較したほうがより現実に近い指標になると思います。特にCakePHP1系ではDBのデータ取得も独自ドライバになっていますし、モデルの処理も重いのでそこまで含めて他と比較したほうが良いと思ってます。 今回はDBから1レコード取得して表示するという簡単なアプリで各フレームワークの速度を評価しました。フレームワークに備わっているViewキャッシュ

    色々なPHPフレームワークのパフォーマンスを比較 - cakephperの日記(CakePHP, Laravel, PHP)
  • データベースのスケーラビリティをどうやって向上させるか

    これまでPublickeyではデータベースのスケーラビリティに関するさまざまなトピックを取り上げてきました。クラウド時代にはスケーラブルなデータベースのニーズがこれまでになく高まっているためです。 この記事では、これまで取り上げてきたデータベースのスケーラビリティに関する技術を少しまとめて紹介しようと思います。 従来のリレーショナルを拡張 従来のリレーショナルデータベースに対して、技術的工夫を凝らすことでスケーラブルなデータベースを実現しようというアプローチにも、さまざまなものがあります。 データベース研究者の大御所、マイケル・ストーンブレイカー氏は、リレーショナルデータベースは決して遅くないと主張。リレーショナルデータベースが遅い原因はロック、ラッチ、リソース管理にあるとして、それらを極力排除した「VoltDB」を開発しています。 NoSQLを上回る性能のVoltDB、そのアーキテクチャ

    データベースのスケーラビリティをどうやって向上させるか
  • ウェブページの高速化のために読んでおきたいサイトのまとめ

    ユーザビリティの改善や検索エンジン対策としてウェブページの読み込みスピードの高速化は非常に重要です。ということで、ページの読み込みスピード向上のために役立つサイトをまとめてみます。 ページ読込速度の重要性 次の事例にあるように、ユーザーは表示速度に敏感です。 Googleによるとページの読み込みが0.5秒遅くなると、検索数が20%減少する Amazonによるとページの読み込みが0.1秒遅くなると、売り上げが1%減少する そして、Googleのアルゴリズムにウェブページの読み込み速度が追加されて以降、サイトの高速化への注目度は高まっています。 Google、ウェブページの読み込み速度をアルゴリズムに取り入れたことを発表 | 海外SEO情報ブログ Googleがついに順位決定に表示速度を使い始めた(公式発表) | Web担当者Forum Google、検索順位にページ読込速度の考慮を開始 [詳

    ウェブページの高速化のために読んでおきたいサイトのまとめ
  • ついに出た!Chrome版「Page Speed」の使い方

    2011/3/22に、GoogleがようやくGoogle Chrome版「Page Speed」拡張機能を公開しました。 「Page Speed」は、項目をある程度理解できれば自分や自社のサイトの表示速度の改善にとても役立つツールです。 この記事では、「Page Speed」のインストール方法から各調査項目の見方や改善方法を中心に使い方を解説します。 ぜひ、ご自身のサイトの改善に役立てていただければと思います。 そもそも、なぜサイトの表示速度を速くする必要があるのか? 例えば、Amazonの調査によると「表示速度が0.1秒遅くなると、売上が1%減少する」といい、Googleの調査によると「表示速度が0.5秒遅くなると、検索数が20%減少する」と言われます。 また、GoogleはWebページの読み込み速度をアルゴリズムに取り入れたことを発表しています。 大手サイトや大規模なECサイトに限らず

    ついに出た!Chrome版「Page Speed」の使い方
  • MySQLやPHPのパフォーマンスを向上させる方法のメモ。 » とりあえず9JP

    MySQLPHPのパフォーマンスを向上させる方法のメモ。 色々な設定があるとは思いますが、ここでは個人的に効果を顕著に感じたMySQLのクエリキャッシュとAPCについて書いています。 当はPHPやらMySQLそれぞれでベンチ取った方が良いとは思うのですが、この記事では、WordPressを設置して、そのインデックスページに対するApacheBenchのRequests per second(一秒間に処理されたリクエスト数)のみを見て、その結果で比較しています。 ※ApacheBenchはローカルではなく外部のサーバからという微妙な環境で、リクエスト数100、同時リクエスト数10、試行回数はそれぞれ1回という微妙な値でやってます。 まずは、全く未設定な状態での、Requests per second。 実行したコマンドは以下。 ab -n 100 -c 10 テストしたいURI Requ

  • Oracle 11g検証 新機能:SPMって何? その4 - InsightTechnology 旧ブログ

    Oracle 11g検証 第3弾 新機能:SPMって何? その4> ペンネーム: クリープ 先週は、統計情報を取得後にパフォーマンスが劣化するような状況を再現中 に、予想外の結果になったところで終わりました。 通常であれば、一意な値が格納された項目をSELECTすればインデックススキ ャンになるはずなのに何故フルスキャンになってしまったのでしょうか? 今週は、この疑問を解明していこうと思います。 ■■■■■概要■■■■■ 1)一意な値の参照でフルスキャンが選択された理由とは!? ■環境 RedHatLinux ES4 Update 5 Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – Production 1)一意な値の参照でフルスキャンが選択された理由とは!? 早速、フルスキャンが実行された原因を調査していくことにし

  • SQLチューニングの基盤となる統計情報

    SQL*PlusのAUTOTRACE機能 AUTOTRACEはSQL*Plusの機能で、SQLの実行計画、および実行時に必要としたシステムリソース(これを実行統計と呼びます)などを簡単に確認することができます。また、SQLトレースには含まれないメモリソート、ディスクソートの発生回数なども確認できます。 AUTOTRACE機能の設定方法 AUTOTRACE機能を使用するためには、初回のみ事前準備作業が必要になります。ここでは、例としてSCOTTユーザーに対して設定を行ってみます。 1. SYSユーザーでplustrce.sqlを実行し、PLUSTRACEロールを作成する $ sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> @$ORACLE_HOME/sqlplus/admin/plustrce.sql

    SQLチューニングの基盤となる統計情報
  • 実行計画の見方@SQLチューニングの基盤となる統計情報(3/4) − @IT

    これらの項目に出力される値は、親ステップ(SORT処理)の値と子ステップ(TABLE ACCESS処理)の値との合計値になります。そのため、各ステップでの処理時間やアクセスされたブロック数などの情報は、ステップごとの差分から読み取る必要があります。 図1の(10)、「time」の値を例に挙げて説明すると、最初のステップであるTABLE ACCESS FULLは、「60530996」であり、この値が全表スキャンにかかった時間になります。次のステップであるSORT GROUP BYは、「62654805」となっていますが、この値には前ステップのTABLE ACCESS FULLの値も含まれています。そのため、純粋なSORT GROUP BYの経過時間は、「62654805 - 60530996 = 2123809」、すなわち約2.1秒であったことが分かります。 TKPROF実行時の実行計画の見

    実行計画の見方@SQLチューニングの基盤となる統計情報(3/4) − @IT
  • 『Linuxサーバの状態確認』

    ずっと保守をしているサーバば注文などができるサイトなのですが、 このところ朝の5時から9時の間で閲覧はできるが、 注文ボタンを押すとずっと待ち状態になってしまう、 10分後位に注文が確定する。。。という問題が発生していました。 注文サイトで、注文トラブルがあるなんて、致命的で、 なんとか原因究明をしなくてはいけなかったのですが、 その時間帯、特に動かしているバッチもなく、 何か攻撃を受けているのか…と思案していました。 MRTGなども入れていなかったので、 その時間帯に何が起こっているのか状態を確認する方法を考え とりあえず、vmstatとpsの結果をファイル出力するシェルを組み cron設定してみました。 そうするとpsコマンドの結果を見れば一目瞭然…でした。 外部から攻撃を受けていたのではなく、 自サイトのバッチが終了していないせいでした。 バッチはデータを集計するためのものでしたが、

    『Linuxサーバの状態確認』
  • 速さはすべてに勝る - 速さを身に着けるための5つのルール - 読んだものまとめブログ

    時間をかけてじっくりやることは誰にでもできます。ただ、速さを意識しない人はパフォーマンスが非常に悪いということを認識しなければなりません。ああでもないこうでもないと試行錯誤を繰り返している間に好機を逃して、時代遅れの答えに努力を重ねる結果になります。日進月歩の情報化が進んだ今の時代に学歴、資格、技術があっても『速さ』がないのは有る意味で致命的ともいえます。遅ければ何事も後手に回り、やるべきことが級数的に増えて手に負えなくなります。 図解 超高速勉強法―「速さ」は「努力」にまさる! 作者: 椋木修三出版社/メーカー: 経済界発売日: 2004/11メディア: 単行購入: 41人 クリック: 500回この商品を含むブログ (45件) を見る 速度が落ちる理由 昔と異なり、大卒が溢れている今では既に知識が豊富な人が揃っているわけで、その知識を活かす場が存在しないというより足枷になっていると言わ

    速さはすべてに勝る - 速さを身に着けるための5つのルール - 読んだものまとめブログ
    ytotoy
    ytotoy 2010/12/12
    完璧を求めない
  • WordPressで作られたWebサイトの表示速度を早くするためにできること

    WordPress 楽しんでますか? 今回は WordPress で作られたWebサイトを少しダイエットさせて、表示速度を早くするために、やっておいたらいいかもしれない Tips をいくつかご紹介します。 私は WordPress が大好きなので、もちろんこのブログも WordPress で作っています。でも WordPressPHP で作られているブログツール。ブラウザで表示されている Webページは、PHP によって動的に作られた HTMLです。 Webページを表示するたびに、Webサーバの中で PHP が働き、HTMLを吐き出しているので、最初からHTMLで書かれた Webページに比べて、表示が遅くなる傾向があります。 私のブログは、毎日のアクセスがそれほど多い訳ではないので、それほど神経質にはなっていませんが、一時キャッシュ系のプラグインの使用と、その他にもいろいろ工夫をした

  • 新卒インフラエンジニア2年目

  • 画像自体をBase64エンコードしてHTML内に埋め込んで高速化するPHPコード例:phpspot開発日誌

    Base64 Encoding for Images. 画像自体をBase64エンコードしてHTML内に埋め込んで高速化するPHPコード例。 Googleがインスタントプレビューや画像検索で導入してその読み込み速度に驚いた方も多いかもしれません。 その手法をPHPで実現するコードが掲載されていましたのでご紹介。 PHPでやるにはそんなに難しいわけではなさそう。 <?php $img_src = "image/sample.png";  // 画像ファイルの指定 $imgbinary = fread(fopen($img_src, "r"), filesize($img_src)); // バイナリデータを読み込み $img_str = base64_encode($imgbinary); // base64エンコード echo '<img src="data:image/png;base6

  • ループをたくさん回す処理を高速化する初歩の初歩。 - このブログは証明できない。

    テキスト処理を中心にやっていましたが、画像処理に興味が出てきて、さっそくアプリを作りました。もともと下の記事のあたりでユーザーとして画像処理に興味を持って、当然の流れながら、自分でもつくってみようと。 Color Splash + TiltShift Generator + Instagramの写真加工が面白い。 - このブログは証明できない。 で、何かを間違えて、普通の画像処理ではなく、カメラの映像をリアルタイムに加工しはじめました。そうすると、パフォーマンスがかなりシビアなんですね。 iPhoneでカメラの映像をリアルタイム画像処理してみる。 - このブログは証明できない。 全ピクセルを操作しなければなりませんから、ループをたくさん回す必要があります。なんとか高速化できないかと考えてみたところ、あっさり高速化に成功しました。私が気づくぐらいですから、初歩の初歩なんだと思います。 追記:

  • NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現

    モバゲーで知られるDeNAは、バックエンドデータベースにNoSQLを使っていません。なぜか? それはMySQL/InnoDB 5.1の環境で秒間75万クエリという、多くのNoSQLでも実現できないような高性能を実現しているから。DeNAの松信嘉範(まつのぶよしのり)氏は、自身のブログにこんな内容のエントリ「Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server」(英語)をボストしています。 Yoshinori Matsunobu's blog: Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server 松信氏が指摘するように、大規模なネットサービスを提供している企業の多くは分散環境で

    NoSQLとしてMySQLを使うDeNAが、memcachedよりも高速な75万クエリ/秒を実現
  • IT戦記 - 一行で IE の JavaScript を高速化する方法

    以下の一行をすべての JavaScript の前に読み込む /*@cc_on _d=document;eval('var document=_d')@*/ この一行を読み込むことによって IE での document へのアクセスが 5 倍速くなります。 たとえば 以下のように、読み込む前と読み込んだ後を比較してみます。 // Before var date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date - date); // 643 /*@cc_on _d=document;eval('var document=_d')@*/ // After date = new Date; for (var i = 0; i < 100000; i++) document; alert(new Date -

    IT戦記 - 一行で IE の JavaScript を高速化する方法